-
Postów
1922 -
Dołączył
-
Ostatnia wizyta
-
Wygrane w rankingu
58
Treść opublikowana przez Martin_S
-
Wyciągnięcie bryły pomiędzy dwoma punktami (po linii prostej).
Martin_S odpowiedział(a) na Martin_S temat w Wsparcie programistyczne LISP i VisualLISP
W takim razie, powinna iść konsekwencja i korekta tego UTF-8 w wersji ZWCAD2017 chyba, by działało to w lispach Niesamowite, modelowanie na bryłach solidowych dawno nie było tak "przyjemne" jak teraz, kilka wieczorów wystarczyło. Ale po co to 3D, to ma na celu dokładne spasowanie elementów w realnym modelu 3D, a z nich powstaną rysunki robocze 2D, to spore ułatwienie jeśli nie korzysta się z profesjonalnych "kombajnów CAD". Taki sobe komentarz. Dobra robota @kojacek. -
Wyciągnięcie bryły pomiędzy dwoma punktami (po linii prostej).
Martin_S odpowiedział(a) na Martin_S temat w Wsparcie programistyczne LISP i VisualLISP
Działa, szacun :hi: Mam pytanie o polskie znaki, Chińczycy wprowadzili do ZWCAD UTF-8, a ale w lispie trzeba zawartość zapisac jako ANSI, o tym ostatnio gruzin pisał, znaki polskie już mi działają. Używam angielskojezycznej wersji ZWCAD ARCHITECTURE - na silniku ZWCAD+ 2015 SP3.1 - z przyzwyczajenia. To pytanie to taka odskocznia od problematyki. W następnym kroku zajmę sie matematyczną stroną polecenia F3D do modelowania zakończeń bryły (typu: 0,1,2) po wykonaniu polecenia B3D ... ogarnę to by było łatwiej ;) -
Zakończenia brył o stałym przekroju (F3D)
Martin_S opublikował(a) temat w Wsparcie programistyczne LISP i VisualLISP
Mam pytanie, czy jest możliwe olispowanie (F3D) takiego zagadnienia, jako kontynuacja narzędzia EXTRINS (B3D) "Na piechotę" daję radę, ale to jest dość uciążliwe efekt 3 typów zakończeń: 0 - normalny, domyślnie standardowy 1 - równolegle do płaszczyzny globalnej XY 2 - prostopadle do płaszczyzny globalnej XY F3D.dwg Do fazowania nr 2 może przyda się lisp slice2P.zel od UI SZANSA Slice2p.zel Parę uwag do SLICE2P Używam go do ucinania płaszczyznami prostopadłymi do płaszczyzny globalnej XY, pierw wskazujemy 2 punkty na rzucie z góry (TOP VIEW), potem element do ucięcia, w wyniku otrzymujemy 2 bryły ucięte płaszczyzną przechodzącą przez 2 wskazane wcześniej punkty, Szczególnie przydatne do obróbki więźb drewnianych. -
Wyciągnięcie bryły pomiędzy dwoma punktami (po linii prostej).
Martin_S odpowiedział(a) na Martin_S temat w Wsparcie programistyczne LISP i VisualLISP
Co do 1. Skorzystałem z biblioteki profili stalowych , w ten sposób wykonstruowanych - jedynie co moge to uzyc zamkniecia, ale t jak piszesz 1 i ostatni punkt sie pokrywa co do 2. Nie korzystałem z tej opcji , dopiero dzis ją poznałem , wniosek jaki mi sie nasuwa, regiony z otworami są ok do tworzenia brył solidowych, ale niestety nie nadają sie do polecenia SLAB w zwcad architecture. p.s. dygresja dla architecturowców Jesli chcemy miec np. komin 3D sparametryzowany z polecenia SLAB to winny byc osobne obszary zamkniete, w przypadku tworzenia bryły solidowej to nie ma znaczenia, region "z dziurami" duzo wygodniejszy -
Wyciągnięcie bryły pomiędzy dwoma punktami (po linii prostej).
Martin_S odpowiedział(a) na Martin_S temat w Wsparcie programistyczne LISP i VisualLISP
Z tymi regionami to fajna sprawa, można bedzie płyty kanałowe modelować w 3D dużo dużo łatwiej lub pustaki stropowe dowolne do stropów gestożebrowych ..... ciekawych rzeczy sie uczę ;) -
Wyciągnięcie bryły pomiędzy dwoma punktami (po linii prostej).
Martin_S odpowiedział(a) na Martin_S temat w Wsparcie programistyczne LISP i VisualLISP
Racja, przeoczyłem to z dwuteownikami, oooops . plik skoryguję, nie wiedziałem, ze to narobi kupe problemów bedzie zasada jak na grafice DWG z dwuteownikami pozamykanymi, zetowniki także, pręt to okrąg, rura kwadratowa to region mam nadzieje ze bedzie juz ok B3D-003.dwg p.s. dyscyplina w CAD ważna , @kojacek - zrozumiałem, mam nadzieje że tak -
Wyciągnięcie bryły pomiędzy dwoma punktami (po linii prostej).
Martin_S odpowiedział(a) na Martin_S temat w Wsparcie programistyczne LISP i VisualLISP
Mam prosbe o drobną zmiane, w lispie pozbyłem sie polskich znaków, bo coś z nimi nie tak, i nazwa lispu skrócona, łatwiej sie wprowadza z klawiatury B3D (EXTRINS - oryginalne ale dość przydługie) teraz nie ma problemu z ś, ż, ę -
Wyciągnięcie bryły pomiędzy dwoma punktami (po linii prostej).
Martin_S odpowiedział(a) na Martin_S temat w Wsparcie programistyczne LISP i VisualLISP
Ok , lisp mi sie podoba , wreszcie sporo łatwiej "rzeźbi sie " stal w 3D ... idziemy ku ideałowi ;) B3D-002.dwg ... z fazowaniem końcówek byłoby to "genialne" narzędzie -
Wyciągnięcie bryły pomiędzy dwoma punktami (po linii prostej).
Martin_S odpowiedział(a) na Martin_S temat w Wsparcie programistyczne LISP i VisualLISP
Ok, o odejmowaniu regionów - coś sie nauczyłem przy okazji ;) @kojacek, mi zależy na tym lispie, postaram się takiego DWG wykonać ... także dam znać -
Wyciągnięcie bryły pomiędzy dwoma punktami (po linii prostej).
Martin_S odpowiedział(a) na Martin_S temat w Wsparcie programistyczne LISP i VisualLISP
Witaj, testowałem rure prostokątną goracowalcowaną 500x300x20, i tworzona bryła jest tylko z wewnętrznej krawędzi zamknietej, zewnętrza krawędz zamknieta bez zmian , wrzuce obrazek zaraz RP500x300x20_test.dwg p.s. jesli definiowany jest region1 w regionie2 to chyba te bryły obie powinny byc wyciągane i zewnętrzna odejmuje wewnętrzną, chyba ze trzeba definiowac osobno blok dla krawedzi/regionu zewnętrznego i osobno dla wewnętrznego tu rurę potraktowałem osobno (zewnętrzny obwód i wewnętrzny obwód) RP500x300x20_test.dwg -
ZWCAD 2017 - propozycje nowych funkcji lub usprawnienia istniejących.
Martin_S odpowiedział(a) na Chris temat w ZWCAD Standard i Professional
Dodam jeszcze że lekka korekta obrotu rastra tez , czasem mape trzeba pokalibrować w uproszczony sposób . Takie narzedzie ma e-cad do w/w celów, ale "na piechotę" j.w. tez da rade, blok i skalowanie osobne, potem rozbijasz blok i raster dopasowany -
ZWCAD 2017 - propozycje nowych funkcji lub usprawnienia istniejących.
Martin_S odpowiedział(a) na Chris temat w ZWCAD Standard i Professional
Wystarczy rysunek zamienić w blok 2D, i skalować osobno na kier. X i Y -
Ooops zapomniałem opisać konwersja spline do polilinii z łuków jako - MES odbywa się jedynie w płaszczyźnie globalnej XY, to informacja dla tych którzy chcą pofalowaną ścieżkę sobie utworzyć. Wklejam lisp dla spirali zwykłej i spirali 3D który znalazłem w internecie działa w ZWCAD+ spiral.lsp przydatne do korygowania schodów spiralnych z ZWCAD ARCHITECTURE i do uzwojenia zbrojenia 3D
-
Wyciągnięcie bryły pomiędzy dwoma punktami (po linii prostej).
Martin_S odpowiedział(a) na Martin_S temat w Wsparcie programistyczne LISP i VisualLISP
Tworząc blok nalezy uprzednio zamknąć polilinię, chyba ze korzystamy z gotowca z biblioteki co pokazywałem. Punkt wstawienia bloku mozna okreslić dowolnie wtedy nie koniecznie w narzucony sposób jak na grafice, także sposób kojacka jest praktyczniejszy jednak -
Wyciągnięcie bryły pomiędzy dwoma punktami (po linii prostej).
Martin_S odpowiedział(a) na Martin_S temat w Wsparcie programistyczne LISP i VisualLISP
@gruzin, rozważane były 2 opcje, polilinia zamknięta + punkty orientacyjne pomocnicze do wstawienia przekroju w sposób normalny na ścieżce w p. P1 druga opcja od kojacka , profil z polilinii zamknietej w postaci bloku, blok wstawiany wg zdefiniowanego punktu wstawiania w bloku w sposób normalny na ścieżce w p. P1 -
Wyciągnięcie bryły pomiędzy dwoma punktami (po linii prostej).
Martin_S odpowiedział(a) na Martin_S temat w Wsparcie programistyczne LISP i VisualLISP
Jesli chodzi o rury wystarczy powtórzyc na zewnętrznego i wewnętrznego okręgu wykonac lispa, potem odjąć 1 bryłe od drugiej i jest rura. Jesli ktoś używa nakładki e-cad, to baza profili jest tam szeroka, goracowalcowane i zimnogiete polilinie zamknięte, to samo dotyczy rur okragłych, kwadratowych i prostokatnych. Także interfejs z profilami to ambitniejsze zadanie, ale nie konieczne ;) do tworzenia bloków z przekroi stalowych Także, pomysł z blokiem jest udany, a osadzanie na sciezce bylo by wg definiowanego punktu wstawienia bloku w układzie lokalnym XYZ na poczatku sciezki w p. 0,0,0, to dobrze działa. Natomiast fazowanie jest trudniejszym problemem (wykorzystanie narzędzia SLICE jako ucięcie w płaszczyźnie równoległej do płaszczyzny globalnej XY lub prostopadłej do płaszczyzny globalnej XY (płaszczyzna cięcia jest prostopadła do płaszczyzny zawierajacej ścieżkę-odcinek P1-P2, dotyczy to poczatku i końca ściezki. 3 wariant bez mian. Są 2 wyjątki wczesniej opisałem. płaszczyzna przekroju profila nie może być równoległa do płaszczyzny cięcia SLICE bo wyjdzie bzdura, nieskończoność. ;) Do nastepnego wątku wkleje lispa do spirali 3D - np. zastosowanie do schodów spiralnych, strzemion-uzwojeń słupów okrągłych. Lisp jest z internetu, nie pamietam skąd, działa w ZWCAD+ -
Ambitniejszy cel: ścieżka jest polilinią składającą się albo z samych odcinków prostych, mieszana (odcinki proste i łuki), polilinia z łuków. polilinia konwertowana ze spline na polilinie z łuków (dyskretyzacja, na elementy skończone, ciągłe) Rozwiązanie na piechotę, więc da się ;) Scieżka w postaci splajnu skonwertowana na polilinię (łuki to elementy skończone dł. 100mm wpisane w spline) na poczatku ściezki znaleziono styczną w celu osadzenia lokalnego układu współrzędnych by osadzić blok w postaci obszaru zamknietego z polilinii (profil IPE600), rozbito blok, polecenie EXTRUDE i gotowe. PATH-01.dwg
-
Wyciągnięcie bryły pomiędzy dwoma punktami (po linii prostej).
Martin_S odpowiedział(a) na Martin_S temat w Wsparcie programistyczne LISP i VisualLISP
jest ok już, zaraz wrzuce obrazek , ufff, szacun kojacek Command: _appload R:\pliki3D\CADPL-Pack-v1.lsp loaded successfully! R:\pliki3D\EXTRINS.lsp loaded successfully! Command: ------- CADPL-Pack-v1.lsp - http://forum.cad.pl------- Command: Command: Command: EXTRINS Pierwszy punkt linii definiujÄ…cej Ĺ›cieĹĽkÄ™: Koniec Ĺ›cieĹĽki: Cancel! ; error: Function cancelled Command: Command: EXTRINS Pierwszy punkt linii definiujÄ…cej Ĺ›cieĹĽkÄ™: Koniec Ĺ›cieĹĽki: Podaj nazwe bloku: IPE600 Command: Command: Command: _shademode Current mode: 2D wireframe Enter option [2D wireframe/3D wireframe/Hidden/Flat/Gouraud/fLat+edges/gOuraud+edges] <2D wireframe>: g B3D-001.dwg Jak tak dobrze idzie to czy ścieżka może być dowolną polilinią o dowolnym kształcie? Z tym blokiem mi sie podoba u kojacka, odpada problem punktu orientacji, bo jest nim punkt wstawiania bloku , to duzo prostsze jednak. Masz rację kojacek. Po prostu Użytkowniku CAD , jak sobie zdefiniujesz punkt wstawiania bloku - przekrój zamkniety, tak ci sie taka "bela" utworzy na ściezce :) -
Wyciągnięcie bryły pomiędzy dwoma punktami (po linii prostej).
Martin_S odpowiedział(a) na Martin_S temat w Wsparcie programistyczne LISP i VisualLISP
W ZWCAD Architecture 2015 SP2 (silnik ZWCAD+ 2015 3.1) po tej korekcie cos dalej nie tak u mnie, cytuje F2 Command: _appload R:\pliki3D\EXTRINS.lsp loaded successfully! Command: Command: Command: EXTRINS Pierwszy punkt linii definiującej ścieżkę: Koniec ścieżki: Podaj nazwe bloku: IPE600 ; error: no function definition: CD:SYS_COLLLIST -
Wyciągnięcie bryły pomiędzy dwoma punktami (po linii prostej).
Martin_S odpowiedział(a) na Martin_S temat w Wsparcie programistyczne LISP i VisualLISP
OOps, w ZWCAD Classic wygląda tak Command: _open Command: EXTRINS Pierwszy punkt linii definiujÄ…cej Ĺ›cieĹĽkÄ™: Koniec Ĺ›cieĹĽki: Podaj nazwe bloku: IPE600 error: null function (CD:SYS_UNDOSTART) (PROGN (CD:SYS_UNDOSTART) (SETQ CMD (GETVAR "CMDECHO")) (SETQ INSOBJ (CD:BLK_INSERTBLOCK STARTP INSNAME (QUOTE (1 1 1)) 0 T)) (SETINSERTZORIENT (NEWVECT STARTP ENDP) (SETQ INSOBJ (VLAX-VLA-OBJECT->ENAME INSOBJ))) (SETQ PATHENT (CD:ENT_MAKELINE (GETVAR "CTAB") STARTP ENDP T)) (VLA-EXPLODE (VLAX-ENAME->VLA-OBJECT INSOBJ)) (ENTDEL INSOBJ) (SETVAR "CMDECHO" 0) (COMMAND "_.EXTRUDE" (ENTLAST) "" "_path" PATHENT) (SETVAR "CMDECHO" 1) (ENTDEL PATHENT) (CD:SYS_UNDOEND)) (IF (AND (SETQ INSNAME (GETSTRING "\nPodaj nazwe bloku: ")) (MEMBER (STRCASE INSNAME) (MAPCAR (QUOTE STRCASE) (CD:SYS_COLLLIST "BLOCK" (+ 1 2 4 8))))) (PROGN (CD:SYS_UNDOSTART) (SETQ CMD (GETVAR "CMDECHO")) (SETQ INSOBJ (CD:BLK_INSERTBLOCK STARTP INSNAME (QUOTE (1 1 1)) 0 T)) (SETINSERTZORIENT (NEWVECT STARTP ENDP) (SETQ INSOBJ (VLAX-VLA-OBJECT->ENAME INSOBJ))) (SETQ PATHENT (CD:ENT_MAKELINE (GETVAR "CTAB") STARTP ENDP T)) (VLA-EXPLODE (VLAX-ENAME->VLA-OBJECT INSOBJ)) (ENTDEL INSOBJ) (SETVAR "CMDECHO" 0) (COMMAND "_.EXTRUDE" (ENTLAST) "" "_path" PATHENT) (SETVAR "CMDECHO" 1) (ENTDEL PATHENT) (CD:SYS_UNDOEND))) (IF (SETQ ENDP (GETPOINT STARTP "\nKoniec Ĺ›cieĹĽki: ")) (IF (AND (SETQ INSNAME (GETSTRING "\nPodaj nazwe bloku: ")) (MEMBER (STRCASE INSNAME) (MAPCAR (QUOTE STRCASE) (CD:SYS_COLLLIST "BLOCK" (+ 1 2 4 8))))) (PROGN (CD:SYS_UNDOSTART) (SETQ CMD (GETVAR "CMDECHO")) (SETQ INSOBJ (CD:BLK_INSERTBLOCK STARTP INSNAME (QUOTE (1 1 1)) 0 T)) (SETINSERTZORIENT (NEWVECT STARTP ENDP) (SETQ INSOBJ (VLAX-VLA-OBJECT->ENAME INSOBJ))) (SETQ PATHENT (CD:ENT_MAKELINE (GETVAR "CTAB") STARTP ENDP T)) (VLA-EXPLODE (VLAX-ENAME->VLA-OBJECT INSOBJ)) (ENTDEL INSOBJ) (SETVAR "CMDECHO" 0) (COMMAND "_.EXTRUDE" (ENTLAST) "" "_path" PATHENT) (SETVAR "CMDECHO" 1) (ENTDEL PATHENT) (CD:SYS_UNDOEND)))) (IF (SETQ STARTP (GETPOINT "\nPierwszy punkt linii definiujÄ…cej Ĺ›cieĹĽkÄ™: ")) (IF (SETQ ENDP (GETPOINT STARTP "\nKoniec Ĺ›cieĹĽki: ")) (IF (AND (SETQ INSNAME (GETSTRING "\nPodaj nazwe bloku: ")) (MEMBER (STRCASE INSNAME) (MAPCAR (QUOTE STRCASE) (CD:SYS_COLLLIST "BLOCK" (+ 1 2 4 8))))) (PROGN (CD:SYS_UNDOSTART) (SETQ CMD (GETVAR "CMDECHO")) (SETQ INSOBJ (CD:BLK_INSERTBLOCK STARTP INSNAME (QUOTE (1 1 1)) 0 T)) (SETINSERTZORIENT (NEWVECT STARTP ENDP) (SETQ INSOBJ (VLAX-VLA-OBJECT->ENAME INSOBJ))) (SETQ PATHENT (CD:ENT_MAKELINE (GETVAR "CTAB") STARTP ENDP T)) (VLA-EXPLODE (VLAX-ENAME->VLA-OBJECT INSOBJ)) (ENTDEL INSOBJ) (SETVAR "CMDECHO" 0) (COMMAND "_.EXTRUDE" (ENTLAST) "" "_path" PATHENT) (SETVAR "CMDECHO" 1) (ENTDEL PATHENT) (CD:SYS_UNDOEND))))) (C:EXTRINS) Sorrki, może jutro mi coś się przejaśni, na razie sie poddaję :) Wracam do ZWCAD ARCHITECTURE z ZWCAD+ -
Wyciągnięcie bryły pomiędzy dwoma punktami (po linii prostej).
Martin_S odpowiedział(a) na Martin_S temat w Wsparcie programistyczne LISP i VisualLISP
Nie wiem co zrobiłem nie tak wklejam F2 Command: _appload R:\pliki3D\CADPL-Pack-v1.lsp loaded successfully! R:\pliki3D\B3D.lsp loaded successfully! Command: ------- CADPL-Pack-v1.lsp - http://forum.cad.pl------- Command: Command: Command: extrins Testowałem w ZWCAD ARCHITECTURE 2015 SP2 na silniku ZWCAD+ 2015 SP3.1 , czy to mam testować na Classic? wolałbym na ZWCAD+ raczej Pierwszy punkt linii definiujÄ…cej Ĺ›cieĹĽkÄ™: Koniec Ĺ›cieĹĽki: Podaj nazwe bloku: IPE600 ; error: no function definition: CD:SYS_UNDOSTART B3D-001.dwg Testowałem na ZWCAD ARCHITECTURE 2015 SP2 na silniku ZWCAD+ 2015 SP 3.1 -
Wyciągnięcie bryły pomiędzy dwoma punktami (po linii prostej).
Martin_S odpowiedział(a) na Martin_S temat w Wsparcie programistyczne LISP i VisualLISP
Jak z tego zrobic plik nazwa.lsp (B3D.lsp), czy w notatniku? Zaznaczam że jestem zielony, prosze sie nie denerwować z tego powodu -
Wyciągnięcie bryły pomiędzy dwoma punktami (po linii prostej).
Martin_S odpowiedział(a) na Martin_S temat w Wsparcie programistyczne LISP i VisualLISP
Blok wykorzystywuję jak "rzeźbię" na "piechotę" w 3D, on nie jest mi wcale do szczęścia potrzebny, ale pomaga osadzać przekrój w postaci bloku na ściezce ale ten blok rozbijam od razu. Opis punktu 5 (tam osadzam blok i go rozbijam) ;) -
Wyciągnięcie bryły pomiędzy dwoma punktami (po linii prostej).
Martin_S odpowiedział(a) na Martin_S temat w Wsparcie programistyczne LISP i VisualLISP
Orientację polilinii zamkniętej okreslamy na płaszczyźnie głównej LUW XY, na płasko , względem osi X globalnej, narysuje przykład za chwilę Przekroj do B3D.dwg Dowolny przekrój jest bez wiedzy użytkownika wirtualnie opisany prostokatem o podstawie równoległej do osi głównej LUW X, stąd powstają wirtualne 9 punkty orientacyjne profilu zamkniętego na scieżce. Te 9 punktów są podstawą dalszego postępowania , jak osadzić taki przekrój na ścieżce domyślnie p. 8 środek prostokata opisujacego przekrój, to chyba powinno ułatwić programowanie lispu, jest wystarczajace dla przekrojów np. symetrycznych w postaci profili stalowych. -
Wyciągnięcie bryły pomiędzy dwoma punktami (po linii prostej).
Martin_S odpowiedział(a) na Martin_S temat w Wsparcie programistyczne LISP i VisualLISP
Na początek przepraszam , ale lispów nie kumam, zostawiam to fachowcom - dla mnie to "magicy CAD", tak tak, niesamowite rzeczy robicie. Przeciętny uzytkownik wskazuje zamkniętą polilinię jako przekrój (polilinia musi być zamknięta), blok jest kłopotliwy w nastepnym kroku punkt orientacyjny (9 szt., ale nr 8 standard domyślnie środek opisanej podstawy przekroju) potem wskazanie ścieżki i następuje generowanie bryły solidowej 3D.