(use-package :OLI) (use-package :TS-STRINGS) (use-package :TS-CATALOG-LADEN) (use-package :TS-CATALOG-MODUL) (in-package :custom) (export '(Gewindestange)) (sd-defdialog 'GewSt_TEST :Dialog-title "GewSt" :Dialog-control :sequential :toolbox-button T :variables '( (Name :value-type :string) (Gewindegroesse :value-type :string) (Laenge :value-type :string) ) :Ok-action '(Name Gewindegroesse Laenge) );;sd-defdialog (defun gewindestange (Name Gewindegroesse Laenge) ;;Zylinder erstellen (sd-call-cmds (create_part :name Name :model_name Name) (create_workplane :new :name "Gewindestangenebene") (CIRCLE :CEN_RAD 0,0 (* 0.5 (parse-integer Gewindegroesse))) (extrude :auto_direction :yes :keep_wp :no :sel_part (sd-inq-curr-part) :type :DISTANCE_TYPE :Distance (parse-integer Laenge) :Direction :+W) ) ;;Zylinderflaeche bestimmen (let (fl fll) (setf fll (sd-call-cmds (get_selection :focus_type *sd-cylinder-seltype* :allow_face_part :select :in_part (sd-inq-curr-part) ) ) );;setf ;;Gewinde anlegen ;Kerndurchmesser und Gewindesteigtung nach DIN 13-1 abhängig vom Durchmesser anlegen (setq Kerndurchmesser (- (parse-integer Gewindegroesse) 0.5)) (if (= (parse-integer Gewindegroesse) 8) (setq Kerndurchmesser 6.5)) (if (= (parse-integer Gewindegroesse) 10) (setq Kerndurchmesser 8.2)) (if (= (parse-integer Gewindegroesse) 12) (setq Kerndurchmesser 9.9)) (if (= (parse-integer Gewindegroesse) 16) (setq Kerndurchmesser 13.5)) (if (= (parse-integer Gewindegroesse) 20) (setq Kerndurchmesser 16.9)) (if (= (parse-integer Gewindegroesse) 24) (setq Kerndurchmesser 20.3)) (if (= (parse-integer Gewindegroesse) 30) (setq Kerndurchmesser 25.7)) (if (= (parse-integer Gewindegroesse) 36) (setq Kerndurchmesser 31.1)) (if (= (parse-integer Gewindegroesse) 42) (setq Kerndurchmesser 36.5)) (if (= (parse-integer Gewindegroesse) 48) (setq Kerndurchmesser 41.9)) (dolist (fl fll) (sd-define-thread fl :nominal-diameter (parse-integer Gewindegroesse) :core-diameter Kerndurchmesser :Pitch 3 :thread-type :OUTER :thread-unit :METRIC :thread-color (sd-color-to-rgb 16711680) :thread-hand :RIGHT-HAND :thread-profile :M :include-chamfer T :thread-direction :CYL-AXIS :thread-name :GEW_NAME );;sd-define-thread );;dolist );;let ;;Kanten fuer Fase bestimmen (let (Kante Kant) (setf Kant (sd-call-cmds (get_selection :focus_type *sd-edge-3d-seltype* :select :in_part (sd-inq-curr-part) ) ) );;setf ;;Fase anlegen (dolist (Kante Kant) (chamfer Kante :DIST_ANGLE :new_angle_dist (* 0.5 (-(parse-integer Gewindegroesse) Kerndurchmesser)) 45 :check) );;dolist );;let );;defun