| |
| Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für Autodesk Produkte |
| |
| PNY wird von NVIDIA zum Händler des Jahres gewählt – zum dritten Mal in Folge, eine Pressemitteilung
|
Autor
|
Thema: Distanz von Punkt lotrecht auf Linie (864 mal gelesen)
|
SHP Mitglied Konstrukteur
Beiträge: 1331 Registriert: 17.07.2003 Win2k IV7-SP1 IV8 IV9
|
erstellt am: 27. Feb. 2006 10:50 <-- editieren / zitieren --> Unities abgeben:
|
joern bosse Ehrenmitglied Dipl.-Ing. Vermessung
Beiträge: 1763 Registriert: 11.10.2004 Window 11 ACAD 2021 CIVIL 2021 BricsCAD ab V14 11th Gen Intel(R) Core(TM) i7-1165G7 @ 2.80GHz 2.80 GHz 32.0GB RAM NVIDIA GeForce MX450<P>
|
erstellt am: 27. Feb. 2006 11:30 <-- editieren / zitieren --> Unities abgeben: Nur für SHP
Hallo Hans-Peter, man könnte den Lotrechten Abstand folgendermaßen bestimmen: Code:
(defun c:test (/) (setq pkt (getpoint "\nBitte geben Sie einen Punkt an:")) (setq obj (car (entsel "\nBitte wählen Sie ein Linienelement:"))) (setq dist (distance pkt (vlax-curve-getPointAtDist (vlax-ename->vla-object obj) (vlax-curve-getDistAtPoint (vlax-ename->vla-object obj) (vlax-curve-getClosestPointTo (vlax-ename->vla-object obj) pkt))))))
Zu Bedenken: Sobald die Lotrechte über den Anfangs- oder Endpunkt der Linien hinaus geht wird nicht mehr die korrekte Distanz wiedergegeben. Wenn es sich um korrekte 3D-Abstände handeln soll, dann muß die Höhe z des Linienelementes berücksichtigt werden, bei Horizontaldistanzen muß der Punkt auf Höhe Null gebracht werden.------------------ viele Grüße Jörn Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
SHP Mitglied Konstrukteur
Beiträge: 1331 Registriert: 17.07.2003 Win2k IV7-SP1 IV8 IV9
|
erstellt am: 27. Feb. 2006 12:00 <-- editieren / zitieren --> Unities abgeben:
|
SHP Mitglied Konstrukteur
Beiträge: 1331 Registriert: 17.07.2003 Win2k IV7-SP1 IV8 IV9
|
erstellt am: 27. Feb. 2006 12:23 <-- editieren / zitieren --> Unities abgeben:
|
joern bosse Ehrenmitglied Dipl.-Ing. Vermessung
Beiträge: 1763 Registriert: 11.10.2004 Window 11 ACAD 2021 CIVIL 2021 BricsCAD ab V14 11th Gen Intel(R) Core(TM) i7-1165G7 @ 2.80GHz 2.80 GHz 32.0GB RAM NVIDIA GeForce MX450<P>
|
erstellt am: 27. Feb. 2006 12:37 <-- editieren / zitieren --> Unities abgeben: Nur für SHP
Hallo Hans-Peter, wenn Du im BKS arbeitest mußt Du die Koordinaten des Punktes in das WKS transformieren, das geht mit der Funktion "trans" (setq pkt (trans(getpoint "\nBitte geben Sie einen Punkt an:")1 0)) ------------------ viele Grüße Jörn Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
CAD-Huebner Ehrenmitglied V.I.P. h.c. Verm.- Ing., ATC-Trainer
Beiträge: 9803 Registriert: 01.12.2003 One AutoCAD 2.5 - 2024, AutoCAD, Civil 3D, Win10/Win11
|
erstellt am: 27. Feb. 2006 12:39 <-- editieren / zitieren --> Unities abgeben: Nur für SHP
Die gleiche Aufgabe hat MAPCAR hier schon vor Jahren gelöst und auch noch im seinen unvergleichlichen Stil beschrieben. Dieser Thread ist in jedem Falle lesenswert (in dankbarer Erinnerung). http://ww3.cad.de/foren/ubb/Forum145/HTML/000038.shtml#000008 Anonsten erwartet vlax-curve-getClosestPointTo einen Punkt im WCS/WKS. Getpoint hingegen bringt die Koordinate im aktuellen BKS. Es muss also zur Allgemeinfunktionalität noch ein SETQ Pkt (TRANS Pkt 1 0)) nach dem Getpoint hinzugefügt werden (TRANS transformatiert vom BKS = 1 zu WKS = 0).
------------------ Mit freundlichem Gruß Udo Hübner Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |