;;--------------------------------------------------------------------------* ;; Dateiname: SD_Rohrlaenge.lsp ;; Version : 3.0 ;; Datum : 03.10.2014 ;; Author : BFE ;;--------------------------------------------------------------------------* ;; Dient zur Ermittlung der Länge eines zylindrischen Teils ;;--------------------------------------------------------------------------* (in-package :examples) (use-package :oli) ;;--------------------------------------------------------------------------* (sd-defdialog 'sd-rohrlaenge-ermitteln :dialog-title "Rohrlaenge" :toolbox-button t :variables '( (teil1 :value-type :part :title "Teil" :prompt-text "Rohr angeben" :initial-value nil :modifies nil :after-input (when teil1 (if (equal ausblenden t) ;#funktion wenn wahr (progn ; (display (SD-INQ-OBJ-PATHNAME(sd-inq-curr-part))) (sd-call-cmds (remove_from_vp_drawlist "1" (SD-INQ-OBJ-PATHNAME teil1))) ;teil ausblenden (laenge-ermitteln) );end progn ;#funktion wenn falsch (laenge-ermitteln) );end if );end when teil1 ; (when teil1 ; (laenge-ermitteln)) );;end variable teil1 (Gelaender :value-type :boolean :toggle-type :wide-toggle :title (sd-multi-lang-string "Gelaenderrohr" :german "Gelaenderrohr") :initial-value (SD-SET-VARIABLE-STATUS 'Gelaender :value t) :after-input (if (equal Gelaender t) (progn (SD-SET-VARIABLE-STATUS 'Da :value 27) (SD-SET-VARIABLE-STATUS 'Di :value 22.4) (SD-SET-VARIABLE-STATUS 'Da :enable nil) (SD-SET-VARIABLE-STATUS 'Di :enable nil)) (progn (SD-SET-VARIABLE-STATUS 'Da :enable t) (SD-SET-VARIABLE-STATUS 'Di :enable t))) ) (ausblenden :value-type :boolean :toggle-type :wide-toggle :title (sd-multi-lang-string "hide after selection" :german "Teil ausblenden") :initial-value nil ) (Da :value-type :positive-number :prompt-text "Außendurchmesser in mm eingeben" :title "D aussen [mm]" :initial-value (when Gelaender (progn (SD-SET-VARIABLE-STATUS 'Da :value 27) (SD-SET-VARIABLE-STATUS 'Da :enable nil)) ) ) (Di :value-type :positive-number :prompt-text "Innendurchmesser in mm eingeben" :title "D innen [mm]" :initial-value (when Gelaender (progn (SD-SET-VARIABLE-STATUS 'Di :value 22.4) (SD-SET-VARIABLE-STATUS 'Di :enable nil)) ) ) ) :local-functions '((laenge-ermitteln () (let (volumen laenge flaeche) (setq volumen (sd-call-cmds (get_vol_prop :for_part :part teil1 :volume ) );sd-call-cmds );;setq volume (setf flaeche (/ (* (- (* Da Da) (* Di Di)) 3.1415926536) 4)) (setf laenge (/ volumen flaeche)) (display (format nil " Rohrlaenge = ~,1Fmm " laenge)) (SD-SET-VARIABLE-STATUS 'teil1 :value nil) ) ) ) :ok-action '() )