#| Dies ist ein Dialog zum Erstellen von Kuehlbohrungen mit frei definierbarer Laenge und Gewindetiefe incl. Gewindebohrung mit oder ohne Senkung. Am Ende wird eine Spitze mit frei definierbarem Spitzenwinkel angebracht. Diesen Bolzen kann man dann anschließend von einem Koerper subtrahieren um z.B. eine Bohrung zu erstellen Es muß eine AE auf einer Flaeche liegen bzw. ueberhaupt eine AE vorhanden sein. Last modified : 15.09.2004 Category : Machining Author : Michael Mueller (michael.mueller@ptb.de) Company : PTB Braunschweig Filename : Kuehlbohrungen.lsp Revision : 1.2 (neu, mit Auswahl der Durchmesser ueber Pulldown-Menue) SD Revision : 11.6 Platform : HP-UX Video Mode : Native Monitor Resolution: 1280x1024 |# (use-package :OLI) ;; Dialog (sd-defdialog 'Kuehlbohrungen :dialog-title "Kuehlbohrungen" :variables '( (AE :value-type :wp :title "AE" :prompt-text "AE angeben.") (Mittelpunkt :value-type :point-2d :title "Punkt" :prompt-text "Punkt auswaehlen") (Bohrungsdurchmesser :title "Bohr-Drms." :initial-value 6 :range (6 8 9 10 12) :after-input (case Bohrungsdurchmesser (6 (sd-set-range 'Gewinde '(:M8x0.75 :M10x1 :M14x1.5 :M16x1.5 :M24x1.5 :1/8Zoll :1/4Zoll :3/8Zoll :1/2Zoll))) (8 (sd-set-range 'Gewinde '(:M10x1 :M14x1.5 :M16x1.5 :M24x1.5 :1/8Zoll :1/4Zoll :3/8Zoll :1/2Zoll))) (9 (sd-set-range 'Gewinde '(:M14x1.5 :M16x1.5 :M24x1.5 :1/8Zoll :1/4Zoll :3/8Zoll :1/2Zoll))) (10 (sd-set-range 'Gewinde '(:M14x1.5 :M16x1.5 :M24x1.5 :1/4Zoll :3/8Zoll :1/2Zoll))) (12 (sd-set-range 'Gewinde '(:M14x1.5 :M16x1.5 :M24x1.5 :3/8Zoll :1/2Zoll))) ) ) (Kern_dm :value-type :length :toggle-type :invisible ;:initial-value 0 ) (Gewinde :title "Gew-Drms" :range (Gewinde) :prompt-text "Gewindedurchmesser auswaehlen") (Gewindetiefe :value-type :length :title "Gew-Tiefe" :prompt-text "Gewindetiefe angeben") (Bohrungstiefe :value-type :length :title "Bohr-Tiefe" :prompt-text "Bohrungstiefe angeben (ohne Spitze)") (Spitzenwinkel :value-type :length :title "Spitz-Wink." :initial-value 118 :prompt-text "Geben Sie den Spitzenwinkel ein. Defaultwert sind 118 Grad") (Fase ; Button fuer mit/ohne Fase :value-type :boolean :toggle-type :wide-toggle :title "Fase" :initial-value t ) (Naechste :push-action (los-gehts)) ) ; end variables :ok-action '(los-gehts) :local-functions '( (los-gehts () (sd-call-cmds (CREATE_WORKPLANE ; Vorhandene AE kopieren :copy :name "Test" :source AE) ) ;end call (sd-call-cmds (slide_wp_origin (Sd-Inq-Curr-Wp) Mittelpunkt) ;Ursprung der kopierten AE auf den angeklickten Punkt verschieben ) ; end call (cond ;Fallunterscheidung: Wenn negative Gewindetiefen-Werte eingegeben werden, ((> Gewindetiefe 0) (setq Drehwinkel (* 0.5 pi))) ;wird die kopierte AE in der anderen Richtung gedreht, um einen Bolzen ((< Gewindetiefe 0) (setq Drehwinkel (- (* 0.5 pi)))) ;in der entgegengesetzten Richtung zu erzeugen ) ;end cond (sd-call-cmds (position_wp (sd-inq-curr-wp) ;Drehen der kopierten AE :rotate :axis :v :rotation_angle Drehwinkel :done ) ; end position ) ;end call (progn (case Gewinde (:M8x0.75 (setf Kern_dm 7.19)) (:M10x1 (setf Kern_dm 8.92)) (:M14x1.5 (setf Kern_dm 12.38)) (:M16x1.5 (setf Kern_dm 14.38)) (:M24x1.5 (setf Kern_dm 22.38)) (:1/8Zoll (setf Kern_dm 8.57)) (:1/4Zoll (setf Kern_dm 11.45)) (:3/8Zoll (setf Kern_dm 14.95)) (:1/2Zoll (setf Kern_dm 18.63)) );;case ) ;end progn (if Fase (Progn (sd-call-cmds (GEOMETRY_MODE :REAL) ;aendert die Geometrieart auf "Geometrie" falls das nicht eingestellt ist ) ;end call (sd-call-cmds (polygon ;Polygon zeichnen, aus dem spaeter der Bolzen gedeht wird (gpnt2d 0 0) ;Punkt 0/0 (gpnt2d 0 (* 1.05(/ Kern_dm 2.0))) ;Fase aussen (gpnt2d (- (* 1.05(/ Kern_dm 2.0)) (/ Kern_dm 2.0)) (/ Kern_dm 2.0)) ;1. Pkt. Gewindekerndrms (gpnt2d (ABS Gewindetiefe) (/ Kern_dm 2.0)) ;2. Pkt. ende Gewinde (gpnt2d (ABS Gewindetiefe) (/ Bohrungsdurchmesser 2.0)) (gpnt2d (ABS (+ Gewindetiefe Bohrungstiefe)) (/ Bohrungsdurchmesser 2.0)) (gpnt2d (+ (ABS (+ Gewindetiefe Bohrungstiefe)) (/ (* Bohrungsdurchmesser (tan (/ (* (- 90 (/ Spitzenwinkel 2)) pi) 180)))2)) 0) :close) ; Polygon schliessen ) ;end call ) ; end Progn fuer mit Fase (Progn (sd-call-cmds (GEOMETRY_MODE :REAL) ;aendert die Geometrieart auf "Geometrie" falls das nicht eingestellt ist ) ;end call (sd-call-cmds (polygon ;Polygon zeichnen, aus dem spaeter der Bolzen gedeht wird (gpnt2d 0 0) ;Punkt 0/0 (gpnt2d 0 (/ Kern_dm 2.0)) ;1. Pkt. Gewindekerndrms (gpnt2d (ABS Gewindetiefe) (/ Kern_dm 2.0)) ;2. Pkt. ende Gewinde (gpnt2d (ABS Gewindetiefe) (/ Bohrungsdurchmesser 2.0)) (gpnt2d (ABS (+ Gewindetiefe Bohrungstiefe)) (/ Bohrungsdurchmesser 2.0)) (gpnt2d (+ (ABS (+ Gewindetiefe Bohrungstiefe)) (/ (* Bohrungsdurchmesser (tan (/ (* (- 90 (/ Spitzenwinkel 2)) pi) 180)))2)) 0) :close) ; Polygon schliessen ) ;end call ) ;end Progn fuer ohne Fase ); end von if (sd-call-cmds (turn :part "/Stift" ;Bolzen erzeugen :wp "/Test" :axis :u :rotation_angle (* 2 pi) :keep_profile :no :keep_wp :no) ) ;end call (sd-call-cmds (current_wp AE) ;Setzt als aktuelle AE wieder die urspruengliche ) ;end call ) ;end los-gehts ) ;end local-functions ) ;end def dialog