;********************************************************************************************* ; Dateiname : SD_TEST_5.lsp ; Autor : Stephan Wörz ; Erstellt : 15.02.2012 ; geändert : ;********************************************************************************************* ; Beschreibung : ändern von Bohrungsdurchmessern eines gewählten Teils ; ; Optionen : - ; - ; - ; Bemerkungen : - ; ; Beachten : - ; - ; - ; - ; - ; - ; - ;********************************************************************************************* ; ---------------------------------------------------------------------------------------- ; ä Ì Ä Ø ö Î Ö Ú ü Ï Ü Û ß Þ ° ³ ; ---------------------------------------------------------------------------------------- (in-package :Teo) (use-package :OLI) (sd-hide-console-window) (sd-show-console-window) (setf si::*enter-break-handler* t) (sd-defdialog 'SD_TEST_5 :dialog-title "Bohrungsdurchmesser Ìndern" :toolbox-button nil :variables '( (Bauteil :value-type :part :prompt-text "Teil angeben" :title "Teil" :modifies nil :next-variable 'kante );;baugruppen (Zylinderflaeche :selection (*sd-cylinder-seltype*) ;(*sd-edge-3d-seltype*) :prompt-text "Kreiskante zur definition der zu bearbeitenden Bohrungen angeben" :title "KreisflÌche waehlen" :multiple-items nil :after-input (setf OLD_DIA (* 2(sd-circle-radius (sd-inq-geo-props Zylinderflaeche :dest-space :local )))) );;Zylinderflaeche (OLD_DIA :value-type :display-only :display-units :length );;OLD_DIA (NEW_DIA :value-type :number :prompt-text "neuen Bohrungsdurchmesser angeben" );;NEW_DIA );;variables :ok-action '(ChangeDiameter Bauteil OLD_DIA NEW_DIA) );;sd-defdialog ;;; Funktion zum wählen aller Zylindrischen Flächen im gewählten Teil (defun CylindricalFaces (Teil) (setf AllCylindricalFaces (sd-call-cmds (get_selection :focus_type *sd-cylinder-seltype* :select :in_part Teil );;get_selection );;sd-call-cmds );;setf );;defun CylindricalFaces (defun ChangeDiameter (Teil OLD_DIA NEW_DIA) (setf counter 0) (dolist (FlaecheToProceed (CylindricalFaces Teil)) (if (= OLD_DIA (* 2(sd-circle-radius (sd-inq-geo-props FlaecheToProceed :dest-space :local )))) ;;Then (progn (setf counter (+ counter 1)) (NewChangeRad ; :check_fix :on ; :keep_tangent :yes ; :blend_auto :no ; :update_rels :yes :faces FlaecheToProceed (/ NEW_DIA 2) );;NewChangeRad );;progn ;;else () );;if );;dolist (display (format nil "Gesamtzahl Zylindrischer Flächen : ~A" (length (CylindricalFaces Teil)))) (display (format nil "~A Bohrungen wurden geändert" counter)) );;defun ; (trace ChangeDiameter) ; (trace CylindricalFaces)