LISP - wielolinia odniesienia


Rekomendowane odpowiedzi

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

Odnośnik do komentarza
Udostępnij na innych stronach

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).
Odnośnik do komentarza
Udostępnij na innych stronach

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

Odnośnik do komentarza
Udostępnij na innych stronach

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

Odnośnik do komentarza
Udostępnij na innych stronach

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ą.

Gość
Dodaj odpowiedź do tematu...

×   Wklejono zawartość z formatowaniem.   Usuń formatowanie

  Dozwolonych jest tylko 75 emoji.

×   Odnośnik został automatycznie osadzony.   Przywróć wyświetlanie jako odnośnik

×   Przywrócono poprzednią zawartość.   Wyczyść edytor

×   Nie możesz bezpośrednio wkleić grafiki. Dodaj lub załącz grafiki z adresu URL.

Ładowanie