(1)定义下拉菜单(插入在原有的下拉菜单之后) ***POPx [自制CAD(&Z)] [图幅比例(&A)]^C^C_bscale [--] 说明: 1)设置第x个下拉菜单 2)第x个下拉菜单的功能项名称,快捷键代码为Z 3)下拉菜单的分项名称,^C^C执行二次中断操作然后执行后面的命令(功能中所定义的,如bscale) 4)在下拉菜单中显示分隔符
图2 定义 图标工具栏
(2)定义图标工具栏(插入在原有的图标菜单之后) **MYCAD [_Toolbar("MYCAD", _Floating, _Show, 0, 1, 0)] [_Button("图幅比例", "bscale.bmp", "bscale.bmp")] ^C^C_bscale [--] 重新进入CAD,您就可以看到所编制的下拉菜单和图标标工具栏了。如果没有,请在Command状态下输入menu(回车),在弹出的对话框中选中您刚刚保存的acad.mun(或acad.mns),然后按确定按钮。另外,图标工具栏也可手工定制。在绘图环境下的任意图标上按鼠标右键,弹出菜单选择自定义,在自定义对话框中选择工具栏,按新建按钮,在工具栏名称中输入MYCAD,按确定按钮。再选择命令中的用户定义,按住鼠标左键拖动用户定义的按钮到MYCAD的工具栏中后,鼠标左键单击该按钮,在按钮特性中输入用户定义的按钮名称如“图幅比例” ,在与此按钮关联的宏中输入^C^C_bscale,然后选择编辑按钮,可以在按钮编辑器上直接画,也可打开bscale.bmp文件(如:用Photoshop绘画的),选中应用按钮。其余的图标定制方法以此类推。
三、笔者开发的AutoCAD的功能及使用方法
1.程序 (1)定义对称线 (defun c:dcx (/ ss1 dist p1 p2 p3 p4 p5 len pn pm pn1 pm1 ee ang1 sb) (setvar "orthomode" 1) (setq sb (getvar "osmode")) (setvar "osmode" 33) (setq ss1 (ssget) dist (getdist " 请输入平行线间的距离:") p1 (getpoint " 起始点或特征点:") len (getdist p1 " 终点或特征点或长度:") ee (entget (ssname ss1 0)) p2 (cdr (assoc 10 ee)) p3 (cdr (assoc 11 ee)) ang1 (angtos (angle p2 p3) 0 1) ) (command "_UCS" "_Z" ang1 "") (setq p4 (trans p1 0 1) p5 (trans p2 0 1) pn (list (car p4) (+ (cadr p5) (/ dist 2.0))) pm (list (car p4) (- (cadr p5) (/ dist 2.0))) pn1 (polar pn 0 len) pm1 (polar pm 0 len) ) (setvar "osmode" 0) (command "line" pn pn1 "" "line" pm pm1 "") (command "_UCS" "_W" "") (setvar "osmode" sb) ) (2)定义粗糙度 (defun C:wbin (/ sa) (setq sa (getvar "osmode")) (setvar "osmode" 0) (setq sc (getvar "DIMSCALE")) (setvar "osmode" 512) (command "insert" "ccd" pause sc sc pause) (setvar "osmode" sa) ) (3)定义序列号 (defun C:bub1 (/ p1 p2 p3 sc hd hd1 k h sb ) (setq sb (getvar "osmode")) (setvar "osmode" 0) (setq h (getint " 序列号的个数:") p1 (getpoint " Firstpoint:") ) (setvar "osmode" 512) (setq p2 (getpoint p1 " Secondpoint:") sc (getvar "DIMSCALE") hd (* 7 sc) hd1 (* 4 sc) ) (setvar "osmode" 0) (command "LAYER" "S" "03" "" "donut" 0 sc p1 "" "line" p1 P2 "") (if (> (car p2) (car p1)) (setq an1 0) ) (if (< (car p2) (car p1)) (setq an1 pi) ) (setq p3 (polar p2 an1 hd)) (command "line" p2 P3 "") (setq p0 p2 k 2 ) (while (<= k h) (setq p2 (list (car p2) (+ (* 8 sc) (cadr p2))) p3 (polar p2 an1 hd) ) (command "line" p2 P3 "") (setq k (1+ k)) ) (setq pt (list (/ (+ (car p2) (car p3)) 2) (+ (* 1.2 sc) (cadr p3)))) (command "line" p0 P2 "" "LAYER" "S" "0" "" "dtext" "J" "C" pt hd1 0 ) (setvar "osmode" sb) ) (4)定义形位公差 (defun C:gc (/ pp1 pp2 pp3 pp4 s2 k1 k2 sb1 sb2 g1) (setq sb1 (getvar "ORTHOMODE") sb2 (getvar "OSMODE") ) (setvar "ORTHOMODE" 1) (setvar "OSMODE" 512) (setq pp1 (getpoint " 请在实体上选一点:")) (setvar "OSMODE" 0) (setq pp2 (getpoint pp1 " 请确定引出线位置:") pp3 (getpoint pp2 " 请确定引出线终点:") s2 (getvar "DIMSCALE") g1 (angle pp1 pp2) k1 (* 1.5 s2) k2 (* 4.5 s2)
(责任编辑:admin) |