gruzin Opublikowano 15 Kwietnia 2016 Zgłoś Udostępnij Opublikowano 15 Kwietnia 2016 jak dodać LISPEM wielolinie odniesienia w Zwcadzie prubuję jakoś tak ale sie nie da Command: (setq *doc* (vla-get-activedocument (vlax-get-acad-object)))#<VLA-OBJECT IZcadDocument 0438d660>Command: (setq mldrdict (vla-item (vla-get-dictionaries *doc*)"ACAD_MLEADERSTYLE")) #<VLA-OBJECT IZcadDictionary 0f509abc>Command: (setq newldrstyle (vlax-invoke mldrdict 'addobject "Arrow_Mleader""AcDbMLeaderStyle")) ; error: Wystąpił wyjątek tutaj cały przykład: http://forums.autodesk.com/t5/autocad-2007-2008-2009/loading-multileader-style/td-p/2248691 Cytuj Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
kojacek Opublikowano 16 Kwietnia 2016 Zgłoś Udostępnij Opublikowano 16 Kwietnia 2016 Obawiam się że się nie da. Dla twoich wywołań (bez ostatniego) sprawdź: (entget (vlax-vla-object->ename (vla-item mldrdict 0))) Wywołanie to zwraca coś podobnego do tego: ((-1 . <Entity name: 94c8760>) (0 . "ACAD_PROXY_OBJECT") (5 . "E1") (102 . "{ACAD_REACTORS") (330 . <Entity name: 94c8870>) (102 . "}") (100 . "AcDbMLeaderStyle") (90 . 499.000) (91 . 0.000000) (95 . 0.000000) (70 . 0) (94 . 0.000000)) W AutoCAD-zie to samo wywołanie zwraca: ((-1 . <Nazwa elementu: 7ff663004ce0>) (0 . "MLEADERSTYLE") (5 . "25E") (102 . "{ACAD_REACTORS") (330 . <Nazwa elementu: 7ff663004150>) (102 . "}") (330 . <Nazwa elementu: 7ff663004150>) (100 . "AcDbMLeaderStyle") (179 . 2) (170 . 2) (171 . 1) (172 . 0) (90 . 2) (40 . 0.0) (41 . 0.0) (173 . 1) (91 . -1073741824) (340 . <Nazwa elementu: 0>) (92 . -2) (290 . 1) (42 . 0.4) (291 . 1) (43 . 2.0) (3 . "") (341 . <Nazwa elementu: 0>) (44 . 0.18) (300 . "") (342 . <Nazwa elementu: 0>) (174 . 7) (178 . 6) (175 . 0) (176 . 0) (93 . -1073741824) (45 . 0.2) (292 . 0) (297 . 0) (46 . 5.0) (343 . <Nazwa elementu: 0>) (94 . -1073741824) (47 . 1.0) (49 . 1.0) (140 . 1.0) (293 . 1) (141 . 0.0) (294 . 1) (177 . 0) (142 . 1.0) (295 . 0) (296 . 0) (143 . 0.125) (271 . 0) (272 . 9) (273 . 9) (298 . 1)) Wynika z tego że w ZwCAD-zie, nie ma obiektu typu "MLEADERSTYLE". Obsługuje go uniwersalny obiekt zastępczy "ACAD_PROXY_OBJECT". Domyślam się zatem że ZwCAD obłuży z LISP-a style wielolinii, za jakiś czas dopiero (wątpię czy będzie to 2017). Cytuj Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
gruzin Opublikowano 17 Kwietnia 2016 Autor Zgłoś Udostępnij Opublikowano 17 Kwietnia 2016 W Zwcadzie 2015+ zwróciło mi prawie to samo co w Autocadzie: ((-1 . <Entity name: -170fb8>) (0 . "MLEADERSTYLE") (5 . "E1") (102 . "{ACAD_REACTORS") (330 . <Entity name: -170fd0>) (102 . "}") (330 . <Entity name: -170fd0>) (100 . "AcDbMLeaderStyle") (179 . 2) (170 . 2) (171 . 1) (172 . 0) (90 . 2) (40 . 0.0) (41 . 0.0) (173 . 1) (91 . -1056964608) (340 . <Entity name: -172360>) (92 . -2) (290 . 1) (42 . 2.0) (291 . 1) (43 . 8.0) (3 . "Standard") (341 . <Entity name: 0>) (44 . 4.0) (300 . "") (342 . <Entity name: -172378>) (174 . 1) (178 . 1) (175 . 1) (176 . 0) (93 . -1056964608) (45 . 4.0) (292 . 0) (297 . 0) (46 . 0.18) (343 . <Entity name: 0>) (94 . -1056964608) (47 . 1.0) (49 . 1.0) (140 . 1.0) (293 . 1) (141 . 0.0) (294 . 1) (177 . 0) (142 . 1.0) (295 . 0) (296 . 0) (143 . 3.75) (271 . 0) (272 . 9) (273 . 9) (298 . 0)) Jest może w miarę prosty sposób na dodanie stylów wielolinii do pliku dwg. Chciałbym dodać przykładowo takie style jak w załączonym pliku (chciałbym uniknąć wstawiania tego pliku jako blok i potem usuwania go). MLEADERSTYLE.dwg Cytuj Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
kruszynski Opublikowano 18 Kwietnia 2016 Zgłoś Udostępnij Opublikowano 18 Kwietnia 2016 W ZWCAD+ 2015 można utworzyć styl multilinii korzystając z funkcji entmakex: (defun AddMLeaderStyle ( stylename data / dict item ) (cond ( (not (setq dict (cdr (assoc -1 (dictsearch (namedobjdict) "ACAD_MLEADERSTYLE"))))) nil ) ( (setq item (dictsearch dict stylename)) (entmod (cons (assoc -1 item) data)) ) ( (setq item (entmakex data)) (dictadd dict stylename item) ) ) ) (AddMLeaderStyle "test" '( (0 . "MLEADERSTYLE") (100 . "AcDbMLeaderStyle") (179 . 2) (170 . 2) (171 . 1) (172 . 0) (90 . 2) (40 . 0.0) (41 . 0.0) (173 . 1) (91 . -1023410173) (92 . -2) (290 . 1) (42 . 1.0) (291 . 1) (43 . 1.0) (3 . "Standard") (44 . 1.0) (300 . "") (174 . 1) (178 . 1) (175 . 1) (176 . 0) (93 . -1073741824) (45 . 1.0) (292 . 0) (297 . 0) (46 . 0.18) (94 . -1056964608) (47 . 1.0) (49 . 1.0) (140 . 1.0) (293 . 1) (141 . 0.0) (294 . 1) (177 . 0) (142 . 1.0) (295 . 0) (296 . 0) (143 . 1.0) (271 . 0) (272 . 9) (273 . 9) ) ) Znaczenie poszczególnych kodów DXF opisane jest np tutaj:http://help.autodesk.com/view/ACD/2016/ENU/?guid=GUID-0E489B69-17A4-4439-8505-9DCE032100B4 Postaram się dowiedzieć jak dodać style w ZWCAD Classic i jakie są plany odnośnie ZWCAD 2017 AddMLeaderStyle.lsp gruzin 1 Cytuj Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
gruzin Opublikowano 18 Kwietnia 2016 Autor Zgłoś Udostępnij Opublikowano 18 Kwietnia 2016 OK. Entmakex też może być. Dziękuję Cytuj Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
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ą.