situering :
ik heb een aantel 3d polylines in een bepaalde laag
ik heb een block die daar in de buurt van staat
ik heb de enkel een block en enkele lijnen, (altijd minstens 2) en als ik dit manueel teken dan is dat een lijn v/h insertiepunt van het block loodrecht op de verste lijn, en dan terug loodrecht naar de eerste lijn, en van die 2e lijn neem ik het midden,
de z-positie van het bekomen punt speelt geen rol.
Ik wil dus volledig automatisch via lisp aan het center van de cirkel geraken.
heeft er iemand een idee hoe ik dit het makkelijkst verwezenlijk ? :roll: :?:
hoe bepaal je de positie van het blok in de eerste instantie?
(om het midden te bepalen tussen twee lijnen is een willikeurige verbindingslijn goed genoeg die hoeven niet loodrecht te zijn)
Iets met inters en polar moet mogelijk zijn. Of anders met vlax-curve-getclosestpointtoprojection.
Er is een OSNAP die je misschien kunt gebruken:
APPINT
probeer bv eens dit:
CiteerCommand: ID
Specify point: appint
of and X = 1076.32 Y = 457.15 Z = 1.234
Command:
@ bart
via de dxf-codes van het block (assoc 10) heb ik de positie
en ik wil niet het midden tussen de lijnen, maar wel het specifieke punt in de cirkel, (het midden ligt op een lijn, en ik wil een punt)
@roy
heb je misschien een stukje voorbeeld code van dia vlax, want ik vind daar weinig uitleg over terug, en krijgt "too few arguments" maar welk argument wiltienogkrijgen ?
@eddy
probeer wat juist, want ik snap niet wat je bedoeld, ik heb 4 entity's (de 3d-polylines) en het positiepunt van het block
(defun c:Test ( / enm pt)
(if
(and
(setq enm (car (entsel)))
(setq pt (getpoint "\nSelect point: "))
)
(progn
;; (vlax-curve-getClosestPointToProjection curveObj givenPt normal [extend])
(princ "\nMet projection: ")
(print (vlax-curve-getclosestpointtoprojection enm pt '(0.0 0.0 1.0) T))
;; (vlax-curve-getClosestPointTo curveObj givenPt [extend])
(princ "\nZonder projection: ")
(print (vlax-curve-getclosestpointto enm pt T))
)
)
(princ)
)
Citaat van: delangstevandestraat op vr 08 02 2019, 14:33:45
...
Ik wil dus volledig automatisch via lisp aan het center van de cirkel geraken.
...
:shock: Niet goed gelezen denk ik.
Citeer(setq closelinepoint (vlax-curve-getclosestpointtoprojection LineEnt khppos '(0 0 1))) ;die '(001) is de projectierichting denkik
doet wat ik wou dat ze doet ;-)
thanx every body :vreegoe: