(in-package :custom) (use-package :OLI) ;;;;Dokuebenen erzeugen ;;;;Autor: uli1601 (sd-defdialog 'Dokuebenen_erzeugen :dialog-title "Dokuebenen erzeugen" :variables '( (Front_face :value-type :face :modifies :contents :title "Grundflaeche" :prompt-text "Vordere Grundflaeche des Teils anwaehlen" :check-function #'(lambda (face) (if (sd-plane-p (sd-inq-geo-props face :dest-space :global)) :ok (values :error "Nur ebene Flaechen sind in der Auswahl erlaubt")) ) :after-input (setf Dir_front (list (sd-vec-scale (sd-plane-normal (sd-inq-geo-props Front_face :dest-space :global)) -1) (sd-plane-origin (sd-inq-geo-props Front_face :dest-space :global))) ) :next-variable 'Dir_Up) ("") (Dir_Front :value-type :measure-direction :title "Richtg Vorn") (Dir_Up :value-type :measure-direction :title "Richtg. Oben") ) :local-functions '( (Dokuebenen () (dolist (facevalue (sd-call-cmds (get_selection :focus_type *sd-face-seltype* :select :selected_part (SD-INQ-PARENT-OBJ Front_face) :all_3d))) (when (equal (sd-plane-normal (sd-inq-geo-props facevalue :dest-space :global)) (first Dir_Front)) (setf Back_face facevalue))) ;;;Rückseite bestimmen (sd-call-cmds (doc3d_create_docuplane :new_docuplane_set :owner (SD-INQ-PARENT-OBJ Front_face) :dpset_name "DESatz1" :front_dir Dir_front :up_dir Dir_Up :accept :front :next :left :next )) ;;;;Docuebenen generieren (sd-call-cmds (DOC3D_CREATE_DISTANCE :A3D_DIM :ref1 :face_3d Front_face (sd-get-pnt-on-face Front_Face :dest-space :global) :ref2 :face_3d Back_face (sd-get-pnt-on-face Back_Face :dest-space :global) :docuplane (SD-INQ-CURR-DOCUPLANE) (sd-inq-wp-origin (SD-INQ-CURR-DOCUPLANE)) )) ;;;Dickenbemaßung ) ) :ok-action '(Dokuebenen) )