; The following macros are not supported ; COMPANY: The University of Texas at Austin ; AUTHOR: Eddie Zihlman Jr. ; CONTACT OPTION: ezihlman@mail.utexas.edu ; 512-471-5638 ; VIDEO MODE: Windows NT ; MONITOR RESOLUTION: 1280x1024 ; MACRO TITLE: Explode_in_W ; DESC: This macro puts "Explode W" in the toolbox ; you enter a distance for the move. ; Picking a "Move by D" to 10D box and ; selecting a part then select additional ; parts to move. Pick "OK" and all parts will ; move by the selected multiple of Distance "D" ; If the move is unacceptable just undo once and ; all parts will move back to their original position. ; MACRO_VERSION: 1.0 ; DATE: June 1999 ; APPLICATION: SolidDesigner 7.0 ; OPSYS: Windows NT ; KEYWORDS: MOVE ; DOCUMENTATION: See DESC above (in-package :EXAMPLES) (use-package :OLI) (sd-defdialog 'explode_in_w :dialog-title "Explode in W" :variables '((EXPL_PART_A :value-type :part :initial-value nil :initial-optional t :title "Move by 1D" :prompt-text "Identify part to be moved") (EXPL_PART_B :value-type :part :initial-value nil :initial-optional t :title "Move by 2D" :prompt-text "Identify part to be moved") (EXPL_PART_C :value-type :part :initial-value nil :initial-optional t :title "Move by 3D" :prompt-text "Identify part to be moved") (EXPL_PART_D :value-type :part :initial-value nil :initial-optional t :title "Move by 4D" :prompt-text "Identify part to be moved") (EXPL_PART_E :value-type :part :initial-value nil :initial-optional t :title "Move by 5D" :prompt-text "Identify part to be moved") (EXPL_PART_F :value-type :part :initial-value nil :initial-optional t :title "Move by 6D" :prompt-text "Identify part to be moved") (EXPL_PART_G :value-type :part :initial-value nil :initial-optional t :title "Move by 7D" :prompt-text "Identify part to be moved") (EXPL_PART_H :value-type :part :initial-value nil :initial-optional t :title "Move by 8D" :prompt-text "Identify part to be moved") (EXPL_PART_I :value-type :part :initial-value nil :initial-optional t :title "Move by 9D" :prompt-text "Identify part to be moved") (EXPL_PART_J :value-type :part :initial-value nil :initial-optional t :title "Move by 10D" :prompt-text "Identify part to be moved") (DISTANCE :value-type :length :title "Distance (D)" :prompt-text "+W distance between parts")) :ok-action '(progn (sd-call-cmds (position_pa :part expl_part_a :translate :dir_len :w distance)) (sd-call-cmds (position_pa :part expl_part_b :translate :dir_len :w (* 2 distance))) (sd-call-cmds (position_pa :part expl_part_c :translate :dir_len :w (* 3 distance))) (sd-call-cmds (position_pa :part expl_part_d :translate :dir_len :w (* 4 distance))) (sd-call-cmds (position_pa :part expl_part_e :translate :dir_len :w (* 5 distance))) (sd-call-cmds (position_pa :part expl_part_f :translate :dir_len :w (* 6 distance))) (sd-call-cmds (position_pa :part expl_part_g :translate :dir_len :w (* 7 distance))) (sd-call-cmds (position_pa :part expl_part_h :translate :dir_len :w (* 8 distance))) (sd-call-cmds (position_pa :part expl_part_i :translate :dir_len :w (* 9 distance))) (sd-call-cmds (position_pa :part expl_part_j :translate :dir_len :w (* 10 distance))) ))