Tomasz79

Użytkownik forum
  • Postów

    40
  • Dołączył

  • Ostatnia wizyta

Odpowiedzi opublikowane przez Tomasz79

  1. Witam

     

    utworzyłem nowe forum specjalnie dla programu SMath.

     

    Od 1998 roku używam Mathcada (kupiłem go jeszcze w wersji 6).

    Obecnie posiadam wersję v14.

     

    Mathcad to świetny program, bardzo podoba mi się filozofia pracy w nim.

    Jest to połączenie edytora tekstu, z niesamowicie wygodnym edytorem równań, które same się przeliczają.

    Jedyną jego wadą było to, że mogłem mieć go tylko na jednym komputerze.

     

    Przez przypadek trafiłem na program SMath, i jestem naprawdę pod jego wrażeniem.

     

    attachicon.gifsmath.png

     

    Otwarcie powiem, że nie jest tak rozbudowany jak komercyjny odpowiednik i czasami brakuje w nim funkcjonalności - chociażby obliczeń symbolicznych na macierzach.

    W pewnych sytuacjach także może się zawiesić, ale nie zdarza się to często.

     

    Natomiast jest darmowy, a pewne funkcje są genialnie rozwiązane np. ustawianie granic i skali wykresów.

     

    Na tym forum chciałbym pisać nieco o sposobie pracy w programie.

     

    Poniżej jest link do wersji instalacyjnej programu.

    Została ona zaczerpnięta ze strony producenta SMath.

    Witam.

    To jest bardzo ciekawa alternatywa dla MathCAD-a, od dłuższego czasu na nim pracuje wykonując obliczenia wytrzymałościowe. Nie ma takiej prędkości jak MathCAD, ale dobrze się sprawuje. Spece od niego potrafią robić na nim animacje oraz potrafią go programować w VB lub C# ( http://smath.info/wiki/ ). Obecnie program posiada bardzo ciekawą funkcjonalność, która przydaje się w pracy. Program tworzy pliki exe z projektów, dzięki temu można robić matryce obliczeniowe, w których nie można robić zmian w procedurach obliczeniowych.

    Oto jak wygląda przykładowe okno takiego projektu:

    gallery_69_33_24706.png

     

    A tutaj widok wydruku do powyższego okna

    gallery_69_33_614.png

     

    Powyższy przykład znajduje się w załączniku.

    Pozdrawiam TJ

    belka jednoprzesłowa z 1 siłą P.rar

  2. Witam.

    Jestem posiadaczem ZWCAD-a plus nakładka e-cad do żelbetu. Architekturę budynków wykonuję na Arcadii Architektura z InterSoftu i obecnie zastanawiam się czy nie przesiąść się na ZwCAD Architcture. Pobrałem wersję próbną ZwCAD Architcture i coś tam szkicuje ale jakoś mi nie wychodzi. Zwracam się do obeznanych użytkowników z prośbą o podesłanie mi jakiegoś kawałka projektu wykonanego w ZwCAD Architcture abym mógł zobaczyć pełne możliwości programu. Na tym forum pokazane jest wiele ciekawych rzeczy jakie można zrobić w ZwCAD Architcture a mnie ciekawi jak wygląda plik dwg gotowy do wydruku.

    Czy da się tak zrobić aby w wygenerowanym przez program przekrój był „aktywny” np. zmieniam w przekroju położenie okno a program automatycznie uaktualnia zmiany  na rzutach i w modelu 3D?

    Czy po skończeniu wykonywania projektu model 3D "rozbijacie" do wersji 2D czy pozostawiacie na przyszłość gdyby były potrzebne jakieś zmiany?

    Czy da się w modelu 3D dodać warstwy posadzkowe, czy trzeba robić to ręcznie na przekrojach?

    Czy normalnie jest aby model 3D wykonany za pomocą funkcji GRUPA 3D rozbijał się na rzuty gdy chce podejrzeć model renderowany?

    To jest model 3D przed renderingiem:

    post-69-0-90395200-1421485748_thumb.jpg

    To jest model 3D po renderingu:

    post-69-0-75103200-1421485770_thumb.jpg

     

    Pozdrawiam Tomasz79

     
     
     
     
     

  3. Nie używałem nigdy progressBar więc nic pewnego powiedzieć nie mogę, ale:

    Mogę się podzielić przykładowym plikiem, gdzie jest użyty prosty przykład współpracy sds i LISP (patrz Załącznik). Można w nim zobaczyć jak powinien wyglądać plik w C++ używający funkcji SDS.

    Nie wczytywałem tego w VBA, ale myślę, że taka przykładowa składnia powinna być użyteczna:

    Private Declare Function NazwaFunkcji Lib "plik.dll" (ByVal hKey As Long) As Long

    W ten sposób można zrobić inerface VBA do używania funkcji SDS.

    Witam.

    Ostatnio interesuję się trochę C++ i SDS-em i chciałem się dowiedzieć czy ten program (w załączniku) był pisany w Visual C++ Express czy w wersji pełnej Profesional?

    Pozdrawiam

  4. Książka praktycznie nie do zdobycia.

    Chyba że po znajomościach lub allegro.

    Ja do zdobycia tej książki 2 lata temu zatrudniłem żonę, wiedząc że jej nigdzie w żadnym sklepie (internetowym lub w księgarni) nie kupi obiecałem jej za nią :mrgreen: srebrny zegarek . I któregoś pięknego dnia przyszła paczka do mnie z książką z fakturą z jakiejś księgarni internetowej. Ale co było najśmieszniejsze w tym wszystkim że ta książka miała na okładce ślady po butach, jakby ktoś po niej chodził i trochę zmiętolona była, tak jakby leżała gdzieś długo i czekała na mnie. Więc od tamtej pory ta książka jest bardzo cenna dla mnie, bo kosztowała mnie 40zł + srebrny zegarek :lol: .

    A to strona, która może coś ci pomoże.

    http://www.afralisp.net/dialog-control-language/tutorials/dialog-boxes-and-autolisp-part-2.php

    A tu jakieś przykłady z jedne książki z Helionu.

    http://www.tomaszjankowski.webpark.pl/przyklady_dlc.zip

    Pozdrawiam

  5. Proszę ściągnąć sobie ten plik w zip-ie.

    http://www.tomaszjankowski.webpark.pl/strony.zip

    Tam znajdzie Pan odpowiedź, zeskanowałem przykład z książki do tego przypadku

    A tu mała pomoc do projektowania okienek "tester okienek DCL" może się przydać:

    ;;; TESTDCL.LSP .... by M.P.Saju.
    ;;; This is a freeware. License for use of this application is granted for
    ;;; distribution, provided it is not mutilated. If there are problems please
    ;;; feel free to contact the author at mpsaju@yahoo.com
    ;;;
    ;;; Testing *.DCL files becomes a necessity when developing a good sized lisp
    ;;; application for easy input and understanding. This routine in lisp was
    ;;; written for just such a necessity.
    ;;;
    ;;; Usage is very simple... Just type "Testdcl" in Autocad text screen and press
    ;;; "enter". A file selection dialog box will open up to select the DCL file.
    ;;; On entering, the DCL under test will open. This application works under
    ;;; the assumption that there is an active "accept" or "cancel" button.
    ;;;
    ;;; I have tried to solve all problems that I have encountered. However if there
    ;;; are any further issues please feel free to contact me.
    
    
    (defun c:testdcl (/ nam$ nam id loop)
    ;;; lisp for checking dialogboxes at the beginning of their design
     (setq nam$ (getfiled "Select a DCL file" "" "dcl" 0))
     (setq nam (identify nam$))
    )
    (defun identify	(nam$ / file x dd dd$)
     (setq	file (open nam$ "r")
    dd$  nil
    dd   nil
    x    0
     )
     (while (setq dd (read-line file))
       (if	(wcmatch dd "*: dialog {")
         (progn
    (setq dd$ (substr dd 1 (- (strlen dd) 11)))
    (if (wcmatch dd$ " *")
      (setq dd$ (substr dd$ 2 (strlen dd$)))
      ;; added for eliminating blank
    )
    (rundcl nam$ dd$)
         )
    
    
       )
    
     )
     (close file)
     dd$
    )
    (defun rundcl (nam$ nam)
     (setq id (load_dialog nam$))
     (if (not (new_dialog nam id))
       (exit)
     )
     (action_tile "cancel" "(done_dialog 0)")
    ;;; cancel button dialog.. normally in all DCLs
     (action_tile "accept" "(done_dialog 0)")
    ;;; accept button dialog.. normally in all DCLs
     (setq loop (start_dialog))
    )  
    
    

    Pozdrawiam

  6. Dzięki wielkie za pomoc.

    Męczę te bloki, ponieważ napisałem program, który wstawia bardzo dużą ilość bloków (czasami można liczyć je w tysiącach) i przez "command" i "insert" w zwcad-dzie wstawianie ich trwa wieki (intelicadzie z InterSOFT-u troszkę szybciej).

    Testowałem wstawianie takiej dużej ilości bloków bez atrybutów omawianą wyżej techniką trwa o 1/3 szybciej, więc męczarnie nad optymalizowaniem kodu raczej się opłacają.

    Jak ktoś będzie chciał mieć program do odczytywania wyników obliczeń zbrojenia płyty w programie PLATO (z InterSOFT-u) to proszę pisać do mnie to udostępnię aktualną wersję napisaną w LISP-ie.

    Tej mojej metody nawet InterSOFT nie znał do póki mu nie pokazałem. Dodam jeszcze, że nie jest to zgrywanie wyników w formacie DXF czy MBA zupełnie coś innego.

    Kawałek funkcjonalności programu:

    http://www.tomaszjankowski.webpark.pl/plato2.htm

    Z optymalizacją kodu jeszcze trochę mi zejdzie bo coraz to więcej człowiek się uczy tego LISP-a, a kiedy pisałem program to dopiero raczkowałem z LISP-em.

    Pozdrawiam Tomasz Jankowski

  7. Witam ponownie.

    Jak za pomocą Lisp-a i funkcji entmake wstawić do rysunku blok z atrybutem?

    Wiem że to temat jest ciężki ale czy da się to zrobić nie używające (command "_insert") lub vla-InsertBlock?

    Wymęczyłem coś takiego jak poniżej i program wstawia mi tylko blok ale bez atrybutu:

    Wstawiany blok posiada tylko jeden atrybut.

    (defun C:x2 (/)
    (setq dan (list 10 10 10))
    (entmake(append(list
    (cons 0 "INSERT") (cons 100 "AcDbEntity") (cons 67 0)
    (cons 8 "0") (cons 100 "AcDbBlockReference") (cons 61 1) (cons 2 "Osie - warstwa 0")
    (cons 10 dan)(cons 41 1.0) (cons 42 1.0) (cons 43 1.0) (cons 50 0.0) (cons 70 0)
    (cons 71 0) (cons 44 0.0) (cons 45 0.0))))
    (entmake(append(list
    (cons 0 "ATTRIB") (cons 67 0)  
    (cons 8 "0") (cons 284  0) (cons 48  1.00000) (cons 60  0) (cons 39  0.000000) (cons 10 dan) (cons 40  20.0000)(cons 1 "os A")
    (cons 50 0.000000) (cons 41 1.00000) (cons 51 0.000000) (cons 7 "Standard") (cons 71 0) (cons 72 1) 
    (cons 11 dan) (cons 210 dan )(cons 2 "OŚ") (cons 70  0) (cons 73  0) (cons 74  0) (cons 280 0))))
    (entmake(append(list
    (cons 0 "SEQEND") (cons 67 0) (cons 8 "0") (cons 48  1.00000) (cons 60  0))))
    )

    Dzięki za wszelką pomoc.

  8. Witam ponownie.

    Przedstawiam procedurę do zmiany wartości atrybutów w blokach.

    Może to nie jest mistrzostwo ale działa. Jakby komuś było potrzebne to proszę poniżej znajduje się kod:

    ;funkcja główna, która  przeszukuje bloki w poszukiwaniu atrybutów o zadanej nazwie
    
    (defun c:xxx ( / da ile_danych dane_bloki atr1)
    (progn
    (prompt "\nWybierz blok do zmiany jego numeru_pozycji:")
    	(setq da (ssget (list (cons 0 "insert" ) ))); pobranie zbioru bloków
    	(setq ile_danych 0)
    			(repeat (sslength da) ;pętla zależna od ilości danych
    				(setq dane_bloki (ssname da ile_danych));odczyt informacji o kolejnym bloku
    					(setq atr1 (cdr(assoc 66 (entget dane_bloki)))) ;sprawdzenie czy blok posiada atrybuty
    						(if (= atr1 1)(progn
    
    							(atblok1 dane_bloki "NAZWA_SYSTEMOWA" "kr.");procedura do zmiany danych
    							(atblok1 dane_bloki "MATERIAL" "C27");procedura do zmiany danych 
    							(prompt "\nOdszukano bloki z atrybutami")
    
    						));koniec testu
    			(setq ile_danych (+ 1 ile_danych)));koniec reapt 
    (command "_regen")
    ));koniec funkcji
    
    
    ;program do zmiany jednego atrybutu w wybranym bloku
    ;nazwa_bloku -  jest to zmienna okreslająca nazwę wybranego bloku delkaruje się ją poprzez (setq dane_bloki (ssname da ile_danych))  >> da - zbiór wskazanych elementów >> ile_danych - numer bloku "elementu"
    ;nazwa_atr - jest to nazwa "TAG" atrybutu szukanego w bloku
    ;wartosc_atr - jest to wartość atrybutu jaki ma być wstawiony gdy znajdzie się dany "TAG"
    
    (defun atblok1 ( nazwa_bloku nazwa_atr wartosc_atr / da1 da2 da3 dane1 dane2 ile_d)
    (progn
    (setq da1 nazwa_bloku);przypisanie elementu do zmiennej
    ;wewnętrzna pętla przeszukująca atrybuty bloków i szukająca tagu
    (setq ile_d 0)
    (while (= ile_d 0)
    (setq da2 (entnext da1))
    (setq dane1 (cdr(assoc 0 (entget  da2))));szukanie końca bloku
    	(if (= dane1 "SEQEND")
    	(progn (setq ile_d 1) ))
    (setq dane2 (cdr (assoc 2 (entget da2))));pobranie nazwy atrybutu
    	(if (= ile_d 0) (progn ;jeżeli nie znajdzie seqend to dalej szuka i zamienia atrybuty
    		(if (= dane2 nazwa_atr ) 
    			(progn 
    			(setq da3 (entget (entnext da1)))
    			(setq da3 (subst(cons 1 wartosc_atr) (assoc 1 da3)da3)); tu nadaje sie zmiany kodu 
    			(entmod da3)
    	))));koniec warunków zamiany
    (setq da1 (entnext da1)));koniec while
    ));koniec funkcji

    Pozdrawiam

  9. Witam ponownie.

    Nadal bawię się blokami z atrybutami.

    Napisałem coś takiego:

    (defun c:xxx ( / )
    (progn
    (prompt "\nWybierz blok do zmiany jego numeru_pozycji:")
    (setq da (ssget (list (cons 0 "insert" ))))
    (setq ile_danych 0)
    (while (< ile_danych (sslength da))
    (setq da1 (ssname da ile_danych));odczyt informacji o kolejnym bloku
    (setq da2 (entget(entnext da1))); przejście do kolejnego elementu bloku
    (setq dane1 (cdr(assoc 0 (entget da2)))); odczyt nazwy elementu bloku (0. "ATTDEF") szukany
    (prompt "\nElement: ") (princ dane1)
    (setq ile_danych (+ 1 ile_danych));kolejny blok do odczytu 
    );koniec while
    ));koniec funkcji

    Procedura ma za zadanie odczytanie informacji na temat pierwszego elementu z jakiego składa się blok, wywala mi błąd na tej linii:

    1)

    (setq da2 (entget(entnext da1))); przejście do kolejnego elementu bloku
    (setq dane1 (cdr(assoc 0 (entget da2)))); odczyt nazwy elementu bloku (0. "ATTDEF") szukany 

    Natomiast jeśli wstawię coś takiego:

    2)

    (setq dane1 (cdr(assoc 2 (entget (entnext da1)))))

    to wszystko będzie działało?

    Proszę o pomoc w poprawieniu tego kodu Nr1 bo już mi brak cierpliwości.

    Czym się różnią te dwa kawałki kodu że jeden chodzi a drugi nie (dla mnie oba powinny dawać te sam wyniki)?

    Docelowo chciałem zrobić procedurę, która wyszukuje w blokach z atrybutami nazwę ("Tag") i jeśli znajdzie szukany atrybut zmienia jego wartość ("Value"). Wszystko pisze wyłącznie w AutoLisp-ie bo VisualLisp jak na razie dla mnie to czarna magia.

    Dzięki

  10. Film jako przykład modelowania 3d w ZwCadzie jest pouczający z tym nie ma co się sprzeczać. Możliwości modelowania 3d są bardzo duże, ograniczenia ją tylko wyobraźnia użytkownika. Film pokazuje że się da zrobić dach w 3D, ale poza efektem wizualnym nic to nie wnosi do pracy inżyniera. Chyba że traktować to jako sztuka dla sztuki. Dlatego przepraszam jeśli kogoś obraziłem, uraziłem moimi wypowiedziami.

    Dlaczego napisałem to co napisałem? Chciałem się podzielić swoim doświadczeniem, aby użytkownicy i młodzi inżynierowie bawiąc się w 3D byli świadomi że modelowanie więźby w 3D to tylko "sztuka dla sztuki" i nie tracili zbędnego czasu myśląc że to coś przyśpieszy ich pracę.

    A tak przy okazji czy jest jakaś nakładka do rysowania więźby dachowej pod ZwCad-a?

    Pozdrawiam Tomasz

  11. Witam.

    Film fajny i ciekawy, ale jak dla mnie robota bez sensu.

    Zapytacie dlaczego, odpowiem w punktach możecie się z tym zgodzić lub nie?

    1) Podstawowa sprawa pracochłonność bo to zabawa w 3D zawsze marnowała czas.

    Proszę na tym dachu zrobić parę facjatek i to różnego rodzaju i wtedy zobaczymy jak to łatwo pójdzie, doróbcie ścianki stolcowe, kleszcze?

    2) Czy istnieje sens robienia więźby dachowej w 3d jak reszta projektu jest robiona w 2d?

    Ma to sens jedynie dla ustalenia widoku połaci dachowych i dla łączenia się facjatek z połaciami dachu.

    3) Ktoś się narobi żeby zrobić w 3d konstrukcję więźby dachowej a później i tak będzie musiał robić wykaz mas drewna "ręcznie" bo komputer za niego tego nie zrobi.

    4) Mając taki dach jak go wymiarować, opisać i pokazać go na papierze?

    Oczywiście można to zrobić w LAYOUT-cie.

    5) Czy jakiś cieśla potrzebuje takich dokładnych rysunków żeby stosować 3d technologi??

    Jego będzie interesował przekrój krokwi, rozstaw poszczególnych elementów konstrukcji dachu, spadki i poziomy położenia poszczególnych elementów konstrukcyjnych typu murłata, płatwie czy jętka. To wszystko z 2d rysunków może się dowiedzieć czyli z przekroju budynku i z rzutu połaci i więźby dachowej.

    Dlaczego jestem taki anty zapytacie ?

    Dachów to ja już trochę przerobiłem, również modelowanie budynków w 3d (ręcznie jak ten dach). Doszedłem do wniosków, których zapewne nie jeden z "Nas" użytkowników programów CAD doszedł, "goły" ZwCad, AutoCad bez nakładek i dodatkowych programów to tylko deska kreślarska. Takie zabawy w 3D to tylko marnowanie cennego czasu, a jak wiadomo czas to pieniądz. A bez specjalistycznego oprogramowania ewentualnie dodatkowych programów wykonanych w VBA lub w LISP-ie to wychodzi taka zabawa.

    Pozdrawiam

    Tomasz Jankowski wieloletni użytkownik programów CAD.

  12. Wielkie dzięki za odpowiedź.

    Będę musiał skorzystać z uprzejmości jakiegoś AutoCad-owca z wersją full.

    Kiedyś na studiach napisałem nakładkę pod VBA do rysowania konstrukcji stalowych

    i teraz jak już mam ZWCAD-a pasowało by ją uruchomić na intelicadzie.

    Pozdrawiam