机械CAD开发技术.ppt
《机械CAD开发技术.ppt》由会员分享,可在线阅读,更多相关《机械CAD开发技术.ppt(61页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、机械CAD开发技术AutoCAD 二次开发入门讲授:吴 军课程内容(10+6学时)(1+0学时)(2+2学时)(2+2学时)(1+2学时)(2+0学时)4.对话框的设计5.综合练习6.VBA编程介绍1.AutoLISP编程2.Visual LISP开发3.菜单的设计理论理论上机上机第1讲 AutoLISP编程1.AutoLISP语法2.AutoCAD命令复习3.AutoLISP与AutoCAD命令的连接 4.自动绘制图形5.图形对象选取6.编辑图形穿插讲Visual Lisp开发环境的使用AutoLISP编程语法nAutoLISP 语法u数据类型:常量、变量、空间点u语法特点:表()u赋值语句
2、:setqu数学运算:+、-、*、/、PIu函数定义:defunu输入语句:getpoint、getdistu点的坐标:list、car、cadr、polaru流程:判断if与选择whileAutoLISP编程语法n数据类型:整型、实型、字符串、表 函数(相对于子程序 如:PI、+)图元(图形对象)等u常量 数字5、1.5 字符串“a”、“ab”“”(空串也是串)绘图命令中的“确认”!表(数组):(1,-2,3)(坐标点)u变量 (全局、局部)赋值语句 (setq a 1)(setq b (1,2)AutoLISP编程语法n表()(注意:成对出现)u操作符 操作数1 操作数2 符、数之间必须有
3、空格,以示区分!例:(+1 2)结果:3u()可嵌套 ()与符、数、()之间可无空格例:(setq a(*(-5(+1 2)2)结果:a=4u连+、-例:(setq a(+1 2 3 4)结果:a=10AutoLISP编程语法n函数定义:(defun c:hanshu(a);注释内容 )n输入函数:(通过键盘、鼠标)getpoint 输入空间点 (1,2)getdist 输入距离(数字)5例:(setq p (getpoint“n请输入圆心坐标:”)(setq r(getdist“n请输入圆半径值:”)(command“circle”p r)命令栏提示AutoLISP编程Autocad命令 n
4、Autocad命令 (注意:观察命令栏的提示)u直线 line 矩形 rectangleu圆 circle 圆弧 arc (多种方式)u正多边形 polygonu复制 copy 镜像 mirror 阵列 arrayu对象选择方式“w”“c”“l”AutoLISP编程与图形接口u绘图命令的接口:command (command“命令”参数1 参数2)(command“line”p1 p2“”)(command“line”“0,0”“30,20”“”)(command“circle”po r)(command“circle”“0,0”20)(command“arc”“c”po p1 p2)Auto
5、LISP编程与图形接口绘直线为什么要有个空字符“”n格式:参数变量:(command“line”p1 p2“”)(command“circle”po r)参数常量(坐标点):(command“line”“0,0”“30,20”“”)(command“circle”“0,0”20)“”=确认键“”中间不能空格,空格空问:例dtr 角度转成弧度 setvar设置环境变量cmdecho 0 原函数不起作用,1 起作用直线AutoLISP 编程语言流程n选择 if 单选,二选一(if 条件表达式 表达式1 表达式2)若条件表达式结果为真,执行表达式1,否则,执行表达式2(或下条语句)。例:(if (a
6、 1)(setq b 2)如果a 大于 1,则b等于2,否则执行下条语句。(if (a 1)(setq b 2)(setq b 3)如果a 大于 1,则b等于2,否则b等于3,求值结束。AutoLISP 编程语言流程n选择 cond 选择分支,多选一(cond(测试表达式1 结果表达式1)(测试表达式2 结果表达式2)AutoLISP 编程语言流程n(progon 多语句)该函数将n个表达式组合起来,作为if函数的一个表达式。例如:(if(a 1)(progn (setq b 2)(print (b a)(progn (setq b 4)(print b)n 该程序段的执行过程是,若条件成立,
7、b等于2,然后打印a与b之和,返回a与b之和;若条件不成立,b等于4,然后打印4,返回4。AutoLISP 编程语言流程n循环urepeat n次循环(次数确定)uWhile 满足条件循环(次数不确定)n子程序AutoLISP 编程语言举例n编程练习u矩形框u太极图u单循环u多循环例princ 命令栏不显示系统反馈的结果,如:出错圆,循环第2讲 Visual LISP 开发环境uLSP文件的编写、调试、加载u()、函数、数值、注释的区分uLSP程序的加载与运行uLSP程序的自动加载Visual LISP 开发环境nVisual LISP何用?开发AutoLISP程序 AutoLISP程序与C+
8、、Basic一样,可以用文本编辑器(如:word、记事本)编写,但不专业,且不能编译、试运行。n进入Visual LISP 在AutoCAD下拉菜单中选择:工具AutoLISPVisual LISP编辑器,或命令行“Command:vlide”,即可进入下图所示的Visual LISP集成环境。Visual LISP 开发环境n进入Visual LISP 在AutoCAD下拉菜单中选择:工具AutoLISPVisual LISP编辑器,或在命令提示“Command:”下键入vlide,即可进入下图所示的Visual LISP集成环境。Visual LISP 开发环境u新建、打开下的程序编写uV
9、isual LISP控制台类似于命令栏command:(逐行解释执行命令)u观察源代码的不同颜色:大红、兰、绿、桃红、黑、灰底红 括号 函数 数值 字符 自定义 注释Visual LISP 开发环境Visual LISP 开发环境u加载程序 加载文件名.lspuVisual LISP编辑器:加载活动编辑窗口uAutoCAD菜单:工具AutoLISP加载u下次自动加载程序uAutoCAD菜单:工具AutoLISP加载 启动组、内容、添加u运行程序 运行程序名()ucommand:程序名AutoLISP 编程语言图形编辑n图形对象的选择:uAutoCAD的的图形对象图形对象称作称作图元图元,存于图
10、形,存于图形库里。图元之间是以链表的形式存储的。库里。图元之间是以链表的形式存储的。uentnext:获取图形库:获取图形库第一个第一个图元的名字或图元的名字或指定图元的指定图元的下一个下一个图元的名字。图元的名字。uentlast:获取图形库:获取图形库最后一个最后一个,即,即最新生最新生成成的图元的名字。的图元的名字。AutoLISP 编程语言图形编辑n编辑命令:ucopyumirroruarrayn问:用copy改写6-18 用copy改写6-18第3讲 菜单设计nAcad.mnu 默认菜单 在此基础上改动(定制)注意:acad.mnu与acad.mns的区别,我们可直接 修改acad.
11、mnsu*popn 弹出式下拉菜单 n 排序u*子菜单名称 无此,则整个子菜单无u菜单中的每一项,按顺序排列(包括子孙菜单)u例:ID_Line 直线(&L)CC_line唯一标识符 名称 快捷键 宏命令(函数名)可视化对象编程注意:孙菜单形式菜单设计nToolbars 工具栏的定制n 添加工具栏n添加按钮n添加按钮图像n添加宏 CC_命令 连接按钮与命令的“桥”n 对话框对话框可视化、操作直观简便、美观悦目。可视化、操作直观简便、美观悦目。对话框对话框文件:文件:*.DCLn 对话框的组成对话框的组成 对对话框由若干控件组成,控件可以是话框由若干控件组成,控件可以是按钮按钮、编辑框编辑框、切
12、换开关、列表或图像等。切换开关、列表或图像等。控件可以自定义与引用。AutoCAD提提供供了了两两个个重重要要的的DCL文文件件:ACAD.DCL存存放放AutoCAD系系统统定定义义的的对对话话框框,BASE.DCL为为用用户户提提供供了了一一些些常常用用的对话框标准控件。的对话框标准控件。第4讲 对话框设计图像按钮图像按钮弹出列表弹出列表滑动条滑动条编辑框编辑框按钮按钮图像图像互锁按钮互锁按钮切换开关切换开关文本文本实例实例进进入入VLISPVLISP环环境境,将将下下列列源源代代码码输输入入到到文文本本编编辑辑窗窗口口,选选取取下下拉拉菜单菜单T ToolsoolsI Interface
13、 Toolnterface ToolPreview DCL in Preview DCL in E Editorditor。sample:dialog sample:dialog label=label=简单的对话框实例简单的对话框实例;:text:text label=label=祝您成功!祝您成功!;:button:button key=accept;key=accept;label=label=确认确认;is_default=true;is_default=true;fixed_width=true;fixed_width=true;alignment=centered;alignmen
14、t=centered;1.1.按钮(按钮(ButtonButton)按按 钮钮 的的 类类 型型 是是 buttonbutton。有有 actionaction、alignmentalignment、fixed_heightfixed_height、fixed_widthfixed_width、heightheight、is_cancelis_cancel、is_enabledis_enabled、is_tab_stopis_tab_stop、keykey、labellabel、widthwidth 属属性。它的标签(性。它的标签(labellabel)显示在按钮上。)显示在按钮上。n控件控件
15、 简简单单的的DCLDCL设设计计可可以以采采用用引引用用控控件件的的方方式式。AutoCADAutoCAD为为用用户户预预定定义义了了多多种种常常用用控控件件。每每一一种种(个个)控控件件有有多多个个属属性性。每每个个属属性性都都有有一一个个名名字字和和值值。2.2.编辑框(编辑框(Edit BoxEdit Box)编辑框用于编辑框用于输入字符串输入字符串。它的类型是。它的类型是edit_boxedit_box。有。有allow_acceptallow_accept、edit_widthedit_width、fixed_heightfixed_height、fixed_widthfixed_
16、width、heightheight、keykey、labellabel、valuevalue、widthwidth属性。其标签显示在该框的左边,它的默认宽度为属性。其标签显示在该框的左边,它的默认宽度为1212个字个字符,当输入的字符多于符,当输入的字符多于1212时,文本自动向左滚动,框内的时,文本自动向左滚动,框内的字符串即为编辑框的值(字符串即为编辑框的值(valuevalue)。)。:edit_boxedit_box key=test_text;key=test_text;label=label=长度长度:;:;value=100.0;value=100.0;width=12;wid
17、th=12;3.3.列表框(列表框(List BboxList Bbox)列列表表的的值值是是被被选选中中的的文文本本行行的的序序号号,序序号号从从0 0开开始始。属属性性multiple_selectmultiple_select为为truetrue时时,允允许许同同时时选选取取框框内内的的多行文本。多行文本。:list_boxlist_box label=label=齿轮种类齿轮种类;list=list=圆柱直齿圆柱直齿nn圆柱斜齿圆柱斜齿nn 圆锥直齿圆锥直齿nn螺旋伞齿螺旋伞齿nn蜗轮蜗轮nn 蜗杆蜗杆n;n;value=2;value=2;key=gear_list;key=gear
18、_list;height=6;height=6;4.单选按钮(单选按钮(Radio Button)注注:同组互锁同组互锁:radio_buttonradio_button key=unit_mm;key=unit_mm;label=label=毫米毫米;5.5.复选开关(复选开关(ToggleToggle):toggletoggle label=label=正交方式正交方式;key=ortho_mode;key=ortho_mode;value=1;value=1;u 组合类控件组合类控件1.列列(Column)列是将若干控件构成垂直分布的一个组件。列是将若干控件构成垂直分布的一个组件。列的类
19、型是列的类型是columncolumn。有。有alignmentalignment、children_alignmentchildren_alignment、children_fixed_heightchildren_fixed_height、children_fixed_widthchildren_fixed_width、fixed_heightfixed_height、fixed_widthfixed_width、heightheight、labellabel、width 9width 9个属性。个属性。定义如下:定义如下::columncolumn :buttonbuttonlabel=
20、label=光标拾取光标拾取;key=pick;key=pick;:edit_boxedit_boxlabel=x=;label=x=;width=12;width=12;key=x;key=x;mnemonic=x;mnemonic=x;value=0.0;value=0.0;:edit_boxedit_boxlabel=y=;label=y=;width=12;width=12;key=y;key=y;mnemonic=y;mnemonic=y;value=0.0;value=0.0;2.2.加框列(加框列(Boxed ColumnBoxed Column)顾名思义顾名思义:加了一个矩形框
21、的列。加了一个矩形框的列。将定义的第一行将定义的第一行 :column:column 改为改为 :boxed_columnlabel=:boxed_columnlabel=左下角点左下角点;3.3.互锁列(互锁列(Radio ColumnRadio Column)(左图)左图)加框互锁列(加框互锁列(Boxed Radio ColumnBoxed Radio Column)定义:将互锁列定义的定义:将互锁列定义的 :radio_column:radio_column改为改为:boxed_radio_column:boxed_radio_column label=label=幅面规格幅面规格;互
22、锁列的定义如下:互锁列的定义如下::radio_columnradio_column key=size;key=size;:radio_buttonradio_buttonlabel=A&0;label=A&0;key=a0;key=a0;:radio_buttonradio_buttonlabel=A&1;label=A&1;key=a1;key=a1;:radio_buttonradio_buttonlabel=A&2;label=A&2;key=a2;key=a2;:radio_buttonlabel=A&3;:radio_buttonlabel=A&3;key=a3;key=a3;va
23、lue=1;value=1;:radio_buttonradio_buttonlabel=A&4;label=A&4;key=a4;key=a4;:radio_buttonradio_buttonlabel=A&5;label=A&5;key=a5;key=a5;:rowrow :toggletoggle label=label=纵向纵向;key=dir;key=dir;:edit_boxedit_box label=W(mm)=;mnemonic=W;key=w;label=W(mm)=;mnemonic=W;key=w;value=420;value=420;:edit_boxedit_b
24、ox label=H(mm)=;mnemonic=H;key=h;label=H(mm)=;mnemonic=H;key=h;value=297;value=297;4.行(行(RowRow)、加框行()、加框行(Boxed RowBoxed Row):boxed_row:boxed_rowlabel=label=图纸幅面图纸幅面;u装饰性和信息类控件装饰性和信息类控件 装装饰饰性性和和信信息息类类控控件件无无行行为为动动作作,用用于于显显示示信信息息、加加强强视视觉觉效效果果或或协协助助对对话话框框布布局局。如如:图图像(像(ImageImage)、文本()、文本(TextText)5.5.
25、对话框(对话框(dialogdialog)对对话话框框本本身身也也可可以以看看作作是是一一种种控控件件,至至少少要要有有一一个个确确认认(OKOK)或或取取消消(CancelCancel)按按钮钮。它它的的类类型型是是dialogdialog,有有initial_focusinitial_focus、labellabel、value value 3 3个个属属性性。标标签签是是对对话话框框的的标标题题。属属性性valuevalue也也可可以以作为标题。作为标题。valuevalue:控件初始状态时的值。:控件初始状态时的值。alignmentalignment 确确定定控控件件自自身身的的定定
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 机械 CAD 开发 技术
限制150内