CADsite forum

AutoCAD => Autolisp => Topic gestart door: delangstevandestraat op vr 08 02 2019, 14:33:45

Titel: OPGELOST :Hoe vind ik een virtueel kruispunt tussen 3d polyline en andere lijn
Bericht door: delangstevandestraat op vr 08 02 2019, 14:33:45
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: :?:
Titel: Re: Hoe vind ik een virtueel kruispunt tussen 3d polyline en andere lijn
Bericht door: bart op vr 08 02 2019, 15:00:58
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)
Titel: Re: Hoe vind ik een virtueel kruispunt tussen 3d polyline en andere lijn
Bericht door: roy_043 op vr 08 02 2019, 15:23:48
Iets met inters en polar moet mogelijk zijn. Of anders met vlax-curve-getclosestpointtoprojection.
Titel: Re: Hoe vind ik een virtueel kruispunt tussen 3d polyline en andere lijn
Bericht door: EddyBeerke op di 12 02 2019, 09:09:51
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:
Titel: Re: Hoe vind ik een virtueel kruispunt tussen 3d polyline en andere lijn
Bericht door: delangstevandestraat op wo 13 02 2019, 08:18:17
@ 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
Titel: Re: Hoe vind ik een virtueel kruispunt tussen 3d polyline en andere lijn
Bericht door: roy_043 op wo 13 02 2019, 09:40:43
(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)
)
Titel: Re: Hoe vind ik een virtueel kruispunt tussen 3d polyline en andere lijn
Bericht door: EddyBeerke op wo 13 02 2019, 10:36:42
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.
Titel: Re: Hoe vind ik een virtueel kruispunt tussen 3d polyline en andere lijn
Bericht door: delangstevandestraat op wo 13 02 2019, 15:54:25
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: