(in-package :custom) (use-package :OLI) (sd-defdialog 'Dokuebenen_erzeugen_Test :dialog-title "Dokuebenen erzeugen Test" :variables '( ("Dokuerstellung") (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) ("Dokumentationsebenen für Teil") (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 Front_face :ref2 Back_face :docuplane (SD-INQ-CURR-DOCUPLANE) 0,0,0 )) ;;;Dickenbemaßung ) ) :ok-action '(Dokuebenen) )