Hallo cadffm,
danke, das hat mich auf die Spur gebracht!
Hier eine kurze Erläuterung an Alle, die auch mit dem Thema zu tun haben:
1) xdata Liste aus der Bemassung auslesen:
(setq eliste_xdata(assoc -3 (entget(car(entsel))'("ACAD"))))
Ergab bei mir:
(-3 (ACAD (1000 . DSTYLE) (1002 . {) (1070 . 78) (1070 . 3)
(1070 . 170) (1070 . 1) (1070 . 176) (1070 . 3) (1070 . 177) (1070 . 3) (1002 .
})))
2)Die überschriebenen Bemassungswerte sind in Paaren in der Gruppe 1070 angeordnet, ein schöne Beschreibung unter http://www.autodesk.com/techpubs/autocad/acad2000/dxf/dimension_style_overrides_dxf_ 06.htm
In meinem Fall ist DIMALT im Wert 170 verborgen, also das Paar (1070 . 170) (1070 . 1). Ich habe leider keine Liste der Codes, ich habe den Wert mit verändern der Bemassung Vorher/Nachher ermittelt. Falls einer da was hat, wäre ich dankbar.
3) Um schnell an alle Werte in der Gruppe 1070 zu kommen, kann man die Funktion benutzen, ergibt eine Liste der Werte
(defun massoc(key inlist / element outlist)
(foreach element inlist
(if (= (car element) key)
(setq outlist (cons element outlist))
)
)
(reverse outlist)
)
Aufruf: (massoc 1070 (cdadr eliste_xdata))
------------------
Grüßle aus Karlsruhe
Armin
[Diese Nachricht wurde von manndaten am 03. Apr. 2011 editiert.]
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP