| |
| 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, eine Pressemitteilung
|
Autor
|
Thema: Richtung Polylinie (1285 mal gelesen)
|
Danillo Mitglied Bauingenieur
Beiträge: 245 Registriert: 12.11.2003 Windows 11 - AutoCAD 2023
|
erstellt am: 06. Jul. 2006 14:19 <-- editieren / zitieren --> Unities abgeben:
Hallo Experten, bräuchte für ein Lispprogramm eine Funktion, die mir die Richtung (Winkel) des angeklickten Segmentes einer Polylinie zurück gibt. Das gleiche bräuchte ich auch für eine Linie, wobei ich hier über die Objektdaten auf den Start- und Endpunkt zugreifen kann und mir so den Winkel berechnen kann. Wie ich das gleiche bei einer Polylinie mache, weiß ich nicht. Gibt es eine Funktion die mir das Leben erleichter? Danke und Grüße Daniel Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Andreas Kraus Mitglied Elektrotechniker
Beiträge: 1455 Registriert: 11.01.2006 WIN 10 ACAD 2022 BricsCAD V23
|
erstellt am: 06. Jul. 2006 14:49 <-- editieren / zitieren --> Unities abgeben: Nur für Danillo
Hallo Danillo, aber sicher gibts da was. Folgendes verwende ich zum einstellen des Fangwinkels, da kannst du dir rausholen was du brauchst. Gruß Andreas (defun z001a () (if (= (getvar "snapang") 0) (progn (setq pic (nentsel "Objekt zur Fangausrichtung wählen")) (z001_check_ent pic) ) (setvar "snapang" 0) ) ) (defun z001_check_ent (pic) (setq ent_name (nth 0 pic)) (setq ent_data (entget ent_name)) (setq px (nth 1 pic)) (setq p1 (osnap (nth 1 (nentselp px)) "_near")) (if (null (setq p0 (osnap px "_cen"))) (setq p0 (osnap px "_endp")) ) (setq w (angle p0 p1)) (cond ((and (> w (* pi 0.25)) (<= w (* pi 0.5))) (setq w (+ w (* pi 1.5))) ) ((and (> w (* pi 0.5)) (<= w (* pi 0.75))) (setq w (- w (* pi 0.5))) ) ((and (> w (* pi 0.75)) (<= w (* pi 1))) (setq w (+ w (* pi 1))) ) ((and (> w (* pi 1)) (<= w (* pi 1.25))) (setq w (- w (* pi 1))) ) ((and (> w (* pi 1.25)) (<= w (* pi 1.5))) (setq w (+ w (* pi 0.5))) ) ((and (> w (* pi 1.5)) (<= w (* pi 1.75))) (setq w (- w (* pi 1.5))) ) (t nil) ) (setvar "snapang" w) ) Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
CADmium Moderator Maschinenbaukonstrukteur
Beiträge: 13527 Registriert: 30.11.2003 .
|
erstellt am: 06. Jul. 2006 15:02 <-- editieren / zitieren --> Unities abgeben: Nur für Danillo
Das Teil im Anhang nutzt die Funktion vlax-curve-getfirstDeriv. Damit lassen sich die Steigungswinkel von Kurvenobjekten am Klickpunkt ermitteln. ------------------ - Thomas - "Bei 99% aller Probleme ist die umfassende Beschreibung des Problems bereits mehr als die Hälfte der Lösung desselben." Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Danillo Mitglied Bauingenieur
Beiträge: 245 Registriert: 12.11.2003 Windows 11 - AutoCAD 2023
|
erstellt am: 06. Jul. 2006 21:56 <-- editieren / zitieren --> Unities abgeben:
|
Danillo Mitglied Bauingenieur
Beiträge: 245 Registriert: 12.11.2003 Windows 11 - AutoCAD 2023
|
erstellt am: 07. Jul. 2006 21:02 <-- editieren / zitieren --> Unities abgeben:
Das Programm mit dem vlax-code funktioniert super. Ist es zu neugierig, wenn ich mich für den Code im Detail interessiere. Möchte eigentlich ein Programm schreiben, das mir vorhandene Texte entlang von Linen bzw. Polylinen ausrichtet, und da wäre der Code sehr hilfreich. Auf alle Fälle danke für die Infos. Grüße Daniel Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
CADmium Moderator Maschinenbaukonstrukteur
Beiträge: 13527 Registriert: 30.11.2003 .
|
erstellt am: 07. Jul. 2006 21:43 <-- editieren / zitieren --> Unities abgeben: Nur für Danillo
Zitat: Original erstellt von Danillo: Das Programm mit dem vlax-code funktioniert super. Ist es zu neugierig, wenn ich mich für den Code im Detail interessiere.
Jo ... aber guck dir mal die Hilfe zu vlax-curve-getfirstDeriv an ... die Funktion liefert die erste Ableitung der Kurve am angegebenen Punkt und dies ist gleich dem Anstieg der Tangente in dem Kurvenpunkt. ------------------ - Thomas - "Bei 99% aller Probleme ist die umfassende Beschreibung des Problems bereits mehr als die Hälfte der Lösung desselben." Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Danillo Mitglied Bauingenieur
Beiträge: 245 Registriert: 12.11.2003 Windows 11 - AutoCAD 2023
|
erstellt am: 09. Jul. 2006 14:44 <-- editieren / zitieren --> Unities abgeben:
Ok, habe mir jetzt ein Programm zusammengebastelt, das den beschriebenen Befehl verwendet. Alles klar, funktioniert auch recht gut. Jetzt müsste ich nur noch einen Check einbauen, ob das vom Benutzer ausgewählte Objekt auch eine Kurve ist, auf die man die Funktion anwenden kann (das fehlt auch bei deinem Programm, wenn ich mich nicht täusche). Hast du dazu eine Idee? Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |