(in-package :custom) (use-package :OLI) (sd-defdialog 'pw-problem :dialog-title "sd-inq-edge-edge-int-pnts" :toolbox-button t :variables '( (NOCKE :value-type :edge-2d :multiple-items nil :title "Nockenkreis" :check-function #'(lambda (new-value) (if (sd-circle-p (sd-inq-geo-props new-value)) :ok (values :error "2D-Kreis erforderlich"))) :after-input (when (not SCHEIBE) 'SCHEIBE) ) (SCHEIBE :value-type :edge-2d :multiple-items t :title "Scheibenkontur" ) (WP :title "AE+Elem erstellen" :toggle-type :grouped-toggle :initial-enable t :push-action (pw-problem-AE-go) ) (BEGINN :title "Ausführen" :toggle-type :grouped-toggle :initial-enable t :push-action (pw-problem-go) ) );end variables :local-functions '( (pw-problem-go () (let (RET S S_ELEM) (dolist (ELEM SCHEIBE) (display (format nil "~%Elemente:~%Nocke: ~a~%~%Elem: ~a" NOCKE ELEM)) (setf RET (sd-inq-edge-edge-int-pts NOCKE ELEM :dest-space :local)) ;Frage Schnittpunkte ab (when RET (display (format nil "~%Schnittpunkte:~%~a" RET)) (setf ABST (sd-call-cmds (measure_dist :edge_edge ELEM SCHEIBE))) (display (format nil "~%measure_dist :edge_edge: ~a~%~%Schnittpunktkontrolle:" ABST)) (dolist (S RET) (setf S_ELEM (sd-call-cmds (get_selection :focus_type *sd-edge-2d-seltype* :curr_wp_only :select :edge_2d (sd-gpnt3d-to-2d S)))) (setf S_ELEM_DIST (sd-call-cmds (measure_dist :point_edge S ELEM))) (display (format nil "~%measure_dist :point_edge: ~a" S_ELEM_DIST)) (display (format nil "~%Selektierte Elemente: ~d~%~a" (length S_ELEM) S_ELEM)) ;selektierte Anzahl+Elemente anzeigen ) ) ) ) ) (pw-problem-AE-go () (sd-call-cmds (progn (create_workplane :new ) (circle :cen_rad (make-gpnt2d :x -8.39039 :y 8.561727) 2)(circle :cen_rad (make-gpnt2d :x -4.202315 :y 6.393149) 2) (arc :cen_rad_ang (make-gpnt2d :x -2.63523 :y 5.653569) 6 (sd-deg-to-rad 195.051995) (sd-deg-to-rad 230.858998))(arc :cen_rad_ang (make-gpnt2d :x 0 :y 0) 9.5 (sd-deg-to-rad 102.488805) (sd-deg-to-rad 152)) )) ) ) :ok-action '() )