Tomasz79

Użytkownik forum
  • Postów

    40
  • Dołączył

  • Ostatnia wizyta

Treść opublikowana przez Tomasz79

  1. Tomasz79

    VBA . . .

    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
  2. Tomasz79

    VBA . . .

    Witam A czy istnieje szansa na uruchomienie w ZWCadzie plików dvb z AutoCad? Jak je wgrać do edytora makr VBA żeby przerobić do współpracy z ZWCadem? Pozdrawiam
  3. Witam. Szukałem na forum tego tematu ale nie znalazłem. Czy da się rozbić "szereg bloków" na pojedyncze sztuki? Mam blok wstawiony z ustawieniami: 5 kolumn w rozstawie co 100 i tak samo 5 wierszy w rozstawie co 100. Jak to rozbić, bo na intelicadzie z InterSoftu rozbijałem normalnie "dynamitem" lub poleceniem "rozbij" a na ZwCADzie to nie działa? Pozdrawiam Tomasz
  4. Sprawdz czy masz plik o tej samej nazwie rysunku tylko z rozszeżeniem "bak" Jeśli jeśli masz coś takiego to ten bak zamień na dwg i odtworzysz ostatnią zapisaną wersję rysunku. Pozdrawiam
  5. Witam Idąc za ciosem linii wymiarowych chciałbym Państwu przedstawić procedurę do szybkiego wymiarowania szeregowego w pionie i poziomie. Z góry ostrzegam że procedura została napisana pod Intelicada konkurencji ( z Intersoftu). ZWCad-a czasem używam w pracy jak muszę siedzieć w biurze a tam nie chwalę się swoimi procedurami. W podziękowaniu za uzyskaną na tym forum pomoc chciałem przedstawić swoją procedurę. Polecenia uruchamiające procedury: wmz - wymiarowanie szeregowe w poziomie po osi X wmn - wymiarowanie szeregowe w pionie po osi Y ;*********************************************************************************** ;Procedura do szybkiego wymiarowania w stylu aktualnym na określonej warstwie w poziomie i w pionie ;Procedura do wymiarowania szerogowo w pionie i poziomie. ;Polecenie uruchamiające wymiarowanie w poziomie: wmz ;Polecenie uruchamiające wymiarowanie w pionie: wmn ;*********************************************************************************** ;Autor: Tomasz Jankowski 09,2009r ;*********************************************************************************** ;Procedura do szybkiego wymiarowania w stylu aktualnym na określonej warstwie w poziomie (defun c:wmz( / P2 P3 P4 P5 x1 x2 y1 y2 x4 x5 nrLK) (setq old1 (getvar "CLAYER")) (command "_layer" "_set" "5" ""); włączenie warstwy 5 <<<<< Tu można podać nazwę sowjej warstwy na której wykonywane są wymiarowania ;--------------------------- pobieranie listy punktow (c:pob_pkt) (setq P2 (getpoint "\nWskaż początek wstawienia wymiarów: ")) (demo_punkt P2) (setq P3 (getpoint P2 "\nWskaż odsunięcia wymiarów: ")) (demo_punkt P3) (setq x1 (car P2)) (setq y1 (cadr P2)) (setq x2 (car P3)) (setq y2 (cadr P3)) ;wstawienie 1 wymiaru (setq P4 (nth 0 lista1)) (setq x4 (car P4)) (setq P5 (nth 1 lista1)) (setq x5 (car P5)) (command "_dimlinear" (list x4 y1) (list x5 y1) (list x5 y2)) ;kontynuacja kolejnych wymiarów (setq nrLK 0) (setq nrLK (+ 2 nrLK)) (while (or (/= P4 nil) (/= P5 nil)) (progn (setq P4 (nth (- nrLK 1) lista1)) (setq P5 (nth nrLK lista1)) (setq x4 (car P4)) (setq x5 (car P5)) (command "_dimlinear" (list x4 y1) (list x5 y1) (list x5 y2)) (setq nrLK (+ 1 nrLK)) )) ;kasowanie listy (setq lista1 nil) (setvar "CLAYER" old1 );przywrócenie starej warstwy ) ;*********************************************************************************** ;procedura do szybkiego wymiarowania w stylu aktualnym na określonej warstwie w pionie (defun c:wmn( / P2 P3 P4 P5 x1 x2 y1 y2 x4 x5 nrLK) (setq old1 (getvar "CLAYER")) (command "_layer" "_set" "5" ""); włączenie warstwy 5 <<<<< Tu można podać nazwę sowjej warstwy na której wykonywane są wymiarowania ;--------------------------- pobieranie listy punktow (c:pob_pkt) (setq P2 (getpoint "\nWskaż początek wstawienia wymiarów: ")) (demo_punkt P2) (setq P3 (getpoint P2 "\nWskaż odsunięcia wymiarów: ")) (demo_punkt P3) (setq x1 (car P2)) (setq y1 (cadr P2)) (setq x2 (car P3)) (setq y2 (cadr P3)) ;wstawienie 1 wymiaru (setq P4 (nth 0 lista1)) (setq y4 (cadr P4)) (setq P5 (nth 1 lista1)) (setq y5 (cadr P5)) (command "_dimlinear" (list x1 y4) (list x1 y5) (list x2 y5)) ;kontynuacja kolejnych wymiarów (setq nrLK 0) (setq nrLK (+ 2 nrLK)) (while (or (/= P4 nil) (/= P5 nil)) (progn (setq P4 (nth (- nrLK 1) lista1)) (setq P5 (nth nrLK lista1)) (setq y4 (cadr P4)) (setq y5 (cadr P5)) (if (/= P5 nil) (command "_dimlinear" (list x1 y4) (list x1 y5) (list x2 y5))) (setq nrLK (+ 1 nrLK)) )) ;kasowanie listy (setq lista1 nil) (setvar "CLAYER" old1 );przywrócenie starej warstwy ) ;*********************************************************************************** ;Procedury potrzebne do działania poleceń: wmz; wmn ;*********************************************************************************** ;procedura wstawia tymczasowy krzyżyk w punktach wstawienia (defun demo_punkt( Px0 / x0 y0 ) (setq x0 (car Px0)) (setq y0 (cadr Px0)) (grdraw (list (- x0 5) y0) (list (+ x0 5) y0) 1 1) (grdraw (list x0 (+ y0 5)) (list x0 (- y0 5)) 1 1)) ;*********************************************************************************** ;procedura do zbieramoa współrzędnych punktów i zapisywania ich w liście w pamięci komputera (defun c:pob_pkt( / P1) (progn (setq lista1 nil) (setq P1 (getpoint "\nWskaż 1 punkt:")) (demo_punkt P1) (setq lista1 (append lista1 (list P1)));<<<<< ta linia tworzy lzawartość listyistę ;petla do zapisywania punktów (while (/= P1 nil) (setq P1 (getpoint "\nWskaż kolejny punkt:")) (if (/= P1 nil)(demo_punkt P1)) (setq lista1 (append lista1 (list P1)));<<<<< ta linia tworzy lzawartość listyistę ))) ;*********************************************************************************** (princ "\nWczytano polecenia: wmz; wmn") Tu znajduje się link do procedury zapisanej w pliku: http://www.metrolradom.pl/forum_i/linie_szer.lsp A tu znajduje się mała prezentacja działania programu: http://www.metrolradom.pl/forum_i/pokaz.htm Mam nadzieję że Państwu przyda się ten program i przyśpieszy pracę tak jak mi. Z wyrazami szacunku Tomasz
  6. Kiedyś na jakimś forum rozmawiałem z ludźmi na ten temat. http://www.konstruktorbudowlany.fora.pl/cad,9/warstwa-liniii-wymiarowych,1333.html Oto może być recepta na twoją bolączkę. Pozdrawiam Tomasz Jankowski
  7. Witam. Na końcu rozdziału tej książki jest recepta na wykonywanie swoich kreskowań. ftp://ftp.helion.pl/online/a12win/r01_12.pdf A tu cała książka do autocada 12. http://helion.pl/online/a12win/ Mam nadzieję że coś pomogłem. Pozdrawiam Tomasz
  8. Cześć ArchiCad chodzi na Mac-u ale cena jest ogromna za ten program. Pozdrawiam
  9. A może trzeba zastosować skróty poleceń: (command "dtext" "_j" "_Bl" pt6 h 0) (command "dtext" "_j" "_Br" pt6 h 0) Ja tak robie jak moje lispy mają pracować na dwóch wersjach językowych?
  10. Witam. Chcę zamienić wartość atrybutów w blokach hurtowo. Skleciłem procedurę, ale nie chce działać a powinna. Blok ma tylko jeden atrybut. (defun C:xxx( / da da1 da2 ile_danych ed) (progn (setq ile_danych 0) (prompt "\nWybierz blok do zmiany jego atrybutu:") (setq da (ssget (list (cons 0 "insert" ))));wybieram bloki (while (< ile_danych (sslength da));warunek na ilość bloków w rysunku (setq da1 (ssname da ile_danych));odczy kolejnego bloku (setq da2 (entnext da1));przechodzę do atrybutu (setq da2 (subst(cons 1 "TEST") (assoc 1 da2)da2));zamieniam wartość atrybutu (entmod da2) (setq ile_danych (+ 1 ile_danych)) ;sumowanie ); end while )) Proszę powiedzieć co robie nie tak. :cry: Z góry dziękuje za pomoc. Pozdrawiam Tomasz
  11. Tomasz79

    kody DXF

    Wszystko będzie grało pod warunkiem że zamienisz "0.15" na 0.15 Wartość ma być cyfrą bez "" (entsel) (setq en1 (entlast)) (setq ed (entget en1)) (setq ed (subst(cons 50 0.15) (assoc 50 ed)ed));subst (entmod ed) bo "2" to nazwa warstwy a nie wartość Teraz sprawdz. Pozdrawiam
  12. Tomasz79

    kody DXF

    Pierwszą książkę ściągnąłem sobie z jakiejś strony (nie pamiętam, z jakiej, trzeba poszukać) jest nią "Autolisp - kurs praktyczny" Marek Dudek, z tego co pamiętam autor udostępnił ją wszystkim chętnym. Jest w formie PDF. Drugą kupiłem niedawno cudem po cenie "fabrycznej" i jest nią "AutoCAD. LSP i DCL. Programowanie okien dialogowych w przykładach... " Dariusz Frenki Pozdrawiam Tomasz
  13. Tomasz79

    kody DXF

    Wielkie dzięki :mrgreen: za pomoc. Właśnie tego polecenia szukałem. Pogrzebałem w książce do AutoLisp-a faktycznie było to polecenie. Gapa ze mnie :???: Jeszcze raz wielkie dzięki.
  14. Tomasz79

    kody DXF

    Witam Wszystkich. Tak przy okazji tematu kody DXF mam pytanie: - Jak odczytać za pomocą lispa, jakie warstwy znajdują się w rysunku przy założeniu że na rysunku nie ma nic narysowane, są tylko utworzone warstwy? - Jak sprawdzić czy w rysunku są bloki o danej nazwie przy takim samym założeniu jak powyżej. Od dłuższego czasu nie mogę do tego rozgryźć. Pozdrawiam Tomasz
  15. Żeby wiedzieć, co potrafi BestCad nie trzeba go mieć. Wystarczy ściągnąć instrukcję w PDF-ie. Nakładka BestCad nie jest systemem robiącym wszystko za użytkownika. To jest zwykłe narzędzie a nie wielki system, to nie RCAD. Dane o pręcie przypisane są do elementów graficznych w formie DXF. To jest taka sama nakładka jak ŻelbetlCad Intersoftu tylko dużo więcej posiada funkcji i dodatków ułatwiających pracę. Ja mając za przykład BestCAD-a robie sobie małe makra w lispie do rysowania konstrukcji, czasami są bardzo prymitywnie napisane ale działają i szybciej się nimi rysuje. POZDRAWIAM