dmatusz3 Opublikowano 26 Października 2015 Zgłoś Opublikowano 26 Października 2015 OK, to nie zamykam. Cytuj
kojacek Opublikowano 26 Października 2015 Zgłoś Opublikowano 26 Października 2015 A propos tych profili. Tak sobie myślę że jeśli jedziemy z bloków, to można się umówić że definicja takiego bloku może składać się zawsze i tylko z jednego obiektu będącym: 1) Zamkniętą LWPOLYLINE (tak jak tutaj jakieś tam IP które testowaliśmy) 2) Obiektu typu REGION - i tutaj możemy sobie pozwolić na bardziej wydumane kształty (np. rura, czy profil z otworami). Warunek - musi to być jeden obiekt I wtedy, można dopracować program tak, aby można było wybrać tylko taki rodzaj bloku (jeden obiekt jak powyżej) - reszta byłaby odrzucana. Cytuj
dmatusz3 Opublikowano 26 Października 2015 Zgłoś Opublikowano 26 Października 2015 Jeśli mogę wtrącić 2 słowa... Typów kształtowników jest sporo. Pewnie każdy ma narysowane swoje najpopularniejsze, niemniej cała baza kształtowników dla ZWCAD dostępna jest za 1zł. Poniżej przykład aplikacji, z której można w ciągu kilku sekund wstawić dany profil. A oto przykład takiego kształtownika wybranego z listy. dwuteownik.dwg Może warto byłoby dodać obsługę takich profili, aby nie trzeba było rozbijać bloków z tej aplikacji? Cytuj
Martin_S Opublikowano 26 Października 2015 Autor Zgłoś Opublikowano 26 Października 2015 (edytowane) 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+ Edytowane 26 Października 2015 przez Martin_S Cytuj
gruzin Opublikowano 26 Października 2015 Zgłoś Opublikowano 26 Października 2015 Tak się zastanawiam, czemu mamy wybierać blok, czemu to służy? Po co robić z polilinii blok i potem go wyciągać. Może od razu wyciągajmy zamknięta polilinie po ścieżce i kliknięciem wskazujmy punkt z którego się wyciąga polilinię. Region OK, ale też chyba nie ma potrzeby aby byl w bloku. pozdrawiam Cytuj
Martin_S Opublikowano 26 Października 2015 Autor Zgłoś Opublikowano 26 Października 2015 @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 Cytuj
pawmal Opublikowano 26 Października 2015 Zgłoś Opublikowano 26 Października 2015 Witam Jeśli obiektem do wyciągnięcia ma być blok, to fajnie byłoby mieć możliwość wpisania nie tylko jego nazwy "z ręki" (w przypadku długich nazwa może to być kłopotliwe), ale także możliwość wskazania bloku w rysunku. Pozdrawiam Cytuj
kojacek Opublikowano 26 Października 2015 Zgłoś Opublikowano 26 Października 2015 Co do bloków. Blokiem jest łatwiej operować: obrót, obrót 3d, skalowanie itp. Ma punkt bazowy, a definicja bloku determinuje kierunki, orientację itp. Ponadto ma nazwę, więc wybór profilu nie jest przypadkowy. Narysowana każdorazowo Polilinia może nie spełniać zawsze wszystkich warunków. Cytuj
Martin_S Opublikowano 26 Października 2015 Autor Zgłoś Opublikowano 26 Października 2015 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 Cytuj
gruzin Opublikowano 26 Października 2015 Zgłoś Opublikowano 26 Października 2015 Co do bloków. Blokiem jest łatwiej operować: obrót, obrót 3d, skalowanie itp. Ma punkt bazowy, a definicja bloku determinuje kierunki, orientację itp. Ponadto ma nazwę, więc wybór profilu nie jest przypadkowy. Narysowana każdorazowo polilinia może nie spełniać zawsze wszystkich warunków. OK, jasne. Cytuj
kojacek Opublikowano 26 Października 2015 Zgłoś Opublikowano 26 Października 2015 Wprowadziłem na razie takie zmiany:1) Rysowany jest profil bez użycia command. To jest wielokrotnie szybsze2) Profil w bloku może być zamkniętą polilinią lub regionem.Oczywiście CADPack musi byc załadowany. Sprawdźcie czy to chodzi na ZW, bo nie miałem okazji próbować. Na Ac hula bez zarzutu. Oto kod: ; =========================================================================================== ; (defun C:EXTRINS (/ InsName StartP EndP PathEnt InsObj) (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 'strcase (cd:SYS_CollList "BLOCK" (+ 1 2 4 8))) ) ) (progn (cd:SYS_UndoBegin) (setq InsObj (cd:BLK_InsertBlock StartP InsName '(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)) (ExtrudeProfile (vlax-ename->vla-object InsObj) PathEnt) (cd:SYS_UndoEnd) ) ) ) ) (princ) ) ; =========================================================================================== ; (defun ExtrudeProfile (Blk Lin / Prf Crv Reg Del) (vla-explode Blk) (setq Prf (entlast)) (vla-delete Blk) (if (cond ( (= "LWPOLYLINE" (cdr (assoc 0 (entget Prf)))) (setq Crv (vlax-make-safearray vlax-vbObject '(0 . 0))) (vlax-safearray-put-element Crv 0 (vlax-ename->vla-object Prf)) (setq Reg (vla-AddRegion (cd:ACX_ASpace) Crv)) ) ( (= "REGION" (cdr (assoc 0 (entget Prf)))) (setq Reg (vlax-ename->vla-object Prf)) ) (t nil) ) (progn (vla-AddExtrudedSolidAlongPath (cd:ACX_ASpace) (if (= (type Reg )'VLA-OBJECT) Reg (setq Del (vlax-safearray-get-element (vlax-variant-value Reg) 0)) ) (vlax-ename->vla-object Lin) ) (if Del (vla-delete Del)) (foreach % (list Lin Prf)(entdel %)) ) ) ) ; =========================================================================================== ; (defun NewVect (p1 p2 / dt sq sm um uv) (setq dt (mapcar '- p2 p1) sq (mapcar '* dt dt) sm (apply '+ sq) um (sqrt sm) uv (mapcar '/ dt (list um um um)) ) ) ; =========================================================================================== ; (defun SetInsertZOrient (ExtrVec Ename / e b) (setq e (entget Ename) b (trans (cdr (assoc 10 e)) Ename ExtrVec) e (subst (cons 10 b)(assoc 10 e) e) e (subst (cons 50 0.0)(assoc 50 e) e) e (subst (cons 210 ExtrVec)(assoc 210 e) e) ) (entmod e) ) ; =========================================================================================== ; (princ) Cytuj
Martin_S Opublikowano 26 Października 2015 Autor Zgłoś Opublikowano 26 Października 2015 (edytowane) 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 Edytowane 26 Października 2015 przez Martin_S Cytuj
kojacek Opublikowano 27 Października 2015 Zgłoś Opublikowano 27 Października 2015 (edytowane) Hmm. W definicji bloku ma znajdować się jeden obiekt. Czyli w twoim przypadku nie dwa regiony a tylko jeden. Musi on być utworzony tak że w definicji bloku od większego regionu odejmujesz mniejszy. Wtedy jest jeden obiekt - definiowany przez (tutaj) dwa profile. Edytowane 27 Października 2015 przez kojacek Cytuj
gruzin Opublikowano 27 Października 2015 Zgłoś Opublikowano 27 Października 2015 Działa dobrze. Cytuj
dmatusz3 Opublikowano 27 Października 2015 Zgłoś Opublikowano 27 Października 2015 Poniżej film, jak można odejmować regiony. Martin_S 1 Cytuj
kojacek Opublikowano 27 Października 2015 Zgłoś Opublikowano 27 Października 2015 A teraz moi mili, w następnym kroku niechże zrobi ktoś dwg-a, w którym niech sobie będzie z 5-10 bloków z profilami z LWPOLYLINE, kilka z REGION-ami, oraz kilka całkiem innych różnych bloczków. Po co? Otóż chcę przerobić wybieranie bloków na:1) przez nazwę "z ręki"2) przez nazwę z listy3) przez wybór entycji (leży sobie gdzieś obok i się wskazuje)Całą "chytrość" wyboru chcę oprzeć na tym że sprawdzana jest zawartość bloku tak, aby np. liście (punkt 2) znalazło się tylko np. 10 bloków, (spełniających warunki) a pozostał (np. 20) - już nie. Cytuj
Martin_S Opublikowano 27 Października 2015 Autor Zgłoś Opublikowano 27 Października 2015 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ć Cytuj
Martin_S Opublikowano 27 Października 2015 Autor Zgłoś Opublikowano 27 Października 2015 (edytowane) 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 Edytowane 27 Października 2015 przez Martin_S Cytuj
gruzin Opublikowano 27 Października 2015 Zgłoś Opublikowano 27 Października 2015 Faktycznie lisp będzie pomocny. pozdrawiam Cytuj
Martin_S Opublikowano 27 Października 2015 Autor Zgłoś Opublikowano 27 Października 2015 (edytowane) 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 ś, ż, ę Edytowane 27 Października 2015 przez Martin_S Cytuj
gruzin Opublikowano 27 Października 2015 Zgłoś Opublikowano 27 Października 2015 plik trzeba zakodować w ANSI i polskie znaki będą normalnie działały. W załaczniku zakodowany w ANSI lisp EXTRINS.lsp Cytuj
kojacek Opublikowano 27 Października 2015 Zgłoś Opublikowano 27 Października 2015 Halo, halo panie Martin_S... Niechże mnie ktoś poprawi, ale czy nie jest tak że w blokach o nazwach IPE500 i IPE600, które gdzieś tutaj istnieją w przykładowych plikach, polilinie są OTWARTE, a nie (jak być powinno) zamknięte? Mylę się? O poliliniach otwartych a wyglądających jak zamknięte można przeczytać (autoreklama) tutaj: https://kojacek.wordpress.com/polilinia-zamknieta/ Cytuj
Martin_S Opublikowano 27 Października 2015 Autor Zgłoś Opublikowano 27 Października 2015 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 Cytuj
gruzin Opublikowano 27 Października 2015 Zgłoś Opublikowano 27 Października 2015 (edytowane) Kojacku załączam kilka bloków stworzonych w Zwcadzie do testowania. Bloki od "a1" do "a8" zawierają albo polilinie zamknięte albo regiony więc powinny się dać wyciągnąć. Bloki B nie nadają się do tego. err. blok b2 zawiera niezamkniętą polilinię a udaje się go wyciągnąć ?? test bloki 01.dwg Edytowane 27 Października 2015 przez gruzin Cytuj
Martin_S Opublikowano 27 Października 2015 Autor Zgłoś Opublikowano 27 Października 2015 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ę ;) Cytuj
Rekomendowane odpowiedzi
Dołącz do dyskusji
Możesz dodać zawartość już teraz a zarejestrować się później. Jeśli posiadasz już konto, zaloguj się aby dodać zawartość za jego pomocą.