;********************************************************************************************* ; Dateiname : SD_TEST_5.lsp ; Autor : Stephan Wörz ; Erstellt : 02.12.2020 ; geändert : ;********************************************************************************************* ; Beschreibung : - Infos ; - Codebaustein zum Testen! ; Optionen : - ; - ; - ; Bemerkungen : - ; ; Beachten : - ; - ;********************************************************************************************* ; ---------------------------------------------------------------------------------------- ; ä Ì Ì Ø ö Î Ö Ú ü Ï Ï Û ß Þ ° ³ ; ---------------------------------------------------------------------------------------- ; (Display (format nil "Name~20T: Stephan") ~20T >> Setzt Cursor in Spalte 20!! ; (Display (format nil "Name~%: Stephan") ~% >> Erzeugt Zeilenumbruch!!!!!! (in-package :SCHILLER) (use-package :oli) (sd-hide-console-window) (sd-show-console-window) ;(setf si::*enter-break-handler* t) (SETQ OffSet 0.2) (SETQ Dicke nil) ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; (sd-defdialog 'SD_TEST_5 :dialog-title "SD_TEST_5" :toolbox-button T :variables '( (Teil :value-type :part :title "Teil" :next-variable 'Startpunkt );;Teil (AEbene :value-type :wp :title "Arbeitsebene" :initial-value (sd-inq-curr-wp) :next-variable 'Startpunkt );;AEbene (Startpunkt :value-type :point-2d :title "Startpunkt" :next-variable 'Endpunkt );Startpunkt (Endpunkt :value-type :point-2d :title "Endpunkt" :after-input (progn (doit) );;progn ;:next-varable 'Startpunkt ;;GEHT NICHT??????? );Endpunkt ("Parameter") (Breite :value-type :length :title "Schlitzbreite" :proposals (4.5 5.5 6.6 9 12 14) :initial-value 6.6 );Breite (Laenge :value-type :length :title "Schlitzlaenge" :proposals (4 5 6 8 10 12 15) :initial-value 6 );Laenge );variables :ok-action '(doit) :local-functions '( (doit () (let (StartP-X StartP-Y EndP-X EndP-Y MittelP) (setq StartP-X (gpnt2d_x Startpunkt) ;auslesen der X/Y Werte der Punkte StartP-Y (gpnt2d_y Startpunkt) ;auslesen der X/Y Werte der Punkte EndP-X (gpnt2d_x Endpunkt ) ;auslesen der X/Y Werte der Punkte EndP-Y (gpnt2d_y Endpunkt ) ;auslesen der X/Y Werte der Punkte MittelP (make-gpnt2d :x (/ (+ StartP-X EndP-X) 2) :y (/ (+ StartP-Y EndP-Y) 2)) );;setq (pprint (format nil"Teil : ~A" (sd-inq-obj-pathname Teil))) (sd-call-cmds (2dCopilot :slot_mode :real_geometry Startpunkt Endpunkt Breite)) (sd-call-cmds (2dCopilot :circle_mode :real_geometry MittelP (+ Breite OffSet))) (if (sd-inq-part-sheet-metal-material Teil) ;;fragt das Blechmaterial ab - wenn kein Blech dann NIL ;;then - also wenn es ein Teil mit Blechmaterial ist (progn (Display "1") (setq Dicke (first (last (sd-inq-part-sheet-metal-material Teil)))) (sd-call-cmds (pull :linear_pull :sel_part Teil :selection_focus_profiles :distance Dicke :wp AEbene :operation :REMOVE_MATERIAL :direction :BOTH_SIDES :keep_wp :no );;pull );;sd-call-cmds );;progn ;Else - wenn kein Blechmaterial gefunden wurde >> Stanzen (progn (Display "2") (sd-call-cmds (punch_stamp :punch :wp AEbene :parts Teil :keep_wp :no );;punch );;sd-call-cmds );;progn ):if );let );doit );local );SD_TEST_5