Hallo,
in einem Lisp-Programm werden Polylinien-Eigenschaften von einer Musterleitung auf die Ausgewählte Polylinie übertragen.
Die Eigenschaften " ...(-3 ("LTNR_00042"
(1000 . "Leitung"))) " zum übertragen fehlen leider noch.
Wie kann man die Werte mit dem Lisp-Prg. auslesen und Übertragen?
Die Eigenschaften einer Linie:
----------
Befehl: (entget(car(entsel))'("*"))
Objekt wählen: ((-1 . <Objektname: 7ecfb498> ) (0 . "POLYLINE") (330 .
<Objektname: 7ef7ac50> ) (5 . "548B") (100 . "AcDbEntity") (67 . 0) (410 .
"Model") (8 . "UNIT_PL-172A-X1_700") (62 . 7) (6 . "Continuous") (100 .
"AcDb2dPolyline") (66 . 1) (10 0.0 0.0 0.0) (70 . 0) (40 . 0.7) (41 . 0.7) (210
0.0 0.0 1.0) (71 . 0) (72 . 0) (73 . 0) (74 . 0) (75 . 0) (-3 ("LTNR_00042"
(1000 . "Leitung"))))
----------
Auszug aus dem List-Prg.
----------
defun Lesen ()
(progn
(setq OBJEKT Ax)
(redraw OBJEKT 3)
(if(and (not(vl-catch-all-error-p
(setq GB (vl-catch-all-apply
'vlax-get-property
(list (vlax-ename->vla-object OBJEKT)
'ConstantWidth
)
)
)
)
)
(not(vl-catch-all-error-p
(setq LTG (vl-catch-all-apply
'vlax-get-property
(list (vlax-ename->vla-object OBJEKT)
'color
.......
(defun Schreiben ()
(while
(princ "\n Die zu ändernde Leitung wählen!")
(setq AUSWAHL(ssget "_:S" ))
(setq Ax (ssname AUSWAHL 0))
(setq Aw (entget Ax))
(if
(= (cdr (assoc 0 Aw)) "POLYLINE")
(progn ;Polylinie
(vl-catch-all-error-p
(vl-catch-all-apply
'vlax-put-property
(list (vlax-ename->vla-object Ax)
'ConstantWidth
GB
)
)
)
(vl-catch-all-error-p
(vl-catch-all-apply
'vlax-put-property
(list (vlax-ename->vla-object Ax)
'color
LTG
)
----------
Für Eure Bemühungen bedanke ich mich schon im Voraus.
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP