FastFiber

OPGELOST :Hoe vind ik een virtueel kruispunt tussen 3d polyline en andere lijn

Gestart door delangstevandestraat, vr 08 02 2019, 14:33:45

Vorige topic - Volgende topic

delangstevandestraat

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: :?:
Ik hou van werken,
ik kan er uuuren naar kijken...
daarom zorg ik ook dat er altijd genoeg overblijft voor morgen :-)

bart

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)
Domme vragen bestaan niet.
Domme antwoorden wel.

m.vr. groet Bart

roy_043

Iets met inters en polar moet mogelijk zijn. Of anders met vlax-curve-getclosestpointtoprojection.

EddyBeerke

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:
Civil3d 2026, Blender 4.x gebruiker
Gebruiker sinds AutoCAD R12

http://eddylucas.c1.biz/
https://www.google.com/maps/contrib/109381066561676463628/photos/

delangstevandestraat

@ 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
Ik hou van werken,
ik kan er uuuren naar kijken...
daarom zorg ik ook dat er altijd genoeg overblijft voor morgen :-)

roy_043

(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)
)

EddyBeerke

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.
Civil3d 2026, Blender 4.x gebruiker
Gebruiker sinds AutoCAD R12

http://eddylucas.c1.biz/
https://www.google.com/maps/contrib/109381066561676463628/photos/

delangstevandestraat

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:
Ik hou van werken,
ik kan er uuuren naar kijken...
daarom zorg ik ook dat er altijd genoeg overblijft voor morgen :-)