| |
| Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für Autodesk Produkte |
| |
| Request a special discount on NVIDIA RTX 5000 Ada Generation GPU !, eine Pressemitteilung
|
Autor
|
Thema: Abstand Polylinie zu Grundlinie (914 mal gelesen)
|
Robin H. Mitglied Bauzeichner
Beiträge: 59 Registriert: 07.09.2004 Transtec 1300, P2.40GHz, 2GB RAM, Matrox Millennium G550<P>AutoCAD 2004/2006, Soficad, Stratbau, VPHybridCAD
|
erstellt am: 20. Sep. 2006 17:25 <-- editieren / zitieren --> Unities abgeben:
Grüetzi liebe LISP-ler Ich bin auf der suche nach nem LISP das mir die Abstände der Punkte einer Polyline zu einer Grundline misst und dann beschriftet. So könnte ich ein Längenprofil (oder Profile aller Art) schnipp-schnapp beschriften. Kennt jemand ein LISP das dass bereits beherscht? Ich hätte da zwar schon ne idee im Kopf wie das funktionieren könnte, bin aber immernoch anfänger darum scheu ich mich noch vorm Programmieren aber kopieren und anpassen geht schon n bisschen :-) Grüsse Robin ------------------ Am 9.11.2001 starben 20'000 Kinder an Unterernährung und keiner begann nen Krieg... Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
CADmium Moderator Maschinenbaukonstrukteur
Beiträge: 13527 Registriert: 30.11.2003 .
|
erstellt am: 20. Sep. 2006 17:33 <-- editieren / zitieren --> Unities abgeben: Nur für Robin H.
da helfen dir vielleicht der Einsatz der Funktionen distance ,vlax-curve-getClosestPointTo und vlax-curve-getClosestPointToProjection weiter. Für mehr.., stell doch mal ne dwg mit rein. ------------------ - 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 |
Robin H. Mitglied Bauzeichner
Beiträge: 59 Registriert: 07.09.2004 Transtec 1300, P2.40GHz, 2GB RAM, Matrox Millennium G550<P>AutoCAD 2004/2006, Soficad, Stratbau, VPHybridCAD
|
erstellt am: 21. Sep. 2006 14:50 <-- editieren / zitieren --> Unities abgeben:
Hallo Thomas Ja schön, hab ich heut morgen angekukt boooaa bahnhof! Da musst ich mir en bisschen zeit lassen mit antworten :-) Ne wie gesagt meiner einer ist ja anfänger und ich hatte seehr darauf gehofft das sowas schon gibt... Und wenn ich dann eines Tages wenns meine Zeit wiedermal erlaubt darüber zu brüten meld ich mich dann wieder! Ich muss da erstma n paar stunden investieren überlegen wie ich das machen könnte, was ich genau will. Leider stapeln sich schon n paar solcher Projekte in LISP und HP... :-) Gruss Robin
------------------ Am 9.11.2001 starben 20'000 Kinder an Unterernährung und keiner begann nen Krieg... Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Robin H. Mitglied Bauzeichner
Beiträge: 59 Registriert: 07.09.2004 Transtec 1300, P2.40GHz, 2GB RAM, Matrox Millennium G550<P>AutoCAD 2004/2006, Soficad, Stratbau, VPHybridCAD
|
erstellt am: 22. Sep. 2006 13:55 <-- editieren / zitieren --> Unities abgeben:
Hallo So hab mal ne vor vor version erstellt :-) Die hat noch nen fehler den ich nich gebacken krieg: (defun c:überhöhtmessen () (setvar "cmdecho" 0) (setq ü (getreal "\n Überhöhung: ")) (while (setq p1 (getpoint "\n Punkt Wählen: ")) (setq p2 (getpoint "\n Punkt Wählen: ")) (setq d (-(cadr p1)(cadr p2))) (setq a (/ d ü )) (princ \n a) ) ) da stimmt was nicht, ich möchte die ausgabe auf ner neuen Zeile aber so (und anderst) scheint das nicht zu funktioiren. ------------------ Am 9.11.2001 starben 20'000 Kinder an Unterernährung und keiner begann nen Krieg... Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
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: 22. Sep. 2006 14:18 <-- editieren / zitieren --> Unities abgeben: Nur für Robin H.
Hallo Robin H, ohne das ich mich mit Deinem Thema auseinandergesetzt habe: Bei der princ Ausgabe kannst Du nur Strings auswerten, keine Realzahlen. Code:
(defun c:überhöhtmessen () (setvar "cmdecho" 0) (setq ü (getreal "\n Überhöhung: ")) (while (setq p1 (getpoint "\n Punkt Wählen: ")) (setq p2 (getpoint "\n Punkt Wählen: ")) (setq d (-(cadr p1)(cadr p2))) (setq a (/ d ü )) ;princ kann nur einen String auswerten (princ (strcat "\n" (rtos a 2 3)));rtos (real to String mit 3 Nachkommastellen) ;(princ \n a) ) )
------------------ viele Grüße Jörn Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Robin H. Mitglied Bauzeichner
Beiträge: 59 Registriert: 07.09.2004 Transtec 1300, P2.40GHz, 2GB RAM, Matrox Millennium G550<P>AutoCAD 2004/2006, Soficad, Stratbau, VPHybridCAD
|
erstellt am: 22. Sep. 2006 14:29 <-- editieren / zitieren --> Unities abgeben:
|
CADmium Moderator Maschinenbaukonstrukteur
Beiträge: 13527 Registriert: 30.11.2003 .
|
erstellt am: 25. Sep. 2006 14:29 <-- editieren / zitieren --> Unities abgeben: Nur für Robin H.
|
Robin H. Mitglied Bauzeichner
Beiträge: 59 Registriert: 07.09.2004 Transtec 1300, P2.40GHz, 2GB RAM, Matrox Millennium G550<P>AutoCAD 2004/2006, Soficad, Stratbau, VPHybridCAD
|
erstellt am: 28. Sep. 2006 14:56 <-- editieren / zitieren --> Unities abgeben:
Hallo So i hab wiederma was kleines: Hab da mein überhöht messen noch verbessert (ja ja dat mit der polyline kommt denn irgenwann auch noch :-) Ja jedenfalls hab ich da n Text picken und ändern code stibizt und hab den (falsch) angepasst?! Ehrlich gesagt hab ich eben leider keine Ahnung was der code da macht und mit meiner logik komm ich nicht weiter... Und gerade noch ne doofe Frage: Die klammer direkt nach (defun: c:blabla ()<-- wenn ich alle Variablen da reinschreibe dan gelten die nur für dieses defun und "stören" keine anderen defuns hab ich das richtig im Kopf? Das würde dann heissen ich müsste alle Variablen in die Klammer setzen um ein defun in sich sicher abzuschliessen, nicht wahr? Grüsse Robin
---------------------------------------------------------------------- (defun c:überhöhtmessenA () (setvar "cmdecho" 0) (setq ü (getreal "\n Überhöhung: ")) (setq h (getreal "\n Horizont: ")) (while (setq p1 (getpoint "\n Punkt Wählen: ")) (setq p2 (getpoint "\n Punkt Wählen: ")) (setq d (-(cadr p1)(cadr p2))) (setq a (+ h (/ d ü )) ;(princ (strcat "\n" ;(rtos a 2 3))) (setq el (entget (car (entsel "\n vorhandenen Text picken... ")))) (entmod(subst (cons a)(assoc 1 el)el)) (setvar "CMDECHO" ech) (princ) ) ) ---------------------------------------------------------------------- (setq el (entget (car (entsel "\n vorhandenen Text picken... ")))) (entmod(subst (cons (strcat (rtos(abs (* 100 (/ (sin ang) (cos ang))))2 2)"%"))(assoc 1 el)el)) (setvar "CMDECHO" ech) (princ) ) ---------------------------------------------------------------------- ------------------ Kommt die Kraft von dem Stoff oder der Stoff von der Kraft. Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
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: 28. Sep. 2006 16:11 <-- editieren / zitieren --> Unities abgeben: Nur für Robin H.
Hallo Robin, das mit den Variablen ist fast richtig: (defun test ( / x y) => dann sind die Variablen x und y nur lokal für die Funktion "test" definiert (hinter dem Schrägstrich) (defun test (x y / ) => dann sind die Variablen global definiert, und können aus einer anderen aufrufenden Funktion übernommen werden, z.B. (test 10.0 20.0) Es werden die Variableninhalte 10.0 für x und 20.0 für y übergeben. Bei deiner Funktion scheint nur eine schließende Klammer in der Zeile (setq a ... zu fehlen. Außerdem muß die Zeile (setvar "CMDECHO" ech) mit Semikolons auskommentiert oder gelöscht werden, denn die Variable "ech" ist in Deiner Funktion nicht bekannt.
Code:
(defun c:überhöhtmessenA ( / ü h p1 p2 d a h el) (setvar "cmdecho" 0) (setq ü (getreal "\n Überhöhung: ")) (setq h (getreal "\n Horizont: ")) (while (setq p1 (getpoint "\n Punkt Wählen: ")) (setq p2 (getpoint "\n Punkt Wählen: ")) (setq d (-(cadr p1)(cadr p2))) (setq a (+ h (/ d ü ))) ;(princ (strcat "\n" ;(rtos a 2 3))) (setq el (entget (car (entsel "\n vorhandenen Text picken... ")))) (entmod(subst (cons a)(assoc 1 el)el)) ;;(setvar "CMDECHO" ech) (princ) ) )
Der Code ist ungetestet.------------------ viele Grüße Jörn Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Robin H. Mitglied Bauzeichner
Beiträge: 59 Registriert: 07.09.2004 Transtec 1300, P2.40GHz, 2GB RAM, Matrox Millennium G550<P>AutoCAD 2004/2006, Soficad, Stratbau, VPHybridCAD
|
erstellt am: 28. Sep. 2006 17:24 <-- editieren / zitieren --> Unities abgeben:
Hallo Jörn Ja auch war noch nicht alles... aber habs jetzt geschafft!! meine logik hat trotzdem noch gereicht ohnen dass ich weiss was genau der code macht :-) im kopiern bin ich langsam richtig gut Dankeschön und schönen Feierabend! Robin ------------------ Kommt die Kraft von dem Stoff oder der Stoff von der Kraft. Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |