Hallo,
ich habe eine Frage zu einer nicht assoziativen Schraffur, deren Umgrenzungspfaddaten ich auswerten möchte:
In den Umgrenzungsdaten sind 2 Bögen enthalten, deren Gruppencode 73 auf 0 steht, alle anderen Bögen stehen auf 1 im GC 73. Ich weiß, daß damit die Ausrichtung gesteuert wird, im oder gegen den Uhrzeigersinn.
Was ich aber nicht verstehe sind die Winkelangaben im GC 50/51, wenn der GC 73 auf 1 steht, dann entsprechen die Winkel dem WKS, wenn der GC 73 auf 0 steht, dann weiß ich nicht, worauf sich daß bezieht?
Anbei eine Funktion, die mir die Umgrenzungspfaddaten in eine Liste schreibt und diese dann mit Entmake als Linien und Bögen in der Zeichnung erzeugt. Die beiden Bögen mit dem GC73 = 0 sind dann nicht korrekt erzeugt, weil der Winkel nicht zum WKS passt.
Code:
(defun c:TEST ( / A FLAG OBJLIST TEMPLIST obj)
(setq obj (car(entsel "\nNicht assoziative Schraffur wählen:"))
vla-obj (vlax-ename->vla-object obj))
(mapcar '(lambda(A)
(if (not Flag)
(if (=(car A)72)
(setq Flag 'T
TempList (cons A TempList)))
(progn
(if (member (car A) '(72 97))
(setq objList (cons (reverse TempList)objList)
TempList nil))
(if (/= (car A) 97)
(setq TempList (cons A TempList))
(setq Flag nil)))))
(entget obj))
(mapcar '(lambda(A)
(if (=(cdr(assoc 72 A))1)
(entmake (list (cons 0 "LINE")
(assoc 10 A)
(assoc 11 A)
(cons 62 3)))
(entmake (list (cons 0 "ARC")
(assoc 10 A)
(assoc 40 A)
(assoc 50 A)
(assoc 51 A)
(cons 62 3)))))
(reverse objList))
)
Hier auch nochmal die Liste, die rausgeschrieben wird:
Code:
'(((72 . 1) (10 61.8334 83.153 0.0) (11 46.0723 62.7192 0.0))
;;;Start Bogen 1
((72 . 2)
(10 -31297.2 24292.0 0.0)
(40 . 39616.4)
(50 . 0.658078)
(51 . 0.658642)
(73 . 0))
;;;Ende Bogen 1
((72 . 2)
(10 5436.35 -4137.29 0.0)
(40 . 6833.35)
(50 . 2.48295)
(51 . 2.48431)
(73 . 1))
((72 . 2)
(10 110.082 -26.6906 0.0)
(40 . 105.33)
(50 . 2.48431)
(51 . 2.61055)
(73 . 1))
((72 . 2)
(10 72.1606 -4.41891 0.0)
(40 . 61.3527)
(50 . 2.61055)
(51 . 2.77661)
(73 . 1))
((72 . 2)
(10 126.374 -25.134 0.0)
(40 . 119.389)
(50 . 2.77661)
(51 . 2.83326)
(73 . 1))
((72 . 2)
(10 237.794 -60.6206 0.0)
(40 . 236.323)
(50 . 2.83326)
(51 . 2.84017)
(73 . 1))
((72 . 1) (10 12.125 9.53878 0.0) (11 29.7589 34.8928 0.0))
((72 . 1) (10 29.7589 34.8928 0.0) (11 29.9579 35.1648 0.0))
((72 . 1) (10 29.9579 35.1648 0.0) (11 58.2609 73.7658 0.0))
((72 . 2)
(10 -425.503 428.481 0.0)
(40 . 599.875)
(50 . 5.6505)
(51 . 5.707)
(73 . 1))
((72 . 2)
(10 -425.552 428.518 0.0)
(40 . 599.936)
(50 . 5.70699)
(51 . 5.76934)
(73 . 1))
;;;Start Bogen 2
((72 . 2)
(10 445.106 -62.8849 0.0)
(40 . 399.825)
(50 . 3.65541)
(51 . 3.745)
(73 . 0))
;;;Ende Bogen 2
((72 . 1) (10 115.888 163.997 0.0) (11 111.724 158.235 0.0))
((72 . 1) (10 111.724 158.235 0.0) (11 106.61 150.747 0.0))
((72 . 1) (10 106.61 150.747 0.0) (11 97.2129 136.167 0.0))
((72 . 1) (10 97.2129 136.167 0.0) (11 90.0309 124.633 0.0))
((72 . 1) (10 90.0309 124.633 0.0) (11 82.7481 113.136 0.0))
((72 . 1) (10 82.7481 113.136 0.0) (11 73.4232 99.2041 0.0))
((72 . 1) (10 73.4232 99.2041 0.0) (11 67.5224 90.8274 0.0))
((72 . 1) (10 67.5224 90.8274 0.0) (11 61.8213 83.137 0.0))
((72 . 1) (10 61.8213 83.137 0.0) (11 61.8334 83.153 0.0)))
Mein Ziel ist es, die Schraffur zu transformieren, dafür muss ich mir bei den Bögen die Start- und Endpunkte berechnen, die Erstellung der Bögen über ENTMAKE war also nur zum testen.
Gibt es Möglichkeiten, an die Start- und Endpunkte über das VLA-Objekt ranzukommen? Ich habe da nichts gefunden, oder verstehe es nicht.
War zwar ziemlich viel, bin aber wie immer dankbar für jeden Tip.
------------------
viele Grüße
Jörn
http://www.bosse-engineering.com
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP