Rekomendowane odpowiedzi

Opublikowano

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

Opublikowano

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).
Opublikowano

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

Opublikowano

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

Jeśli chcesz dodać odpowiedź, zaloguj się lub zarejestruj nowe konto

Jedynie zarejestrowani użytkownicy mogą komentować zawartość tej strony.

Zarejestruj nowe konto

Załóż nowe konto. To bardzo proste!

Zarejestruj się

Zaloguj się

Posiadasz już konto? Zaloguj się poniżej.

Zaloguj się