Forum Konstruktor budowlany Strona Główna Konstruktor budowlany
Forum projektantów
 
 FAQFAQ   SzukajSzukaj   UżytkownicyUżytkownicy   GrupyGrupy   GalerieGalerie   RejestracjaRejestracja 
 ProfilProfil   Zaloguj się, by sprawdzić wiadomościZaloguj się, by sprawdzić wiadomości   ZalogujZaloguj 

Python
Idź do strony 1, 2, 3, 4  Następny
 
Napisz nowy temat   Odpowiedz do tematu    Forum Konstruktor budowlany Strona Główna -> Programowanie
Zobacz poprzedni temat :: Zobacz następny temat  
Autor Wiadomość
adam_47
Doświadczony Forumowicz



Dołączył: 05 Cze 2010
Posty: 1000
Przeczytał: 9 tematów

Pomógł: 23 razy
Ostrzeżeń: 0/5

PostWysłany: Śro 9:30, 02 Lut 2011    Temat postu: Python

Do zainteresowania się nim zostałem "zmuszony" przez autora jednego z darmowych programów.
Osobiście jestem zaskoczony czytelnością uzyskiwanego kodu, między innymi dzięki strukturze "słownik", ale główna zaleta to dostęp do biblioteki numpy (m.innymi działania na macierzach). Wadą jest "ręczne" programowanie interfejsu okienkowego.

Ponieważ powoli nadchodzi czas zaktualizowania procedur z PN do EC, poważnie zaczynam się zastanawiać, czy nie robić tego w Pythonie ?!

Co Panowie myślą o tym języku ?


Post został pochwalony 0 razy
Powrót do góry
Zobacz profil autora
Zobacz poprzedni temat :: Zobacz następny temat  
Autor Wiadomość
jureko
Doświadczony Forumowicz



Dołączył: 05 Paź 2007
Posty: 247
Przeczytał: 0 tematów

Pomógł: 11 razy
Ostrzeżeń: 0/5
Skąd: Kraków

PostWysłany: Śro 13:17, 02 Lut 2011    Temat postu: Re: Python

adam_47 napisał:
Do zainteresowania się nim zostałem "zmuszony" przez autora jednego z darmowych programów.
Osobiście jestem zaskoczony czytelnością uzyskiwanego kodu, między innymi dzięki strukturze "słownik", ale główna zaleta to dostęp do biblioteki numpy (m.innymi działania na macierzach). Wadą jest "ręczne" programowanie interfejsu okienkowego.?

z pythona nie korzytałem ale do interfejsu możesz spróbować PyQt czyli pożenione biblioteki Qt z pythonem.


Post został pochwalony 0 razy
Powrót do góry
Zobacz profil autora
Zobacz poprzedni temat :: Zobacz następny temat  
Autor Wiadomość
adbud
Doświadczony Forumowicz



Dołączył: 21 Kwi 2009
Posty: 1052
Przeczytał: 20 tematów

Pomógł: 9 razy
Ostrzeżeń: 1/5

PostWysłany: Śro 18:18, 02 Lut 2011    Temat postu:

Prawda w Pythonie można programować obiektowo równieżSmile Trzeba tylko sprzążyć go z jakimś interfeisem:)

Post został pochwalony 0 razy
Powrót do góry
Zobacz profil autora
Zobacz poprzedni temat :: Zobacz następny temat  
Autor Wiadomość
lukaszlab
Doświadczony Forumowicz



Dołączył: 15 Maj 2006
Posty: 231
Przeczytał: 0 tematów

Pomógł: 9 razy
Ostrzeżeń: 0/5
Skąd: Kraków

PostWysłany: Wto 18:41, 09 Cze 2015    Temat postu:

Wznawiam temat użycia skryptowego języka Python w projektowaniu. Python wraz z mocą masy bibliotek w tym takich jak mathplotlib, numpy, scipy ... daje olbrzymie możliwości. Jest możliwe użycie jednostek w obliczeniach. Ponadto jest edytor Ipython notebook. Wszystko to daje funkcjonalność podobną do powiedzmy matlab, jezyka programowania i tworzenia dokumentów (wspomniany notebook). Wcześniej walczyłem z C++ oraz scilabem dopiero Python można powiedzieć był przełomem.
Aktualnie pracuje nad projektem biblioteki i oprogramowania open source do projektowania konstrukcji.
Wokół języka Python tworzą się liczne społeczności użytkowników - może wiec i na tym forum znają się chętni.


Post został pochwalony 0 razy
Powrót do góry
Zobacz profil autora
Zobacz poprzedni temat :: Zobacz następny temat  
Autor Wiadomość
GMBh
Administrator



Dołączył: 23 Sty 2006
Posty: 604
Przeczytał: 3 tematy

Pomógł: 27 razy
Ostrzeżeń: 0/5
Skąd: Kraków

PostWysłany: Wto 20:21, 09 Cze 2015    Temat postu:

@lukaszlab
Niestety python średnio sprawdza się w zastosowaniach komercyjnych. Jego filozofia oparta na otwartości doskonale nadaje się do projektów open source, zastosowań akademickich itp. Nie rozumiem co znaczy dla Ciebie "użycie jednostek w obliczeniach". Napisałem w C# odpowiednia klasę, która jest odpowiedzialna za walidację wprowadzanych danych i wyświetlanie wyników w takich jednostkach i z taką precyzją jaka user wybrał w preferencjach. Mogą to być jednostki imperialne, metryczne (mm, cm, m itd) a jądro obliczeniowe zawsze działa na jednostkach podstawowych (np. [m]i [kN]).
Z tego co piszesz zrozumiałem, że interesuje Cię bardziej akademickie podejście. Przypomina mi to czasy robienia projektów w mathcadzie na studiach. Niestety życie zmusiło mnie żeby wszystkie swoje procedury w mathcadzie, excelu itp szybko przerobić na mniej otwarte i podatne na wprowadzanie zmian przez innych, zabezpieczone wersje programów.
Cytat:
Aktualnie pracuje nad projektem biblioteki i oprogramowania open source do projektowania konstrukcji.

Napisz co to za projekt? Projektowanie konstrukcji obejmuje wiele aspektów np. obliczenia MES, wymiarowanie elementów żelbetowych, stalowych, rysowanie konstrukcji itp. Chętnie wymienię się doświadczeniami. Na forum jest kilka osób, które piszą programy inżynierskie, w tym również takich które je potem sprzedają Smile. Idea tworzenia wolnego programowania inżynierskiego była już poruszana na forum kilka lat temu. Niestety temat upadł Sad


Post został pochwalony 0 razy

Ostatnio zmieniony przez GMBh dnia Wto 20:31, 09 Cze 2015, w całości zmieniany 3 razy
Powrót do góry
Zobacz profil autora
Zobacz poprzedni temat :: Zobacz następny temat  
Autor Wiadomość
lukaszlab
Doświadczony Forumowicz



Dołączył: 15 Maj 2006
Posty: 231
Przeczytał: 0 tematów

Pomógł: 9 razy
Ostrzeżeń: 0/5
Skąd: Kraków

PostWysłany: Wto 20:31, 09 Cze 2015    Temat postu:

W Python nie trzeba pisać już takiej klasy - jest gotowa np. unum lub pint
[link widoczny dla zalogowanych]
[link widoczny dla zalogowanych]
Używam z powodzeniem unum.
Pakiety online [link widoczny dla zalogowanych] dostępne online.
Python jest w zasadzie nadbudową C++.


Post został pochwalony 0 razy
Powrót do góry
Zobacz profil autora
Zobacz poprzedni temat :: Zobacz następny temat  
Autor Wiadomość
GMBh
Administrator



Dołączył: 23 Sty 2006
Posty: 604
Przeczytał: 3 tematy

Pomógł: 27 razy
Ostrzeżeń: 0/5
Skąd: Kraków

PostWysłany: Wto 20:50, 09 Cze 2015    Temat postu:

Ok. Jest wiele klas i bibliotek dostępnych również w otwartych licencjach np. LGPL w takich popularnych językach jak C++ czy C# np. dla jednostek w C# [link widoczny dla zalogowanych] lub [link widoczny dla zalogowanych].
Rózne języki stworzono do różnych celów. Python jest świetny do open source - dostępność bibliotek, otwartość itd. Ja wybrałem C# bo zależy mi na współpracy z komercyjnymi aplikacjami poprzez API, chce mieć możliwość zamknięcia kodu i zabezpieczenia go, a także odpowiada mi pisanie pod platformą .NET.
Z tym że Python jest nadbudową c++ trochę przesadziłeś Wink ale nie jestem informatykiem więc nie będę się spierać Smile
Inna sprawa,że podobno w pythonie pisze się programy dużo szybciej niż w innych językach. Tylko, jak już pisałem,nie dla każdego jest to odpowiednie narzędzie.


Post został pochwalony 0 razy

Ostatnio zmieniony przez GMBh dnia Wto 20:58, 09 Cze 2015, w całości zmieniany 2 razy
Powrót do góry
Zobacz profil autora
Zobacz poprzedni temat :: Zobacz następny temat  
Autor Wiadomość
lukaszlab
Doświadczony Forumowicz



Dołączył: 15 Maj 2006
Posty: 231
Przeczytał: 0 tematów

Pomógł: 9 razy
Ostrzeżeń: 0/5
Skąd: Kraków

PostWysłany: Wto 22:18, 09 Cze 2015    Temat postu:

C# z .NET to potężne narzędzie. Pytanie do czego i komu jest potrzebne programowanie. Jeśli ktoś jest inżynierem nie informatykiem i chciałby zacząć programować na swoje potrzeby to będę doradzał mu język Python - i o to możemy się spierać Smile. W jeden dzień opanuje konsole a w następny pisanie skryptów - i to w zasadzie jest jak użycie w matlab-a.
Główne zalety:
- język skryptowy (interpretowany) wysokiego poziomu, dostępny za darmo,
- interaktywna konsola niezwykle przydatna,
- Ipython notebook do tworzenia interaktywnej dokumentacji,
- prosta i czytelna składnia,
- struktury danych wysokiego poziomu, dynamiczny system typów,
- przenośność - interpreter dostępny na wszystkie główne platformy m.in. Windows, Linux,
- bogata biblioteka standardowa,
- łatwość nauczenia się podstaw języka i przyjemność z programowania.
Wady:
- jako interpreter wysokiego poziomu wolniejszy od np. C co możne być zauważalne przy konieczności np. wymiarowania zbrojenia dla kilku tyś. pkt. w panelu.

Ja zakładam dystrybucję open spurce (GPL) - powiedzmy z przyczyn ideowych ale też użycie darmowe funkcjonalności takich bibliotek jak mathplotlib czy pyqt wymusza zachowanie warunków licencji tych bibliotek.

Standardowa implementacja Python (CPython) napisany jest w C.

Polecam krótki przewodnik dla zainteresowanych:
[link widoczny dla zalogowanych]


Post został pochwalony 0 razy
Powrót do góry
Zobacz profil autora
Zobacz poprzedni temat :: Zobacz następny temat  
Autor Wiadomość
mz
Doświadczony Forumowicz



Dołączył: 11 Wrz 2014
Posty: 63
Przeczytał: 0 tematów

Pomógł: 3 razy
Ostrzeżeń: 0/5

PostWysłany: Śro 19:08, 10 Cze 2015    Temat postu:

z ciekawości, jak jest w wydajnością Pythona? działa dość szybko czy wlecze się jak VBA?

Post został pochwalony 0 razy

Ostatnio zmieniony przez mz dnia Śro 19:08, 10 Cze 2015, w całości zmieniany 1 raz
Powrót do góry
Zobacz profil autora
Zobacz poprzedni temat :: Zobacz następny temat  
Autor Wiadomość
lukaszlab
Doświadczony Forumowicz



Dołączył: 15 Maj 2006
Posty: 231
Przeczytał: 0 tematów

Pomógł: 9 razy
Ostrzeżeń: 0/5
Skąd: Kraków

PostWysłany: Śro 22:40, 10 Cze 2015    Temat postu:

Standardowy Python nie jest demonem prędkości i ta jego strona często jest wskazywana po jako wad. Są jednak możliwości poprawy wydajności jeśli stanie się to problemem.
[link widoczny dla zalogowanych]
Nie wiem jak ma się Python do VBA.


Post został pochwalony 0 razy
Powrót do góry
Zobacz profil autora
Zobacz poprzedni temat :: Zobacz następny temat  
Autor Wiadomość
lukaszlab
Doświadczony Forumowicz



Dołączył: 15 Maj 2006
Posty: 231
Przeczytał: 0 tematów

Pomógł: 9 razy
Ostrzeżeń: 0/5
Skąd: Kraków

PostWysłany: Śro 23:16, 10 Cze 2015    Temat postu:

No to mały test prędkości

Skrypt 1 - 1000-krotne wymiarowanie przekroju z bez kontroli zarysowania:

Kod:
In [12]: from unum.units import m as _m
from unum.units import mm as _mm
from unum.units import N as _N
import  time
_kN=1000*_N
_kNm=_kN*_m
t1=time.time()
import strupy.concrete.ascomp as f
for i in xrange(0, 1000):
    a=f.calc(0*_kN, 400*_kNm, 0.8*_m, 0.4*_m, 0.05*_m ,0.05*_m ,0.0 ,0.0 ,0.02*_m ,0.02*_m ,0.3*_mm ,0.3*_mm)
t2=time.time()
print str(t1-t2)+' sekund'
print a
-0.830000162125 sekund
{'A1': 0.0013457525398 [m2], 'ror': 0.0, 'A2': 0.0001 [m2], 'w': 0.0 [m], 'mimos': -1, 'ksieff': 0.11281777778791036, 'Ncr': 0.0 [N], 'rys': 0.0, 'sigmas': 0 [Pa], 'srm': 0 [m]}


Skrypt 2 - 1000-krotne wymiarowanie przekroju z kontrolą zarysowania (o 0.3mm):

Kod:
In [23]: from unum.units import m as _m
from unum.units import mm as _mm
from unum.units import N as _N
import  time
_kN=1000*_N
_kNm=_kN*_m
t1=time.time()
import strupy.concrete.ascomp as f
for i in xrange(0, 1000):
    a=f.calc(0*_kN, 400*_kNm, 0.8*_m, 0.4*_m, 0.05*_m ,0.05*_m ,1.0 ,1.0 ,0.02*_m ,0.02*_m ,0.3*_mm ,0.3*_mm)
t2=time.time()
print str(t1-t2)+' sekund'
print a
-4.02999997139 sekund
{'A1': 0.00146687026839 [m2], 'ror': 0.0293374053677 [], 'A2': 0.0001 [m2], 'w': 0.000296312150205 [m], 'mimos': -1, 'ksieff': 0.11281777778791036, 'Ncr': 0.234666588444 [N], 'rys': 1, 'sigmas': 308256880.734 [Pa], 'srm': 0.11817235454 [m]}


Czyli mamy
0.830000162125 sekund z zarysowaniem
4.02999997139 sekund bez zarysowania


Post został pochwalony 0 razy

Ostatnio zmieniony przez lukaszlab dnia Sob 12:52, 12 Mar 2016, w całości zmieniany 1 raz
Powrót do góry
Zobacz profil autora
Zobacz poprzedni temat :: Zobacz następny temat  
Autor Wiadomość
lukaszlab
Doświadczony Forumowicz



Dołączył: 15 Maj 2006
Posty: 231
Przeczytał: 0 tematów

Pomógł: 9 razy
Ostrzeżeń: 0/5
Skąd: Kraków

PostWysłany: Śro 23:33, 10 Cze 2015    Temat postu:

W wydaniu obiektowym


Skrypt - 1000-krotne wymiarowanie przekroju bez kontroli zarysowania:

Kod:
In [19]: from unum.units import m as _m
from unum.units import mm as _mm
from unum.units import N as _N
from strupy.concrete.RcRecSect import RcRecSect
from strupy.concrete.SectLoad_new import SectLoad
from strupy.concrete.RcRecSectSolver import RcRecSectSolver
_kN=1000*_N
_kNm=_kN*_m
import  time
sec=RcRecSect()
solv=RcRecSectSolver()
load=SectLoad()
sec.rysAn=0
sec.rysAp=0
t1=time.time()
for i in xrange(0, 1000):
    sec=solv.reinforce(sec, load)
t2=time.time()
print str(t1-t2)+' sekund'
print sec.get_sectinfo()
-1.0759999752 sekund
{'comment': 'case calculated - [0] case for Ap -0 case for An -0', 'b': 0.4 [m], 'fyd': 42000000 [Pa], 'ap': 0.04 [m], 'h': 0.8 [m], 'fctm': 220000.0 [Pa], 'an': 0.04 [m], 'Ap': 0.0001 [m2], 'fcd': 1670000.0 [Pa], 'ksiefflim': 0.5, 'rcsteelname': 'A-IIIN', 'An': 0.0001 [m2], 'concretename': 'C20/25'}


Czyli mamy
1.0759999752 sekund

Wyniki lepsze niż się spodziewałem.


Post został pochwalony 0 razy

Ostatnio zmieniony przez lukaszlab dnia Sob 12:51, 12 Mar 2016, w całości zmieniany 1 raz
Powrót do góry
Zobacz profil autora
Zobacz poprzedni temat :: Zobacz następny temat  
Autor Wiadomość
lukaszlab
Doświadczony Forumowicz



Dołączył: 15 Maj 2006
Posty: 231
Przeczytał: 0 tematów

Pomógł: 9 razy
Ostrzeżeń: 0/5
Skąd: Kraków

PostWysłany: Śro 23:38, 10 Cze 2015    Temat postu:

Przy wklejaniu zjada wcięcie.
Powinno być:
for i in xrange(0, 1000):
_____a=f.calc(0*_kN, 400*_kNm, 0.8*_m, 0.4*_m, 0.05*_m ,0.05*_m ,0.0 ,0.0 ,0.02*_m ,0.02*_m ,0.3*_mm ,0.3*_mm)

Bo to Python - wcięcia ważne Wink


Post został pochwalony 0 razy
Powrót do góry
Zobacz profil autora
Zobacz poprzedni temat :: Zobacz następny temat  
Autor Wiadomość
lukaszlab
Doświadczony Forumowicz



Dołączył: 15 Maj 2006
Posty: 231
Przeczytał: 0 tematów

Pomógł: 9 razy
Ostrzeżeń: 0/5
Skąd: Kraków

PostWysłany: Śro 23:42, 10 Cze 2015    Temat postu:

Komputer i5-3.3 GHz

Post został pochwalony 0 razy
Powrót do góry
Zobacz profil autora
Zobacz poprzedni temat :: Zobacz następny temat  
Autor Wiadomość
lukaszlab
Doświadczony Forumowicz



Dołączył: 15 Maj 2006
Posty: 231
Przeczytał: 0 tematów

Pomógł: 9 razy
Ostrzeżeń: 0/5
Skąd: Kraków

PostWysłany: Czw 0:04, 11 Cze 2015    Temat postu:

Jeszcze raz obiektowo z dodatkowym loadcase w obiekcie load

Kod:
In [1]: from unum.units import m as _m
from unum.units import mm as _mm
from unum.units import N as _N
from strupy.concrete.RcRecSect import RcRecSect
from strupy.concrete.SectLoad_new import SectLoad
from strupy.concrete.RcRecSectSolver import RcRecSectSolver
_kN=1000*_N
_kNm=_kN*_m
import  time
sec=RcRecSect()
solv=RcRecSectSolver()
load=SectLoad()
load.add_loadcase({"Name": 'ULS_case1', "Msd": 1000*_kNm, "MTsd": 2*_kNm, "Nsd": -200*_kN, "Vsd": 0*_kN})
sec.rysAn=0
sec.rysAp=0
t1=time.time()
for i in xrange(0, 1000):
    sec=solv.reinforce(sec, load)
t2=time.time()
print str(t1-t2)+' sekund'
print sec.get_sectinfo()
RcRecSect init
Material_concrete init
MaterialRcsteel init
RcRecSecSolver
-1.86000013351 sekund
{'comment': 'case calculated - [0, 1] case for Ap -0 case for An -1', 'b': 0.4 [m], 'fyd': 42000000 [Pa], 'ap': 0.04 [m], 'h': 0.8 [m], 'fctm': 220000.0 [Pa], 'an': 0.04 [m], 'Ap': 0.0001 [m2], 'fcd': 1670000.0 [Pa], 'ksiefflim': 0.5, 'rcsteelname': 'A-IIIN', 'An': 0.00355410199466 [m2], 'concretename': 'C20/25'}


Czyli mamy już
1.86000013351 sekund


Post został pochwalony 0 razy

Ostatnio zmieniony przez lukaszlab dnia Sob 12:50, 12 Mar 2016, w całości zmieniany 1 raz
Powrót do góry
Zobacz profil autora
Wyświetl posty z ostatnich:   
Napisz nowy temat   Odpowiedz do tematu    Forum Konstruktor budowlany Strona Główna -> Programowanie Wszystkie czasy w strefie EET (Europa)
Idź do strony 1, 2, 3, 4  Następny
Strona 1 z 4

 
Skocz do:  
Nie możesz pisać nowych tematów
Nie możesz odpowiadać w tematach
Nie możesz zmieniać swoich postów
Nie możesz usuwać swoich postów
Nie możesz głosować w ankietach

fora.pl - załóż własne forum dyskusyjne za darmo
Powered by phpBB © 2001, 2005 phpBB Group
Regulamin