| |
| Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für Autodesk Produkte |
Autor
|
Thema: getvar 'distance (726 mal gelesen)
|
cadplayer Ehrenmitglied CADniker
Beiträge: 1832 Registriert: 28.04.2009 Windows 10 64bit system Autocad Civil3d 2020 ENGLISH Visual Studio 2019 OpenDCL.Runtime.9<P>
|
erstellt am: 28. Mrz. 2013 11:24 <-- editieren / zitieren --> Unities abgeben:
Hallo Kollegen! Ich habe ein kleines Problem mit dem Schnipsel. Ich will erreichen das beim Abgreifen von Strecken am Bildschirm gleich die Strecken zusammenaddiert werden. Sicherlich ist es ein leichtes das mit getpoint&distance. Dennoch wollte ich es einfach mal probieren das mit command durchzuführen. Was ich nicht weiss, bei der Zeile "getvar 'distance" spreche ich da von einer Systemvariable oder wie kann man die auf null stellen. Der Fehler in dem Programm zeigt sich, sobald ich erneut aufrufe, steht immernoch ein Wert drin in der Variable 'distance Code:
(defun c:test (/ z i Läng SLäng) (if (setq i 1 z -1) (while (and (princ (strcat "\nGreife ab Länge [" (rtos i 2 0) "]" )) (if (vl-cmdf "_.dist" pause) (progn (if (null SLäng) (setq SLäng 0)) (if (setq Läng (getvar 'DISTANCE)) (princ (strcat "\nLänge von [" (rtos (1- i) 2 0) "-" (rtos i 2 0) "] " (rtos Läng 2 2))) ) (if (/= SLäng nil) (progn (princ (strcat "\nZwischenSumme: [" (rtos (setq z (1+ z)) 2 0) "] " (rtos (setq SLäng (+ Läng SLäng)) 2 1))) (setq i (1+ i)) ) ) ) ) ) ) ) (princ) )
------------------ Gruss Dirk http://cadplayerlounge.blogspot.se Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
spider_dd Mitglied
Beiträge: 1111 Registriert: 27.11.2003 Win 10Pro Intel(R) Core(TM) i7-7700 NVIDIA Quadro P1000 ACAD, Civil-3D 2018
|
erstellt am: 28. Mrz. 2013 12:33 <-- editieren / zitieren --> Unities abgeben: Nur für cadplayer
|
cadplayer Ehrenmitglied CADniker
Beiträge: 1832 Registriert: 28.04.2009
|
erstellt am: 28. Mrz. 2013 13:39 <-- editieren / zitieren --> Unities abgeben:
|
cadplayer Ehrenmitglied CADniker
Beiträge: 1832 Registriert: 28.04.2009 Windows 10 64bit system Autocad Civil3d 2020 ENGLISH Visual Studio 2019 OpenDCL.Runtime.9<P>
|
erstellt am: 28. Mrz. 2013 14:10 <-- editieren / zitieren --> Unities abgeben:
Fällt mir bald schwer mich deut(sch)lig auszudrücken. Keine weiteren Fragen. Code:
(defun c:DistDudel (/ z i Läng SLäng) (vl-cmdf "_.dist" "0,0" "0,0") (if (setq i 1 z 0) (while (and (setq z (+ z 0.5)) (princ (strcat "\nGreife [" (rtos z 2 0) "] Länge ab " )) (if (vl-cmdf "_.dist" pause) (progn (if (null SLäng) (setq SLäng 0)) (if (setq Läng (getvar 'DISTANCE)) (progn (princ "\n------------------------------------------------------------------") (princ (strcat "\nLänge von [" (rtos (1- i) 2 0) "-" (rtos i 2 0) "] : " (rtos Läng 2 2))) ) ) (if (/= SLäng nil) (progn (princ (strcat "\nZwischenSumme nach [" (rtos i 2 0) "] : " (rtos (setq SLäng (+ Läng SLäng)) 2 1))) (setq i (1+ i)) ) ) ) ) ) ) ) (princ) )
------------------ Gruss Dirk http://cadplayerlounge.blogspot.se [Diese Nachricht wurde von cadplayer am 28. Mrz. 2013 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
cadplayer Ehrenmitglied CADniker
Beiträge: 1832 Registriert: 28.04.2009
|
erstellt am: 28. Mrz. 2013 16:03 <-- editieren / zitieren --> Unities abgeben:
Ich wollte jetzt mal spasseshalber gleiches mit 'AREA variable probieren Das funktioniert so aber nicht, sieht einer den Haken ? Code:
(defun c:xx (/ z Fläch SFläch) (if (null SFläch) (setq SFläch 0)) (vl-cmdf "_.AREA" "0,0" "0.001,0.001" "0,0.001" "T") (if (setq z 0) (while (and (princ (strcat "\nGreife Fläche ab " )) (vl-cmdf "_.AREA" pause) ) (if (setq Fläch (getvar 'AREA)) (princ (strcat "\nFläche [" (rtos z 2 0) "] ist :" (rtos Fläch 2 2) " m²")) ) (if (setq SFläch (+ Fläch SFläch)) (princ (strcat "\nFlächenSumme ist : " (rtos SFläch 2 1) " m²")) ) ;;; (if (null (getkword)) ;;; (vl-cmdf "_.AREA" "0,0" "0.001,0.001" "0,0.001" "T") ;;; ) ) ) (princ) )
Das Problem ist, die abgegriffenen Flächen werden unlogisch zusammenaddiert, vor allem warum ändert sich beim Abgreifen der folgenden Fläche immer die Flächensumme, das sollte doch erst passieren, wenn der Flächenzug abgegriffen wurde.[Diese Nachricht wurde von cadplayer am 28. Mrz. 2013 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |