gruzin Posted April 15, 2016 Report Share Posted April 15, 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 Quote Link to comment Share on other sites More sharing options...
kojacek Posted April 16, 2016 Report Share Posted April 16, 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). Quote Link to comment Share on other sites More sharing options...
gruzin Posted April 17, 2016 Author Report Share Posted April 17, 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 Quote Link to comment Share on other sites More sharing options...
kruszynski Posted April 18, 2016 Report Share Posted April 18, 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 Quote Link to comment Share on other sites More sharing options...
gruzin Posted April 18, 2016 Author Report Share Posted April 18, 2016 OK. Entmakex też może być. Dziękuję Quote Link to comment Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.