请注意,我使用示例dwg作为我的指南,因为我不做电缆桥架。这是第三步。我很感激我可能使用了错误的起点,但这是可以解决的。也可以添加与托盘相同的角度。
我将最后做前端dcl。
- ; by Alan H Aug 2017
- ; very simple cable routine only uses 1 width but dialog has two so code can be changed easily
- (defun cabtrayinput ( / )
- (setq dcl_id (load_dialog "C:\\acadtemp\\cabtray.dcl")) ; change directory to user directory
- (if (not (new_dialog "ddcabtray" dcl_id))
- (exit))
- (mode_tile "key1" 3)
- (set_tile "key1" (setq val1 "200"))
- (action_tile "key1" "(setq val1 $value)")
- (mode_tile "key2" 3)
- (set_tile "key2" (setq val2 "200"))
- (action_tile "key2" "(setq val2 $value)")
- (mode_tile "key3" 3)
- (set_tile "key3" (setq val3 "75"))
- (action_tile "key3" "(setq val3 $value)")
- (start_dialog)
- (done_dialog)
- (unload_dialog dcl_id)
- )
- (defun c:ctray ( / pt1 pt2 pt3 pt4 pt5 pt6 w rad oldsnap oldang)
- (setq oldsnap (getvar "osmode"))
- (setq oldang (getvar "angdir"))
- (setvar "angdir" 0)
- (setq pt1 (getpoint "\nPick lower left corner "))
- (setq oldsnap (getvar "osmode"))
- (setvar "osmode" 0)
- (cabtrayinput)
- (setq w (Atof val1))
- (setq w2 (Atof val2))
- (setq rad (Atof val3))
- (setq pt2 (polar pt1 0.0 (+ (* 2.0 rad) w)))
- (setq pt3 (polar pt2 (/ pi 2.0) w))
- (setq pt4 (polar pt3 (/ pi 2.0) rad))
- (setq pt5 (polar pt4 pi (+ w rad)))
- (setq pt6 (polar pt5 pi rad))
- (command "pLINE" pt1 "w" 0.0 0.0 pt2 pt3 "arc" pt3 "Ce" pt4 "angle" -90 "L" pt5 "arc" pt5 "Ce" pt6 "angle" -90 "L" "Close" )
- (command "-hatch" "S" "last" "" "P" "HEX" 15 0 "")
- (setvar "osmode" oldsnap)
- (setvar "angdir" oldang)
- (princ)
- )
- (defun c:chtray ( / pt1 pt2 pt3 pt4 pt5 pt6 pt7 pt8 pt9 pt10 w cham oldsnap oldang)
- (setq pt1 (getpoint "Pick lower left corner "))
- (setq oldsnap (getvar "osmode"))
- (setq oldang (getvar "angdir"))
- (setvar "angdir" 0)
- (setvar "osmode" 0)
- (cabtrayinput)
- (setq w (Atof val1))
- (setq w2 (Atof val2))
- (setq cham (Atof val3))
- (setq pt2 (polar pt1 (/ pi 2.0) w))
- (setq pt3 (polar pt2 0.0 cham))
- (setq pt4 (polar pt3 (/ pi 4.0) 150.0 ))
- (setq pt5 (polar pt4 (/ pi 2.0) cham))
- (setq pt6 (polar pt5 0.0 w))
- (setq pt7 (polar pt6 (* pi 1.5) cham))
- (setq pt8 (polar pt7 (* pi 1.75) 150.0))
- (setq pt9 (polar pt8 0.0 cham))
- (setq pt10 (polar pt9 (* pi 1.5) w))
- (command "PLINE" pt1 "w" 0.0 0.0 pt2 pt3 pt4 pt5 pt6 pt7 pt8 pt9 pt10 "Close")
- (command "-hatch" "S" "last" "" "P" "HEX" 15 0 "")
- (setvar "osmode" oldsnap)
- (setvar "angdir" oldang)
- (princ)
- )
将此另存为cabtray。dcl并将代码编辑到保存位置。
- ddcabtray : dialog {
- : column {
- : edit_box {
- key = "key1";
- label = "Enter tray width 1";
- edit_width = 5;
- edit_limit = 4;
- is_enabled = true ;
- }
- spacer_1 ;
- : edit_box {
- key = "key2";
- label = "Enter tray width 2 ";
- edit_width = 5;
- edit_limit = 4;
- is_enabled = true ;
- }
- spacer_1 ;
- : edit_box {
- key = "key3";
- label = "Offset - Radius";
- edit_width = 5;
- edit_limit = 4;
- is_enabled = true ;
- }
- }
- spacer_1 ;
- ok_only;}
|