修改了dcsmb-z.LSP文件后,经调试没有问题了!!
;;;***********************************
;;; 主 程 序 --By 冯超 2008.12
;;;***********************************
(defun C:DCSMB-z()
(init_jx)
(dcldrv_jx);加载对话框.
(revert_jx)
);end_defun
(defun init_jx()
(vl-load-com)
(setq os (getvar "osmode"))
(setvar "osmode" 0)
(setvar "cmdecho" 0)
)
;;;******************************
;;; 1. 主对话框加载/初始化 函数
;;;******************************
(defun dcldrv_jx(/ aa ss xhlist f1 p1 p2 p3 p4 p5 p6 p7 p8 p9 p10
p11 p12 p13 p14 p15 p16 p17 p18 p19 p20 p21
p22 p23 p24 p25 p26 p27 p28 p29 p30 p31 p32 p33
p34 p35 p36 p37 p38 p39 p40 p41 p42 p43 p44 p45
p46 p47 p48 p49 p50 ikey inam x y Alis Blis Hlis
Dlis ddlis Clis Elis Llis B1lis hhlis RlisKlis listlist pzong)
(setq aa (load_dialog "d:\\参数绘图\\dcsmb-z\\dcsmb-z.DCL"))
(setq jieshou "accept")
;为下拉列表框显示做数据准备
(setq xhlist(list " 60x50x25"
" 80x60x25"
" 80x60x30"
"100x80x30"
"100x80x35"
"120x80x30"
"120x80x35"
"140x80x30"
"140x80x35"
"170x80x30"
"170x80x35"
"120x100x30"
"120x100x35"
"140x100x30"
"140x100x35"
"170x100x35"
"170x100x40"
"200x100x35"
"200x100x40"
"140x120x35"
"140x120x40"
"170x120x35"
"170x120x40"
"200x120x35"
"200x120x40"
"250x120x35"
"250x120x40"
"170x140x35"
"170x140x40"
"200x140x40"
"200x140x45"
"250x140x40"
"250x140x45"
"300x140x40"
"300x140x45"
"200x170x40"
"200x170x45"
"250x170x40"
"250x170x45"
"300x200x45"
"300x200x50"
"350x200x45"
"350x200x50"
"350x250x45"
"350x250x50"
"400x300x55"
))
;从外挂数据文件读入参数
(setq f1(open "d:\\参数绘图\\dcsmb-z\\dcsmb-z.dat" "r"))
(setq p1(read-line f1))
(setq p2(read-line f1))
(setq p3(read-line f1))
(setq p4(read-line f1))
(setq p5(read-line f1))
(setq p6(read-line f1))
(setq p7(read-line f1))
(setq p8(read-line f1))
(setq p9(read-line f1))
(setq p10 (read-line f1))
(setq p11 (read-line f1))
(setq p12 (read-line f1))
(setq p13 (read-line f1))
(setq p14 (read-line f1))
(setq p15 (read-line f1))
(setq p16 (read-line f1))
(setq p17 (read-line f1))
(setq p18 (read-line f1))
(setq p19 (read-line f1))
(setq p20 (read-line f1))
(setq p21 (read-line f1))
(setq p22 (read-line f1))
(setq p23 (read-line f1))
(setq p24 (read-line f1))
(setq p25 (read-line f1))
(setq p26 (read-line f1))
(setq p27 (read-line f1))
(setq p28 (read-line f1))
(setq p29 (read-line f1))
(setq p30 (read-line f1))
(setq p31 (read-line f1))
(setq p32 (read-line f1))
(setq p33 (read-line f1))
(setq p34 (read-line f1))
(setq p35 (read-line f1))
(setq p36 (read-line f1))
(setq p37 (read-line f1))
(setq p38 (read-line f1))
(setq p39 (read-line f1))
(setq p40 (read-line f1))
(setq p41 (read-line f1))
(setq p42 (read-line f1))
(setq p43 (read-line f1))
(setq p44 (read-line f1))
(setq p45 (read-line f1))
(setq p46 (read-line f1))
(setq p47 (read-line f1))
(setq p48 (read-line f1))
(setq p49 (read-line f1))
(setq p50 (read-line f1))
(close f1)
;对话框初始化定义
(setq ss 2)
(while (>= ss 2)
(if (not (new_dialog "dcsmb" aa)) (exit))
;图像框初始显示
(imgfa_jx "shitu" "d:\\参数绘图\\dcsmb-z\\dcsmb-z-f.sld")
;加载下拉列表框显示
(set_tile "xinghao" "0")
(end_list)
(start_list "xinghao")
(mapcar 'add_list xhlist)
(end_list)
;定义单选开关;复选开关;下拉列表框的响应
(mode_tile jieshou 1)
(action_tile "main" "(setq stdraw 1)(imgfa_jx\"shitu\"\"inam\")")
(action_tile "assi" "(setq stdraw 2)(imgfa_jx\"shitu\"\"inam\")")
(action_tile "standa" "(demand_jx)")
(action_tile "xinghao" "(display_jx)")
(action_tile "blockyn" "(setq blockyn $value)")
(action_tile "accept" "(done_dialog 1)")
(setq ss (start_dialog))
(if (= ss 1)(draw_jx)(revert_jx))
)
(unload_dialog aa)
)
;选择显示幻灯片******************************************
(defun imgfa_jx(ikey inam)
(setq ikey "shitu")
(if(= stdraw 1)(setq inam "d:\\参数绘图\\dcsmb-z\\dcsmb-z-z.sld")
(setq inam "d:\\参数绘图\\dcsmb-z\\dcsmb-z-f.sld"))
(start_image "shitu")
(setq x (dimx_tile "shitu") y (dimy_tile "shitu"))
(fill_image 0 0 x y 0)
(slide_image 0 0 x y inam)
(end_image)
)
;显示选择的型号所对应的主要参数**************************
(defun display_jx()
(setqxh (get_tile "xinghao"))
(cond ((= xh "0") (setq shuju1p1))
((= xh "1") (setq shuju1p2))
((= xh "2") (setq shuju1p3))
((= xh "3") (setq shuju1p4))
((= xh "4") (setq shuju1p5))
((= xh "5") (setq shuju1p6))
((= xh "6") (setq shuju1p7))
((= xh "7") (setq shuju1p8))
((= xh "8") (setq shuju1p9))
((= xh "9") (setq shuju1p10))
((= xh "10") (setq shuju1p11))
((= xh "11") (setq shuju1p12))
((= xh "12") (setq shuju1p13))
((= xh "13") (setq shuju1p14))
((= xh "14") (setq shuju1p15))
((= xh "15") (setq shuju1p16))
((= xh "16") (setq shuju1p17))
((= xh "17") (setq shuju1p18))
((= xh "18") (setq shuju1p19))
((= xh "19") (setq shuju1p20))
((= xh "20") (setq shuju1p21))
((= xh "21") (setq shuju1p22))
((= xh "22") (setq shuju1p23))
((= xh "23") (setq shuju1p24))
((= xh "24") (setq shuju1p25))
((= xh "25") (setq shuju1p26))
((= xh "26") (setq shuju1p27))
((= xh "27") (setq shuju1p28))
((= xh "28") (setq shuju1p29))
((= xh "29") (setq shuju1p30))
((= xh "30") (setq shuju1p31))
((= xh "31") (setq shuju1p32))
((= xh "32") (setq shuju1p33))
((= xh "33") (setq shuju1p34))
((= xh "34") (setq shuju1p35))
((= xh "35") (setq shuju1p36))
((= xh "36") (setq shuju1p37))
((= xh "37") (setq shuju1p38))
((= xh "38") (setq shuju1p39))
((= xh "39") (setq shuju1p40))
((= xh "40") (setq shuju1p41))
((= xh "41") (setq shuju1p42))
((= xh "42") (setq shuju1p43))
((= xh "43") (setq shuju1p44))
((= xh "44") (setq shuju1p45))
((= xh "45") (setq shuju1p46)))
(setq Llis(strcat "L " (substr shuju11 3))
Blis(strcat "B " (substr shuju17 3))
Hlis(strcat "H " (substr shuju1 14 2))
hhlis(strcat "h " (substr shuju1 19 2))
L1lis (strcat "L1 " (substr shuju1 24 3))
B1lis(strcat "B1 " (substr shuju1 29 3))
Clis(strcat "C " (substr shuju1 35 3))
Rlis(strcat "R " (substr shuju1 42 2))
R11lis (strcat "R1 " (substr shuju1 48 2))
lllis (strcat "l " (substr shuju1 52 3))
dlis(strcat "d "(substr shuju1 59 2))
d1lis(strcat"d1 " (substr shuju1 64 2))
)
(setq listlist (list Llis Blis Hlis hhlis L1lis B1lis Clis dlis d1lis ))
(start_list "paralist")
(mapcar 'add_list listlist)
(end_list)
(mode_tile jieshou 0)
)
;查询详细参数子对话框**********************************
(defun demand_jx()
(setq pzong (list p1 p2 p3 p4p5 p6 p7 p8 p9 p10
p11 p12 p13 p14 p15 p16 p17 p18 p19 p20 p21
p22 p23 p24 p25 p26 p27 p28 p29 p30 p31 p32 p33
p34 p35 p36 p37 p38 p39 p40 p41 p42 p43 p44 p45
p46 p47 p48 p49 p50))
(if (not (new_dialog "para" aa))(exit))
(start_list "parlis")
(mapcar 'add_list pzong)
(end_list)
(start_dialog)
)
;绘图程序++++++++++++++++++++++++++++++++++++++++++++++++
(defun draw_jx()
(evaluate_jx)
(cond ((= stdraw 1) (dcsmb_draw2_jx))
((/= stdraw 1)(dcsmb_draw1_jx))
)
)
;赋值****************************************************
(defun evaluate_jx()
(if (/= blockyn "1") (setq blockyn "0"))
(setq L(atof (substr shuju11 3)))
(setq B(atof (substr shuju17 3)))
(setq H(atof (substr shuju1 14 2)))
(setq hh (atof (substr shuju1 19 2)))
(setq L1 (atof (substr shuju1 24 3)))
(setq B1 (atof (substr shuju1 29 3)))
(setq C(atof (substr shuju1 35 3)))
(setq R(atof (substr shuju1 42 2)))
(setq R1 (atof (substr shuju1 48 2)))
(setq ll (atof (substr shuju1 52 3)))
(setq d(atof (substr shuju1 59 2)))
(setq d1 (atof (substr shuju1 64 2)))
)
;;;************************
;;; 4. 绘制俯视图 函数
;;;************************
(defun dcsmb_draw1_jx( /sp ss1
ax0 ax1 ax2 ax3 ax4 ax5 ax6 ax7 ax8 ax9 ax10 ax11 ax12 ax13 ax14 ax15 ax16 ax17 ax18 ax19 ax20 ax21 ax22 ax23
ax24 ax25 ax26 ax27 ax28 ax29 ax30 ax31 ax32 ax33 ax34 ax35 ax36 ax37 ax38 ax39 ax40 ax41 ax42
ay0 ay1 ay2 ay3 ay4 ay5 ay6 ay7 ay8 ay9 ay10 ay11 ay12 ay13 ay14 ay15 ay16 ay17 ay18 ay19 ay20 ay21 ay22 ay23
ay24 ay25 ay26 ay27 ay28 ay29 ya30 ay31 ay32 ay33 ay34 ay35 ay36 ay37 ay38 ay39 ay40 ay41 ay42
p0 p1 p2 p3 p4 p5 p6 p7 p8 p9 p10 p11 p12 p13 p14 p15 p16 p17 p18 p19 p20 p21 p22 p23 p24 p25 p26 p27 p28
p29 p30 p31 p32 p33 p34 p35 p36 p37 p38 p39 p40 p41 p42)
;定义关键点
(setq sp (getvar "viewctr"))
(setq ax0 (car sp))
(setq ay0 (cadr sp))
(setq p0 (list ax0 ay0))
(setq ax1 (- ax0 (/ c 2.0)))
(setq ay1 ay0)
(setq p1 (list ax1 ay1))
(setq ax2 (+ ax0 (/ c 2.0)))
(setq ay2 ay0)
(setq p2 (list ax2 ay2))
(setq ax3 ax1)
(setq ay3 (+ ay0 R))
(setq p3 (list ax3 ay3))
(setq ax4 ax2)
(setq ay4 ay3)
(setq p4 (list ax4 ay4))
(setq ax5 ax1)
(setq ay5 (- ay0 R))
(setq p5 (list ax5 ay5))
(setq ax6 ax2)
(setq ay6 ay5)
(setq p6 (list ax6 ay6))
(setq ax7 (- ax0 (/ L 2.0)))
(setq ay7 (+ ay0 (/ B 2.0)))
(setq p7 (list ax7 ay7))
(setq ax8 (+ ax0 (/ L 2.0)))
(setq ay8 ay7)
(setq p8 (list ax8 ay8))
(setq ax9 ax7)
(setq ay9 (- ay0 (/ B 2.0)))
(setq p9 (list ax9 ay9))
(setq ax10 ax8)
(setq ay10 ay9)
(setq p10 (list ax10 ay10))
(setq ax11 (+ (- ax0 (/ L1 2)) R1))
(setq ay11 (+ ay0 (/ B1 2.0)))
(setq p11 (list ax11 ay11))
(setq ax12 (- (+ ax0 (/ L1 2)) R1))
(setq ay12 ay11)
(setq p12 (list ax12 ay12))
(setq ax13 ax11)
(setq ay13 (- ay0 (/ B1 2.0)))
(setq p13 (list ax13 ay13))
(setq ax14 ax12)
(setq ay14 ay13)
(setq p14 (list ax14 ay14))
(setq ax15 (- ax0 (/ L1 2.0)))
(setq ay15 (- ay11 R1))
(setq p15 (list ax15 ay15))
(setq ax16 (+ ax0 (/ L1 2.0)))
(setq ay16 ay15)
(setq p16 (list ax16 ay16))
(setq ax17 ax15)
(setq ay17 (+ ay13 R1))
(setq p17 (list ax17 ay17))
(setq ax18 ax16)
(setq ay18 ay17)
(setq p18 (list ax18 ay18))
(setq ax19 (- ax1 (/ d1 2.0) 5.0))
(setq ay19 ay1)
(setq p19 (list ax19 ay19))
(setq ax20 (+ ax1 (/ d1 2.0) 5.0))
(setq ay20 ay1)
(setq p20 (list ax20 ay20))
(setq ax21 ax1)
(setq ay21 (+ ay1 (/ d1 2.0) 5.0))
(setq p21 (list ax21 ay21))
(setq ax22 ax1)
(setq ay22 (- ay1 (/ d1 2.0) 5.0))
(setq p22 (list ax22 ay22))
(setq ax23 (- ax2 (/ d1 2.0) 5.0))
(setq ay23 ay2)
(setq p23 (list ax23 ay23))
(setq ax24 (+ ax2 (/ d1 2.0) 5.0))
(setq ay24 ay2)
(setq p24 (list ax24 ay24))
(setq ax25 ax2)
(setq ay25 (+ ay2 (/ d1 2.0) 5.0))
(setq p25 (list ax25 ay25))
(setq ax26 ax2)
(setq ay26 (- ay2 (/ d1 2.0) 5.0))
(setq p26 (list ax26 ay26))
(setq ax27 ax0)
(setq ay27 (+ ay11 10.0))
(setq p27 (list ax27 ay27))
(setq ax28 ax0)
(setq ay28 (- ay13 10.0))
(setq p28 (list ax28 ay28))
(setq ax29 (- ax15 10.0))
(setq ay29 ay0)
(setq p29 (list ax29 ay29))
(setq ax30 (+ ax16 10.0))
(setq ay30 ay0)
(setq p30 (list ax30 ay30))
(setq ax31 (+ ax0 (/ ll 2)))
(setq ay31 (- ay13 3))
(setq p31 (list ax31 ay31))
(setq ax32 (- ax0 (/ ll 2)))
(setq ay32 ay31)
(setq p32 (list ax32 ay32))
(setq ax33 (+ ax31 3))
(setq ay33 ay13)
(setq p33 (list ax33 ay33))
(setq ax34 (- ax32 3))
(setq ay34 ay13)
(setq p34 (list ax34 ay34))
(setq ax35 (- ax1 (sqrt (- (/ (* d d) 4) 9))))
(setq ay35 (+ ay1 3))
(setq p35 (list ax35 ay35))
(setq ax36 ax35)
(setq ay36 (- ay1 3))
(setq p36 (list ax36 ay36))
(setq ax37 (- ax1 (sqrt (- (* R R) 9))))
(setq ay37 ay35)
(setq p37 (list ax37 ay37))
(setq ax38 ax37)
(setq ay38 ay36)
(setq p38 (list ax38 ay38))
(setq ax39 (+ ax2 (sqrt (- (/ (* d1 d1) 4) 9))))
(setq ay39 (+ ay1 3))
(setq p39 (list ax39 ay39))
(setq ax40 ax39)
(setq ay40 (- ay1 3))
(setq p40 (list ax40 ay40))
(setq ax41 (+ ax2 (sqrt (- (* R R) 9))))
(setq ay41 ay39)
(setq p41 (list ax41 ay41))
(setq ax42 ax41)
(setq ay42 ay40)
(setq p42 (list ax42 ay42))
;绘制俯视图
(setvar "clayer" "cs_thick")
(setq ss1 (ssadd))
(vl-cmdf "line" p11 p12 "")
(setq ss1 (ssadd (entlast) ss1))
(vl-cmdf "line" p13 p34 "")
(setq ss1 (ssadd (entlast) ss1))
(vl-cmdf "line" p32 p34 "")
(setq ss1 (ssadd (entlast) ss1))
(vl-cmdf "line" p31 p32 "")
(setq ss1 (ssadd (entlast) ss1))
(vl-cmdf "line" p31 p33 "")
(setq ss1 (ssadd (entlast) ss1))
(vl-cmdf "line" p33 p14 "")
(setq ss1 (ssadd (entlast) ss1))
(vl-cmdf "line" p15 p17 "")
(setq ss1 (ssadd (entlast) ss1))
(vl-cmdf "line" p16 p18 "")
(setq ss1 (ssadd (entlast) ss1))
(vl-cmdf "line" p35 p37 "")
(setq ss1 (ssadd (entlast) ss1))
(vl-cmdf "line" p36 p38 "")
(setq ss1 (ssadd (entlast) ss1))
(vl-cmdf "line" p39 p41 "")
(setq ss1 (ssadd (entlast) ss1))
(vl-cmdf "line" p40 p42 "")
(setq ss1 (ssadd (entlast) ss1))
(vl-cmdf "arc" p11 "e" p15 "r" R1)
(setq ss1 (ssadd (entlast) ss1))
(vl-cmdf "arc" p17 "e" p13 "r" R1)
(setq ss1 (ssadd (entlast) ss1))
(vl-cmdf "arc" p14 "e" p18 "r" R1)
(setq ss1 (ssadd (entlast) ss1))
(vl-cmdf "arc" p16 "e" p12 "r" R1)
(setq ss1 (ssadd (entlast) ss1))
(vl-cmdf "circle" p1 "d" d)
(setq ss1 (ssadd (entlast) ss1))
(vl-cmdf "circle" p2 "d" d1)
(setq ss1 (ssadd (entlast) ss1))
(setvar "clayer" "cs_dashed")
(vl-cmdf "line" p7 p8 "")
(setq ss1 (ssadd (entlast) ss1))
(vl-cmdf "line" p9 p10 "")
(setq ss1 (ssadd (entlast) ss1))
(vl-cmdf "arc" p3 "e" p5 "r" R)
(setq ss1 (ssadd (entlast) ss1))
(vl-cmdf "arc" p6 "e" p4 "r" R)
(setq ss1 (ssadd (entlast) ss1))
(vl-cmdf "arc" p3 "e" p7 "r" R)
(setq ss1 (ssadd (entlast) ss1))
(vl-cmdf "arc" p8 "e" p4 "r" R)
(setq ss1 (ssadd (entlast) ss1))
(vl-cmdf "arc" p9 "e" p5 "r" R)
(setq ss1 (ssadd (entlast) ss1))
(vl-cmdf "arc" p6 "e" p10 "r" R)
(setq ss1 (ssadd (entlast) ss1))
(setvar "clayer" "cs_center")
(vl-cmdf "line" p19 p20 "")
(setq ss1 (ssadd (entlast) ss1))
(vl-cmdf "line" p21 p22 "")
(setq ss1 (ssadd (entlast) ss1))
(vl-cmdf "line" p23 p24 "")
(setq ss1 (ssadd (entlast) ss1))
(vl-cmdf "line" p25 p26 "")
(setq ss1 (ssadd (entlast) ss1))
(vl-cmdf "line" p27 p28 "")
(setq ss1 (ssadd (entlast) ss1))
(vl-cmdf "line" p29 p30 "")
(setq ss1 (ssadd (entlast) ss1))
(setq blknam (strcat "dcsmb-z-f-" xh ))
(mblock_jx blknam ss1 p0)
(setq ss2 (entlast))
(vl-cmdf "erase" ss2 "")
(prompt "\n请输入插入点:")
(vl-cmdf "-insert" blknampause 1 1)
(prompt "\n请输入角度:")
(vl-cmdf pause)
(setq ss3 (entlast))
(if (/= blockyn "1")(vl-cmdf "explode" ss3))
);end_defun
;;;************************
;;; 5. 绘制正视图 函数
;;;************************
(defun dcsmb_draw2_jx( / sp ss1
ax0 ax1 ax2 ax3 ax4 ax5 ax6 ax7 ax8 ax9 ax10
ay0 ay1 ay2 ay3 ay4 ay5 ay6 ay7 ay8 ay9 ay10
p0 p1 p2 p3 p4 p5 p6 p7 p8 p9 p10 p11 p12 p13
p14 p15 p16 p17 p18 p19 p20 p21 p22 p23 p24 p25)
;定义关键点
(setq sp (getvar "viewctr"))
(setq ax0 (car sp))
(setq ay0 (cadr sp))
(setq p0 (list ax0 ay0))
(setq ax1 (- ax0 (/ L1 2.0)))
(setq ay1 ay0)
(setq p1 (list ax1 ay1))
(setq ax2 (+ ax0 (/ L1 2.0)))
(setq ay2 ay0)
(setq p2 (list ax2 ay2))
(setq ax3 ax1)
(setq ay3 (+ ay0 H))
(setq p3 (list ax3 ay3))
(setq ax4 ax2)
(setq ay4 ay3)
(setq p4 (list ax4 ay4))
(setq ax5 ax0)
(setq ay5 (+ ay3 10.0))
(setq p5 (list ax5 ay5))
(setq ax6 ax0)
(setq ay6 (- ay0 10.0))
(setq p6 (list ax6 ay6))
(setq ax7 (- ax0 (/ C 2.0)))
(setq ay7 ay5)
(setq p7 (list ax7 ay7))
(setq ax8 (+ ax0 (/ C 2.0)))
(setq ay8 ay5)
(setq p8 (list ax8 ay8))
(setq ax9 ax7)
(setq ay9 ay6)
(setq p9 (list ax9 ay9))
(setq ax10 ax8)
(setq ay10 ay6)
(setq p10 (list ax10 ay10))
(setq ax11 (- (- ax0 (/ C 2)) (sqrt (- (/ (* d d) 4) 9))))
(setq ay11 ay3)
(setq p11 (list ax11 ay11))
(setq ax12 (+ (+ ax0 (/ C 2)) (sqrt (- (/ (* d1 d1) 4) 9))))
(setq ay12 ay3)
(setq p12 (list ax12 ay12))
(setq ax13 ax11)
(setq ay13 (- ay3 3.0))
(setq p13 (list ax13 ay13))
(setq ax14 ax12)
(setq ay14 ay13)
(setq p14 (list ax14 ay14))
(setq ax15 ax3)
(setq ay15 ay13)
(setq p15 (list ax15 ay15))
(setq ax16 ax4)
(setq ay16 ay15)
(setq p16 (list ax16 ay16))
(setq ax17 (- ax0 (/ c 2) (/ d 2)))
(setq ay17 ay0)
(setq p17 (list ax17 ay0))
(setq ax18 (+ (- ax0 (/ c 2)) (/ d 2)))
(setq ay18 ay0)
(setq p18 (list ax18 ay0))
(setq ax19 ax18)
(setq ay19 ay3)
(setq p19 (list ax19 ay3))
(setq ax20 ax17)
(setq ay20 (- ay3 3))
(setq p20 (list ax20 ay20))
(setq ax21 (+ ax0 (/ c 2) (/ d1 2)))
(setq ay21 ay0)
(setq p21 (list ax21 ay21))
(setq ax22 (- (+ ax0 (/ c 2)) (/ d1 2)))
(setq ay22 ay0)
(setq p22 (list ax22 ay22))
(setq ax23 ax22)
(setq ay23 ay3)
(setq p23 (list ax23 ay3))
(setq ax24 ax21)
(setq ay24 ay20)
(setq p24 (list ax24 ay24))
;绘制主视图
(setvar "clayer" "cs_thick")
(setq ss1 (ssadd))
(vl-cmdf "line" p1 p2 "")
(setq ss1 (ssadd (entlast) ss1))
(vl-cmdf "line" p2 p4 "")
(setq ss1 (ssadd (entlast) ss1))
(vl-cmdf "line" p3 p4 "")
(setq ss1 (ssadd (entlast) ss1))
(vl-cmdf "line" p1 p3 "")
(setq ss1 (ssadd (entlast) ss1))
(vl-cmdf "line" p11 p13 "")
(setq ss1 (ssadd (entlast) ss1))
(vl-cmdf "line" p13 p15 "")
(setq ss1 (ssadd (entlast) ss1))
(vl-cmdf "line" p12 p14 "")
(setq ss1 (ssadd (entlast) ss1))
(vl-cmdf "line" p14 p16 "")
(setq ss1 (ssadd (entlast) ss1))
(vl-cmdf "line" p17 p20 "")
(setq ss1 (ssadd (entlast) ss1))
(vl-cmdf "line" p18 p19 "")
(setq ss1 (ssadd (entlast) ss1))
(vl-cmdf "line" p22 p23 "")
(setq ss1 (ssadd (entlast) ss1))
(vl-cmdf "line" p21 p24 "")
(setq ss1 (ssadd (entlast) ss1))
(setvar "clayer" "cs_center")
(vl-cmdf "line" p5 p6 "")
(setq ss1 (ssadd (entlast) ss1))
(vl-cmdf "line" p7 p9 "")
(setq ss1 (ssadd (entlast) ss1))
(vl-cmdf "line" p8 p10 "")
(setq ss1 (ssadd (entlast) ss1))
(setq blknam (strcat "hdzsmb-z-z-" xh ))
(mblock_jx blknam ss1 p0)
(setq ss2 (entlast))
(vl-cmdf "erase" ss2 "")
(prompt "\n请输入插入点:")
(vl-cmdf "-insert" blknampause 1 1)
(prompt "\n请输入角度:")
(vl-cmdf pause)
(setq ss3 (entlast))
(if (/= blockyn "1")(vl-cmdf "explode" ss3))
);end_defun
;;;*************************
;;; 6. 制作有/无名块 函数
;;;*************************
(defun mblock_jx (BloName SS1 insPt / count entlist ent Blk retBlk)
(if (= BloName "")
(entmake (list (cons 0 "BLOCK") (cons 2 "*U") (cons 70 1) (cons 10 insPt)));无名块.
(entmake (list (cons 0 "BLOCK") (cons 2 BloName) (cons 70 0) (cons 10 insPt)));有名块.
);endif
(setq count 0)
(repeat (sslength SS1)
(setq entlist (entget (setq ent (ssname SS1count))))
(setq count (1+ count))
(entmake entlist)
);end_repeat
(setq count 0)
(repeat (sslength SS1)
(setq ent (ssname SS1 count))
(setq count (1+ count))
(entdel ent)
);end_repeat
(setq Blk (entmake '((0 . "ENDBLK"))))
(if (princ Blk)
(entmake (list (cons 0"INSERT") (cons 2 Blk) (cons 10 insPt)))
);end_if
(setq retBlk Blk)
);end_defun
;结束程序系统还原++++++++++++++++++++++++++++++++++++++++++++
(defun revert_jx()
(setvar "clayer" "cs_thick")
(setvar "osmode" os)
(princ)
)
页:
1
[2]