Beste,
ik heb problemen met het insert punt te bepalen van een MLeader via dxf.
Via de "110" code bekom ik het insert punt, maar dit blijkt niet te veranderen als ik de leader arrow verplaats.
Na het kijken in de entity data ben ik er achter dat het de "10" code is die achter "leader_line" komt.
Hoe kan ik deze bereiken? Code 10 komt meerdere keren voor in de entity data.
(defun c:foo ( / )
(setq Items (ssget))
(setq count (sslength A))
(setq index 0)
(repeat count
(setq Ent (entget (ssname Items index)))
(setq AS (cdr (assoc 140 Ent)));arrowhead size 140
(setq AI (cdr (assoc 10 Ent)));arrowhead insert point 10
(setq x1 (- (car AI) AS))
(setq x2 (+ (car AI) AS))
(setq y1 (- (cadr AI) AS))
(setq y2 (+ (cadr AI) AS))
(setq p1 (list x1 y2))
(setq p2 (list x2 y1))
(setq p1 (trans p1 0 1))
(setq p2 (trans p2 0 1))
(command "line" p1 p2 "")
(setq index (1+ index))
)
(princ)
)
Andere manieren om de arrowhead locatie te bepalen zijn ook welkom
Mvg John
Beste John,
Misschien is ChNthDxf wel interessant voor je!
Laad ChNthDxf.lsp in een nieuwe tekening, en teken daar een Mleader op het punt 10,10!
Test dan met:
(setq e (entlast))
(ChNthDxf e 3 10 '(20 20 0))
Het invoegpunt moet dan verandert zijn van 10,10 naar 20,20.
Met vriendelijke groet, HofCAD CSI.
PS ChNthDxf.lsp kun je o.a. vinden op:
http://forums.augi.com/showthread.php?124979-Nth-item-in-DXF-list (http://forums.augi.com/showthread.php?124979-Nth-item-in-DXF-list)
Hofcad bedankt voor de reactie ..
Ga dat zeker eens bekijken..
Maar het is niet mijn bedoeling deze te veranderen..
Bedoeling is het insertpunt te kunnen achterhalen om te gebruiken als variable verder in de routine..
Dat wat ik raar vind is, dat het het eerst punt met dxf code 10 niet veranderd, op blijft bij de oorspronkelijke coordinaten. ipv te veranderen als ik de leader verplaats.
Hoop dat ik beetje duidelijk ben geweest?
Mvg John
Probeer dit.
(defun c:insp ()
(setq co nil)
(foreach n (entget (car (entsel))) (if (= (car n) 10) (setq co (append (list (cdr n)) co))))
(princ (nth 1 co))
(princ)
)
Groeten,
Alex