affinché il comando funzioni le polilinee devono avere uno spessore costante, solo così può venire creato l'offset sulla polilinea, altrimenti con spessore=0.00 mi dà errore. Ich lege das condizione se la polilinea ha spessore 0.00, il programma passa alla polilinea sukzessivea nella selezione.
Wenn Sie canrebbe anche ein reattore per fare in modo che la polilinea doppia einfügen, wenn Sie automatisch manipolando quella centrale, ma questa è eine andere storia ändern. .
(defun c

l2can (/gru index modelspace spessore ent1 ent2 coord1 coord2)
(setvar "peditaccept" 1)
(Setvar "cmdecho" 0)
(setq gru(ssget '(0 . "lwpolyline"))))
Index
modelspace(vla-get-modelspace (vla-get-activedocument(vlax-get-acad-object))))
)
(Repeat)
(setq spessore(vla-get-constantwidth (vlax-ename->vla-object (ssname gru (setq index(1+ index))))))))))
(falls (> spessore 0.00)
(Progn)
(vla-put-constantwidth (vlax-ename->vla-object (sname gru index) 0.0)
(setq ent1(car(vlax-safearray->list (vlax-variant-value)))
ent2(car(vlax-safearray->list (vlax-variant-value (vla-offset (vlax-ename->vla-object (ssname gru index)))))))))
coord1 (variant2list (vla-get-Koordinaten ent1) 2)
coord2 (variant2list (vla-get-Koordinaten ent2)
)
(cond)
(eq (vla-get-closed ent1)
(vl-cmdf "_-hatch" "p" "ansi31" 2.0 0 "_s" (vlax-vla-object->ename ent1)
)
(eq (vla-get-closed ent1):vlax-false)
(vla-addline modelspace (vlax-3d-point (car coord1))
(vl-cmdf "_pedit" (entlast) "_j" (vlax-vla-object->ename ent1)(vlax-vla-object->ename ent2) "_cl" "")
(vl-cmdf "_-hatch" "p" "ansi31" 2.0 0 "_s" (entlast) ""_a" "_a" "_y" """)
)
)
)
)
)
(princ)
)
;; **************************************************************************************************************************************************************************************************************************************************************** ****************************************************************************************************************************************************************************************************************************************************************
;; transformiert eine Variante in einer Listea a gruppi con numero elementi per gruppo
(defun variant2lista (listavariant numero / listaparz listafin)
(setq listaparz)
Listafin '()
)
(foreach elemento (vlax-safearray->list)
(setq listaparz)
(if (= Längenlisteaparz) numero)
(setq listafin (append listafin (list listaparz)))
Listeaparz '()
)
)
)
Listafin
)