




已阅读5页,还剩90页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第8章编程实例 8 1设置作图环境编程作图和交互作图一样 也需要设置作图的环境 例如图纸的范围 绘图的单位 目标捕捉的类型 图层 颜色 线型 线宽 字样等 如果缺少对作图环境的设置 只能是利用加载程序时AutoCAD提供的默认环境 设置一个合适的作图环境不仅可以提高作图的精度和效率 有时还会影响到所绘制的图纸是否符合企业的规范和满足生产的需要 用程序实现设置作图环境的功能可以通过command函数调用相关的命令 或者通过setvar函数改变相应系统变量的当前值或当前状态 有些功能只能通过上述一种途径实现 有些功能可以通过上述两种途径实现 1 设置图纸的范围例如 设置A3图纸的作图范围 1 通过command函数设置图纸的范围用下列表达式之一均可设置 command limits 0 0 420 297 command limits 00 420297 command limits list00 list420297 如果p1 p2分别是作图范围的左下和右上角点 上式可改写为 command limits p1p2 2 通过setvar函数设置图纸的范围用setvar函数设置图纸的范围时 需要分别设置图纸的左下角点和右上角点 它们分别对应系统变量limmin和limmax 用下列表达式之一均可设置图纸的左下角点 setvar limmin 00 setvar limmin list00 setvar limmin 0 0 setvar limmin p1 用下列表达式之一均可设置图纸的右上角点 setvar limmax 420297 setvar limmax list420297 setvar limmax 420 297 setvar limmax p2 2 设置绘图的长度和角度单位例如将绘图的长度单位设置为十进制 3位小数 角度单位设置为十进制的度 2位小数 X轴正方向为0 逆时针方向为正 1 通过command函数设置绘图的长度和角度单位 command units 23120 N command的参数说明如下 units AutoCAD设置绘图单位的命令 2 长度单位为十进制 3 3位小数 1 角度单位为十进制的度 2 2位小数 0 X轴正方向为0 N 非顺时针 即逆时针为正 2 通过setvar函数设置设置绘图的长度和角度单位 setvar lunits 2 长度单位为十进制 setvar luprec 3 长度单位为3位小数 setvar aunits 1 角度单位为十进制的度 setvar auprec 2 角度单位为2位小数 setvar angbase 0 0 X轴正方向为0 setvar angdir 0 逆时针方向为正 3 设置目标捕捉的类型交互操作时 目标捕捉类型的选项是字符串 它以编码的形式记录在系统变量osmode内 代码的具体含义如下 0 不捕捉任何类型的对象1 线段和圆弧的端点2 线段和圆弧的中点4 圆 圆弧或椭圆的中心8 用point命令生成的点16 圆 圆弧或椭圆的象限点32 线段和圆弧的交点64 图或字符串的插入点128 垂足256 切点512 对象上距光标的最近点1024 快速捕捉2048 在观察方向上相交 实际不一定相交的点4096 延长线上的点8192 与所选对象平行 1 通过command函数设置设置目标捕捉的类型 command osnap endpoint midpoint center 捕捉端点 中点和中心 command osnap none 不捕捉任何类型 2 通过setvar函数设置目标捕捉的类型 setvar osmode 7 7是捕捉端点 中点和中心的代码之和 setvar osmode 0 不捕捉任何类型通常将osmode设置为0 假定osmode的当前值为1 就会捕捉直线或圆弧的端点 在这种情况下 如果指定的是p点 而p点处刚好有一条直线 那么实际获取的是该直线上距p点较近的那个端点 而不是p点本身 所以用程序绘图时应该osmode设置为0 4 抑制AutoCAD普通命令的提示在运行程序的过程中 可能会显示AutoCAD普通命令的提示 例如command函数在调用line命令绘制直线时 在命令提示区会出现指定第一点 指定下一点或 放弃 U 等提示 如果不关心这些信息 应该将其关闭 可以提高程序的运行速度 通过setvar函数可以抑制AutoCAD普通命令的提示 表达式如下 setvar cmdecho 0 cmdecho是控制普通命令提示是否显示的系统变量 当其为1时 照常显示AutoCAD普通命令的提示 将其设置为0 将抑制这样的一些提示 但仍然显示AutoLISP函数的提示信息 通常应将cmdecho设置为0 8 2设置图层 颜色 线型和线宽1 创建一个当前图层通过command函数创建一个当前图层 假定图层的名字是 中心线 颜色为红色 线型为center 线宽为0 1 表达式如下 command layer Make 中心线 Color 1 中心线 Ltype Center 中心线 LWeight 0 1 中心线 因为在命令行操作时 layer命令需要空回车响应输入选项 生成 M 设定 S 新建 N 开 ON 关 OFF 颜色 C 线型 L 线宽 LW 材质 MAT 打印 P 冻结 F 解冻 T 锁定 LO 解锁 U 状态 A 提示才能结束该命令 所以在右括号前增加一对引号 注意 引号内没有空格 因为Make Color Ltype LWeight等选项可以简写为M C L LW 所以上式可改为 command layer M 中心线 C 1 中心线 L Center 中心线 LW 0 2 中心线 又因为当前图层的名字是 颜色 线型 等选项默认的图层名 所以上式可改为 command layer M 中心线 C 1 L Center LW 0 2 如果当前图层的颜色 线型 线宽等为默认的选择 表达式如下 command layer M 粗线 粗线 是当前图层 颜色号为7 白 黑 线型为continuous 线宽为当前图形对象的默认线宽 如果某图层已经存在 只是将其改变为当前图层 其表达式如下 command layer M 粗线 或者 command layer S 粗线 2 设置新图形对象的颜色 1 通过command函数设置新图形对象的颜色 command color 3 或者 command color green 设置新图形对象的颜色为绿色 2 通过setvar函数设置新图形对象的颜色 setvar cecolor 2 或者 setvar cecolor yellow 设置新图形对象的颜色为黄色3 设置新图形对象的线型 1 通过command函数设置新图形对象的线型 command linetype s center 设置新图形对象的线型为中心线 2 通过setvar函数设置新图形对象的线型 setvar celtype dashed 设置新图形对象的线型为虚线 4 设置线型比例因子的大小除了实线 continuous 之外 每种线型都是由不同长度的短划线 空白段或点组成的 在不同的显示比例下 这些短划线和空白段的视觉效果可能过大或过小 改变线型比例因子的大小并不改变整条线段的长度 只改变短划线和空白段的大小 例如 将线型的短划线和空白段缩短一半 1 通过command函数设置线型比例因子的大小 command ltscale 0 5 2 通过setvar函数设置设置线型比例因子的大小 setvar ltscale 0 5 5 设置新图形对象的线宽 1 通过command函数设置新图形对象的线宽 command lweight 0 5 设置新图形对象的线宽为0 5 2 通过setvar函数设置新图形对象的线宽系统变量celweight记录着新图形对象的线宽 它的值是整型的 以1 为单位 例如设置新图形对象的线宽为0 5的表达式如下 setvar celweight 50 例8 1 定义绘制图8 1所示的平键外形轮廓线和中心线的命令 插入点p 键宽b 键长L 旋转角alf是交互输入的参数 要求粗实线所在图层的名字为 粗线 蓝色 中心线所在图层的名字为 中心线 红色 线型为center 中心线 图8 1绘制平键 定义绘制平键轮廓线命令的源程序如下 defunc pingjian pblalfrl1p1p2p3p4p5p6p7p8p9p10 setvar osmode 0 关闭目标捕捉状态 setvar cmdecho 0 抑制普通命令的提示 command layer make 粗线 c 5 粗线 生成粗实线所在的图层 图层的状态为当前层 名字为 粗线 颜色为蓝色 setqp getpoint 输入平键的定位点 以交互方式得到平键的定位点p setqb getdistp 输入平键的宽度 以交互方式得到平键的宽度b setql getdistp 输入平键的长度 以交互方式得到平键的长度l setqalf getanglep 输入平键的旋转角 以交互方式得到平键的旋转角alf setqr 0 5b l1 lb r和l1分别是平键宽度b和平键长度l的一半 setqp1 polarp alf 0 5pi r p1 p4是多义线的4个顶点 setqp2 polarp1alfl1 setqp3 polarp2 alf 1 5pi b setqp4 polarp1 alf 1 5pi b command pline p1 width 0 60 6p2 arc p3 line p4 arc close 绘制平键的外形轮廓线 command layer m 中心线 c 1 l center 生成中心线所在的图层 图层的状态为当前层 名字为 中心线 颜色为红 线型为中心线 setvar ltscale 0 5 setqp5 polarp1 alf 0 5pi 5 setqp6 polarp2 alf 0 5pi 5 setqp7 polarp3 alf 1 5pi 5 setqp8 polarp4 alf 1 5pi 5 setqp9 polarp alfpi r8 setqp10 polarpalf lr 8 command line p5p8 绘制中心线 command line p6p7 command line p9p10 程序说明如下 1 定义AutoCAD命令与定义函数一样 都是通过defun函数 不同之处是命令名前必须加 C 2 AutoCAD命令的变元表内不能有变元 除号之后的p b l等是这个函数的局部变量声明 即使没有局部变量的声明 也不能缺少变元表的一对括号 3 第3行通过setvar函数和系统变量cmdecho抑制普通命令的提示 但并不抑制get 函数的提示 4 第5行getpoint函数的功能是在交互状态下获取一个点 既可以用鼠标在屏幕上指定一个点 也可以通过键盘键入一个点的坐标 如键入100 50 响应 输入平键的定位点 的提示 5 第6行getdist函数的功能是在交互状态下获取一个长度值 既可以通过键盘键入具体的数值 也可以用鼠标在屏幕上指定两个点 两点的距离即为输入的长度值 由于本例提供了参照点p 因此 只需用鼠标在屏幕上指定一个点 该点与p点的距离即为输入的长度值 6 第8行getangle函数的功能是在交互状态下获取一个角度值 既可以通过键盘键入具体的数值 也可以用鼠标在屏幕上指定两个点 两点连线与X轴的正向夹角即为输入的角度值 由于本例提供了参照点p 因此 只需用鼠标在屏幕上指定一个点 该点与p点的连线与X轴的正向夹角即为输入的角度值 注意 尽管键入的角度以度为单位 例如180 但获取的角度以弧度为单位 例如3 14159 7 第14行调用的是command函数 pline 是被调用的AutoCAD具体命令 该表达式可简化为如下代码 command pline p1 w 0 60 6p2 a p3 l p4 a cl 其中 w a l 和 cl 分别是pline命令的选项 width arc line 和 close 8 第15行和第4行的功能都是生成当前图层 该表达式也可以改写为一个函数 其功能是生成一个当前层 并设置该层的颜色和线型 源代码如下 defuntuceng namecolorltyle command layer m name c colorname l ltypename 各变元的数据类型和含义如下 name 字符串 图层的名字 color 0 255的一个整数 图层的颜色号 ltype 字符串 AutoCAD提供的线型名 如dashed center等 将第4行改为调用该函数 表达式如下 tuceng 粗线 3 将第15行改为调用该函数 表达式如下 tuceng 中心线 1 center 9 加载该程序 切换到AutoCAD窗口 在命令 提示下 键入pingjian 按照程序的提示 输入相应的数据 即可得到图8 1所示的图形 8 3定义字样Style命令以AutoCAD提供的 shx类型的形文件或Windows等提供的 ttf类型的字体文件为原型定义字样 新图开始时 只有一种字样 名字为 standard 如果不满意该字样 就应该自己定义字样 以下是通过command函数调用Style命令定义字样的表达式 1 以形文件为原型定义字样 command style 字样1 gbeitc 0 0 1 0 0 0 N N 各项含义如下 style 定义字样的命令字样1 字样的名字gbeitc AutoCAD提供的形文件名 文件的全名是complex shx0 0 字的固定高度 若该值为0 表示没有固定的字高 每次调用text命令时 临时指定字高 1 0 宽度因子 为1 0时的高宽比约为3 20 0 字的倾斜角度N 不反写 若为Y时 为反字 左右颠倒 N 不倒写 若为Y时 为倒字 上下颠倒 由于字体原型文件名之后的选项都是默认值 因此上述表达式可以简化表示为 command style 字样1 complex 2 以Windows提供的字体文件 ttf为原型定义名字为 汉字1 的字样 command style 汉字1 stfangso ttf 由于可以用字体名代替字体文件名 因此上述表达式可以表示为 command style 汉字1 华文仿宋 3 以一个大字体 bigfont 形文件为原型定义汉字字样以Windows提供的字体文件为原型定义的字样 可以很好地解决汉字书写的问题 但常用的几个字符 不能用AutoCAD规定的 c d p转义输入 用大字体形文件为原型定义的汉字可以很好地解决这个问题 普通形文件用一个字节存放形 shape 编号 所以它所定义的字符数量不超过256 大字体形文件用两个字节存放形编号 所以可以定义65000多个字符 所以大字体形文件用于定义汉字 其表达式如下 command style 汉字2 gbcbig 其中gbcbig是定义汉字的大字体 文件的全名是gbcbig shx 注意 该表达式增加了一对双引号 用于对应是否垂直书写的选项 4 普通形文件与大字体形文件组合 定义汉字字样西文字符用普通的形文件为原型 汉字部分用大字体形文件为原型 从两种形文件中各选一个满意的形文件定义汉字字样 其表达式如下 command style 汉字3 complex gbcbig 例8 2 定义绘制图8 2所示的A4图框和标题栏的命令 零件名称 零件材料 零件数量 绘图比例是交互输入的参数 详细尺寸参照GB T14689 1993 图8 2A4图框和标题栏 定义绘制A4图框和标题栏的源程序如下 defunc a4 v1v2v3ljmchclshlbl 定义命令的名字为a4 setqv1 getvar osmode 获取当前的目标捕捉类型 将其赋给变量v1 setqv2 getvar cmdecho 获取当前的普通命令提示状态 将其赋给变量v2 setqv3 getvar blipmode 获取当前的光标痕迹显示状态 将其赋给变量v3 setvar osmode 0 关闭目标捕捉状态 setvar cmdecho 0 不显示普通命令的提示 setvar blipmode 0 不显示光标痕迹 setqljmch getstring n输入零件名称 将输入的零件名称赋给变量ljmch setqcl getstring n输入零件材料 将输入的零件材料赋给变量cl setqshl getint n输入零件数量 将输入的零件数量赋给变量shl setqshl itoashl 将整数shl转换为字符串 setqbl getstring n输入绘图比例 将输入的绘图比例赋给变量bl command style 汉字 gbcbig 定义字样名为汉字 command layer m 细线 c 1 创建当前图层细线 command limits 0 0 210 297 设置图纸范围 command zoom a 显示整个图纸范围 command line 0 0 210 0 210 297 0 297 c 绘制A4图纸的边框 command layer m 粗线 c 7 lw 0 6 创建当前图层 粗线 command line 25 5 205 5 205 292 25 292 c 绘制图框 command line 85 5 85 27 205 27 绘制标题栏 command line 85 13 205 13 command line 100 13 100 27 command line 120 13 120 27 command line 132 5 132 27 command line 162 5 162 13 command line 180 5 180 27 command layer m 细线 设置 细线 为当前图层 command line 85 20 132 20 command layer m 文字 c 5 创建当前图层 文字 command text m list108 59 50 清华大学机械厂 填写标题栏 command text m list1479 50 strcat 材料 cl command text m list1719 50 strcat 数量 shl command text m list192 59 50 strcat 比例 bl command text m list92 523 5 50 制图 command text m list92 516 5 50 校核 command text m list15620 100ljmch setvar osmode 恢复目标捕捉的原来状态 setvar cmdecho v2 恢复普通命令提示原来的显示状态 setvar blipmode v3 恢复光标痕迹原来的显示状态 princ 静默退出 程序说明如下 1 第2 4行用getvar函数获取系统变量osmode等的当前值 将其赋给变量v1 v2 v3 以便程序结束时恢复程序开始时的环境 2 第5 7行用setvar函数将系统变量osmode等设置为有利于程序绘图的环境 3 第11行 setqshl itoashl 的作用是将整数shl转换为字符串 以适应后面的字符串运算 4 第30行 text 之后的 m 是书写文本的定位方式选项 表示中点定位 5 第31行 strcat函数的功能是连接字符串 它将字符串 材料 和用户输入的字符串 例如 40Cr 连接为一个字符串 材料40Cr 6 第37 39行用setvar函数设置系统变量osmode等为程序开始时的值 恢复程序开始时的环境 7 运行程序总要返回最后一个表达式的值 第40行 princ 返回了一个没有任何值的结果 实现了静默退出 8 绘制直线和书写文本的数据 是参照GB T14689 1993 GB T10609 1989计算之后得到的 9 加载该程序 切换到AutoCAD窗口 在命令 提示下 键入A4 输入零件名称 材料 数量和绘图比例 即可得到图8 2所示的图框和标题栏 8 4尺寸标注1 长度型尺寸标注长度型尺寸标注需要确定尺寸线是水平 垂直还是指定的方向 如果默认尺寸测量值即为尺寸文本 那么关键是确定其第1条尺寸界线起点的位置p1 第2条尺寸界线起点的位置p2和尺寸线的位置p3 尺寸界线的起点通常与确定图形对象的点重合 因此可看作是已知的 于是剩余的工作就是确定位置尺寸线的位置p3 例如 以下两个表达式可得到图8 3 a 所示的直线p1p2 setqp1 1010 p2 5020 p3 3025 command line p1p2 1 指定尺寸线为水平或垂直方向的长度型尺寸标注 command dimlinear p1p2 h p3 该表达式的说明如下 dimlinear command函数调用标注长度型尺寸的命令 p1 p2 第1 2条尺寸界线起点的位置 h 尺寸线的方向 可以是水平方向 也可以是垂直方向 v 还可以指定为其他方向 Rotated 若选择其他方向 其后需增加角度数值 p3 确定尺寸线的位置点 可以是一个变量 如该例 可以是一个字符串 x y 串内的x y确定了p3点在当前坐标系下的位置 如 30 25 也可以用相对于第2条尺寸界线的起点p2的位置来确定它 这样会方便得多 其格式如下 x y 表示相对于 x表示相对于p2点的X方向的增量 y表示相对于p2点的Y方向的增量 由于选项h已将其确定为水平型 所以x或 x可以为任意数值 command dimlinear p1p2 h p3 command dimlinear p1p2 h 30 25 command dimlinear p1p2 h 20 5 以上3个表达式用不同的形式确定了尺寸线的位置 见图8 3 a 它们的效果相同 但用最后一个表达式较为方便 其表达式不含有m或t选项 表示默认尺寸测量值为尺寸文本 a b 图8 3水平方向的尺寸标注如果要标注尺寸线为垂直方向的尺寸 只需将以上表达式中的 h 改为 v 即可 例如 setqp1 1010 p2 4025 p3 4525 command line p1p2 command dimlinear p1p2 v p3 结果见图8 3 b 2 默认尺寸线方向的长度型尺寸标注如果不指定尺寸线的方向 p3点与p1 p2点的相对位置确定了尺寸线的方向 若p3点的X坐标在p1 p2点的X坐标之外 而且p3点的Y坐标在p1 p2点的Y坐标之间 尺寸线为垂直方向 其图8 4用p3点确定尺寸线为垂直方向他情况的尺寸线为水平方向 如果去掉上述3个表达式中的 h 选项 其结果不变 因为p3点的X坐标在p1 p2点的X坐标之间 若改为以下表达式之一 command dimlinear p1p2 4515 command dimlinear p1p2 45 15 command dimlinear p1p2 5 5 将得到该直线的尺寸线为垂直方向的标注 见图8 4 2 对齐型尺寸标注对齐型尺寸标注的特点是 尺寸线的方向是确定的 它与被标注对象的两个端点或指定的两尺寸界线起点的连线平行 以下两个表达式绘制了图8 5所图8 5对齐型长度尺寸标注示的长度为40的一段直线 setqp1 1010 p2 polarp1 0 1pi 40 p3 3525 command line p1p2 以下每个表达式都能生成图8 5所示的对齐型长度尺寸标注 command dimaligned p1p2p3 command dimaligned p1p2 35 25 command dimaligned p1p2 13 04 2 64 以上表达式中各参数的含义与长度型尺寸标注中各参数的含义相同 3 直径型和半径型尺寸标注直径型和半径型尺寸标注需要首先选择被标注的圆或圆弧 然后确定尺寸线的位置 如果默认尺寸测量值为尺寸文本 用 作为默认的选择即可 1 直径型尺寸标注以下两个表达式绘制了图8 6 a 所示的一个圆 setqpc 100100 r12 5p1 polarpc012 5 p2 105105 command circle pcr a b 图8 6直径型和半径型尺寸标注 在上述表达式中 p1是圆的选择点 p2点确定了尺寸线的位置和方向 字符串105 105是当前坐标系下的坐标 字符串 7 5 5是相对于选择点p1的X方向的增量和Y方向的增量 由于默认尺寸的测量值 所以尺寸文本的第一个字符为直径符号 2 半径型尺寸标注以下两个表达式绘制了图8 6 b 所示的一个圆弧 setqp1 10087 5 p2 112 5100 p3 87 5100 p4 105105 command arc p1p2p3 以下每个表达式都能生成图8 6 b 所示的半径型尺寸标注 command dimradius p2p4 command dimradius p2 105 105 command dimradius p2 7 5 5 在上述表达式中 p2是圆弧的选择点 p4点确定了尺寸线的位置和方向 字符串105 105是当前坐标系下的坐标 字符串 7 5 5是相对于选择点p2的X方向的增量和Y方向的增量 由于默认尺寸的测量值 所以尺寸文本的第一个字符为半径符号R 4 角度型尺寸标注标注两条直线的夹角是最常见的角度型尺寸标注 需要首先选择被标注的两条直线 然后确定尺寸线的位置 如果默认尺寸测量值为尺寸文本 用 作为默认的选择即可 以下两个表达式绘制了图8 7 a 所示的两条直线 setqp1 500 p2 200 p3 4020 p4 4014 command line p1p2p3 以下每个表达式都能生成图8 7 a 所示的角度型尺寸标注 command dimangular p1p3p4 command dimangular p1p3 40 14 command dimangular p1p3 0 6 在上述表达式中 p1是第一条直线的选择点 p3是第二条直线的选择点 p4点确定了尺寸弧线的位置 字符串40 14是当前坐标系下的坐标 字符串 0 6是相对于选择点p3的X方向的增量和Y方向的增量 由于默认尺寸的测量值 所以尺寸文本的最后一个字符为度的单位符号 图8 7 a 中尺寸文本 45 的书写方向与尺寸弧线中点的切线方向相同 可能不符合某些单位的制图标准 改写为以下的表达式之一 可以得到图8 7 b 的结果 command dimangular p1p3 A 0 01p4 command dimangular p1p3 A 0 01 40 14 command dimangular p1p3 A 0 01 0 6 其中A是尺寸文本的旋转角度选项 其后是旋转角度的数值 由于AutoCAD不接受0 方向 因此取其近似值0 01 a b 图8 7角度型尺寸标注 5 设置尺寸变量 1 尺寸变量的作用尺寸变量属于系统变量 用来控制尺寸线 尺寸界线 尺寸文字和尺寸箭头等要素的样式 大小和它们之间的相对位置 公制 Metric 和英制 English 的尺寸变量的初值是不同的 例如 尺寸文字的高度 前者为2 5 后者为0 18 本章介绍的尺寸变量的初值均是公制状态的初值 2 常用的尺寸变量AutoCAD提供了近80个尺寸变量 最常用到的有以下几个 1 DIMSCALE 总尺寸比例因子 初始值为1 2 DIMTAD 如果为0 长度型尺寸的尺寸文字注在尺寸线中间 否则注在尺寸线的上方 初始值为1 如图8 8所示 3 DIMTIH 如果为0 长度型尺寸两尺寸界线之内的尺寸文字与尺寸线方向一致 否则为水平方向 初始值为0 如图8 8所示 4 DIMTOH 如果为0 长度型尺寸两尺寸界线外侧的尺寸文字与尺寸线方向一致 否则为水平方向 初始值为0 如图8 8所示 图8 8控制尺寸文字与尺寸线方向 5 DIMTIX 如果为0 不强制尺寸文字在两尺寸界线之内 否则强制尺寸文字在两尺寸界线之内 初始值为0 如图8 9所示 图8 9控制两尺寸界线之内是否有尺寸文字或直线 6 DIMTOFL 如果为0 箭头在两尺寸界线外侧时 内部无直线 否则内部有直线 初始值为1 如图8 9所示 7 DIMZIN 如果为8 舍弃无效的尾零 例如 10 0000注为10 12 5000注为12 5 初始值为8 8 dimdsep 确定实型数值整数与小数部份的分隔字符 初始值为 应该设置为 9 dimlfac 长度型 直径型和半径型尺寸测量值的比例因子 初始值为1 0 例如 将该变量设置为2 实际直径为100的圆 其尺寸测量值为200 默认的选择将得到 200 的标注结果 10 dimtsz 如果为0 标注普通箭头 否则将普通箭头设置为建筑工程图中的短斜线 初始值为0 11 DIMTOL 如果为0 不标注公差 否则标注公差 12 DIMTP 尺寸上偏差 初始值为0 0000 13 DIMTM 尺寸下偏差 初始值为0 0000 3 修改尺寸变量的值因为尺寸变量属于系统变量 所以既可以通过setvar函数 也可以通过command函数修改尺寸变量的值 以下是修改上述尺寸变量的表达式 setvar dimscale 2 设置尺寸标注总比例因子为2 setvar dimtad 1 设置尺寸文本在尺寸线的上方 setvar dimtih 0 设置两尺寸界线之内的尺寸文本与尺寸线方向相同 setvar dimtoh 0 设置两尺寸界线外侧的尺寸文本与尺寸线方向相同 setvar dimtix 1 强制尺寸文本在两尺寸界线之内 setvar dimtofl 1 小尺寸标注时在两尺寸界线之内增加连线 setvar dimzin 8 舍去尺寸数字的无效尾0 setvar dimdsep 设置字符 作为尺寸数字中整数与小数部份的分隔符 setvar dimlfac 2 设置长度尺寸的测量值是实际值的2倍 setvar dimtsz 2 5 设置短斜线的长度并取代普通箭头或者 command dimscale 1 设置尺寸标注总比例因子为1 command dimtad 0 设置尺寸文本在尺寸线之间 command dimdsep 设置字符 作为尺寸数字中整数与小数部份的分隔符 6 处理尺寸文本的测量值尺寸的测量值是AutoCAD根据所选的对象 尺寸界线的起点和尺寸线的方向计算得到的 对于尺寸的测量值 用户只有满意 不满意和部份满意三种情况 所谓部份满意 就是对尺寸数值满意 但缺少尺寸数值的前缀或后缀 1 默认尺寸的测量值如果尺寸的测量值和期待生成的尺寸文本完全一致 在这种情况下应该选择默认 即表达式中不含 m 或 t 选项 此前的一些实例都属于这种情况 2 用自己输入的文本作为尺寸文本如果不想使用尺寸的测量值 在确定尺寸线位置时增加 m 或 t 选项 随后输入自定的文本即可 将前面相应的表达式改写如下 command dimlinear p1p2 h t c50 p3 见图8 10 a command dimaligned p1p2 t 60cm p3 见图8 10 b command dimdiameter p1 t 2X c50 p2 见图8 10 c command dimradius p2 t R10 p4 见图8 10 d command dimangular p1p3 A 0 01 t 45 5 d p4 见图8 10 e a b c d e 图8 10用自己输入的文本作为尺寸文本 3 为尺寸的测量值增加前缀或后缀有时虽然对尺寸的测量值满意 但是还不够 还需要为尺寸的测量值增加前缀或后缀 例如图8 11 尺寸240需要增加前缀 4 60 尺寸 40需要增加前缀 5 解决的办法是 在确定尺寸线位置时增加 text 或 t 选项 随后输入以下字符串 前缀内容后缀内容 其中表示使用尺寸的测量值 可以缺少前缀或后缀的内容 例如生成图8 11所示3个尺寸的表达式如下 command dimlinear p1p2p3 command dimlinear p1p4 t 4X60 p5 command dimdiameter p6 t 5X p7 图8 11增加前缀的尺寸图8 12中需要增加前缀和后缀的尺寸 其表达式如下 command dimdiameter p1 t 4X锪平 c45 p2 command dimdiameter p3 t 深10 p4 图8 12增加前缀或后缀的尺寸 8 5调用AutoCAD的图形编辑功能1 用程序调用图形编辑功能的好处 1 利用已生成的图形对象构造出新的图形对象 例如图8 13的图形有4个螺纹孔 只需绘制1个 其余调用AutoCAD的copy命令即可 图8 13有4个螺纹孔的长方形底板 2 提高编程效率 例如图8 13所示的图形的轮廓线是由4段直线和4个圆弧组成的 可以先计算出每条直线的端点 每个圆弧的端点和中心 再调用line和arc命令绘制出该轮廓线 也可以先绘制倒圆角之前的矩形 然后调用AutoCAD的fillet命令 倒出矩形的4个圆角 显然 后一种方法要简便一些 3 将复杂的几何运算交给AutoCAD的命令去完成 例如图8 14所示轴的断面图 它的轮廓线是由1个圆弧和3段直线组成的 p1 p2点是圆弧和直线的共有端点 如果觉得像例6 2那样求解它们的坐标比较麻烦 那么可以首先绘制圆和p4p3 p3p5和p5p6三段直线 然后调用AutoCAD的trim命令 经过trim命令的修剪得到该图的轮廓线 图8 14轴的断面图 例8 3 绘制图8 13所示的4个带有中心线的螺纹孔 和交互作图一样 首先绘制一个带有中心线的螺纹孔 然后再复制3个螺纹孔 以下几个表达式生成了图8 15 a 所示的两条中心线和1个螺纹孔 command layer m zhongxin l center command line 5 0 5 0 command line 0 5 0 5 command layer m cuxian lw 0 3 command circle 0 0 3 command layer m xixian command arc 3 5 0 0 3 5 0 3 5 command zoom a 为确保选到指定的图元 显示整个作图范围以下表达式调用copy命令 复制3个带中心线的螺纹孔 见图8 15 b command copy w 5 5 5 5 0 0 12 0 24 0 36 0 对该表达式的各项说明如下 copy 调用的复制命令 w 整体在窗口内的图形对象被选中 5 5 窗口一个角点的坐标 5 5 窗口另一个角点的坐标 结束选择对象的操作 0 0 复制图形对象时位移矢量的第1点 12 0 24 0 36 0 位移矢量的第2点 结束复制 该例利用窗口选项 w 和随后窗口的角点坐标 将整体在窗口内的图形对象选中 此项若为 c 将与窗口区域相交的图形对象选中 此项若为 l 最新生成的图形对象被选中 若不输入选项直接输入一个点 则认为是单点选择 a b 图8 15复制两条中心线和1个螺纹孔 例8 4 绘制图8 13所示的带有4个圆角的轮廓线 以下表达式绘制矩形 command layer m cuxian command line 7 6 43 6 43 6 7 6 c command zoom e 为确保选到指定的图元 尽可能大地显示图形对象以下表达式倒图8 16所示的矩形的4个圆角 command fillet r 1 5 设置圆角半径 command fillet 7 0 18 6 倒左下圆角 command fillet 18 6 43 0 倒右下圆角 command fillet 43 0 18 6 倒右上圆角 command fillet 18 6 7 0 倒左上圆角 图8 16倒矩形的4个圆角也可以调用绘制矩形命令 因为矩形是一个封闭的多义线 因此 输入选项 p 再选中这个矩形 一次即可倒完4个圆角 其表达式如下 command layer m cuxian command rectangle 7 6 43 6 绘制矩形 command fillet r 1 5 设置圆角半径 command fillet p 18 6 倒圆角 例8 5 绘制图8 17 c 所示的轴的断面轮廓线 以下两个表达式生成了图8 17 b 所示的1个圆和3段直线 command circle 0 0 40 command line 50 11 31 11 31 11 50 11 以下表达式调用AutoCAD的trim命令 得到图8 17 c 的修剪后的图形 command zoom e 为确保选到指定的图元 尽可能大地显示图形对象 command trim All 40 0 50 11 50 11 对该表达式的各项说明如下 trim command函数调用的修剪命令 All 所有的图形对象作为剪切边 选择剪切边的操作结束 40 0 被剪对象的位置 该点为圆上一点 指出该段是为要剪去的圆弧 50 11 50 11 被剪对象的位置 此两点为直线上的点 指出该段是为要剪去的线段 修剪命令结束 a b c 图8 17绘制轴的断面轮廓线 2 选择图形对象的注意事项 1 用传统的方法选择图形对象时 必须确保被选图形对象在当前屏幕作图区而且是可见的 否则将选不到待选择的图形对象 如果待选择的图形对象所在图层处于锁定状态 应该事先将图层解锁 如果待选择的图形对象不在屏幕作图区 应该调用zoom或pan命令 尽可能大地显示待编辑的图形对象 2 单点选择图形对象时 拾取框不宜过大或过小 若过大 不想选取的图形对象被选中 特别是在图形对象较密集时 若过小 指定位置的拾取框可能碰不到待选择的图形对象 此时应该用setvar函数设置系统变量pickbox 调整拾取框的大小 可变范围0 50像素 3 当图形对象较密集时 可以利用图层的off或freeze选项 关闭或冻结那些与当前作图无关的图形对象所在的图层 4 还可以通过图元的名字指定图元 这是最可靠的选择图元的方法 详见第9章 8 6调用图案填充功能图案填充即填加剖面线或剖面符号 AutoCAD有bhatch和hatch两个实现图案填充的命令 bhatch命令允许在需要填充的区域指定一个点 自动确定填充边界 hatch命令需要用户确定填充的边界 前者要求填充区域必须是封闭的 后者对封闭的要求并不严格 例如扩充例8 5程序的功能 在图8 17 c 所示的轴的断面轮廓线内填加剖面线 结果见图8 17 a 1 自动确定边界的填充增加以下表达式 command layer m poumian command bhatch p ansi31 1 50 0 0 该表达式各项含义如下 bhatch 自动确定边界的填充命令 p 拾取 pick 点的方式 ansi31 剖面线的名称 1 5 剖面线的比例因子 0 剖面线的旋转角度 0 0 拾取点的位置 结束拾取点的操作 2 指定边界的填充增加以下表达式 command hatch ansi31 1 50 w 40 40 40 40 该表达式中一些参数的含义如下 hatch 指定边界填充命令 w 窗口选择方式 40 40和40 40 窗口的两个角点 结束选择填充边界的操作 其余参数的含义与自动确定边界填充表达式中对应参数的含义相同 8 7定义绘制曲线的命令设曲线的方程为y f x 若Xmin x Xmax 绘制该方程对应的曲线 用连续多段的直线代替曲线 每段直线的长度越短 曲线就越逼真 图8 18是绘制曲线y f x 的程序流程图 图8 18绘制曲线y f x 的程序流程图 例8 6 定义绘制渐开线的命令渐开线 参照图8 19 的参数方程为 x r cos sin y r sin cos 定义绘制渐开线命令的源程序如下 defunc inv p0phiphimaxphimindphinx0y0 x1y1x2y2 setqp0 getpoint n输入基圆的圆心 setqr getdistp0 n输入基圆的半径 command circle p0r 绘制基圆 setqphimin getreal n输入渐开线的起始角 弧度 setqphimax getreal n输入渐开线的终止角 弧度 setqdphi getreal n输入角度增量 弧度 setqn fix phimaxphimin dphi n为曲线的段数 函数fix的功能是截去小数 图8 19渐开线 setqdphi phimaxphimin n 修正dphi setqx0 carp0 y0 cadrp0 得到基圆圆心的坐标x0 y0 setqphiphimin setqx1 x0 r cosphi phi sinphi x1 x0 r cos sin setqy1 y0 r sinphi phi cosphi y1 y0 r sin cos while phiphimax while循环开始 setqphi phidphi setqx2 x0 r cosphi phi sinphi setqy2 y0 r sinphi phi cosphi command line listx1y1 listx2y2 画直线 setqx1x2y1y2 下一段直线的起点等于该段直线的终点 while循环结束 以上命令绘制的是首尾连接的多段直线构成的曲线 用以下源代码替换上述程序的while循环开始至while循环结束部分 将绘制一条由多个顶点确定的二维多义线 command pline listx1y1 调用command函数 while phiphimax setqphi phidphi setqx1 x0 r cosphi phi sinphi setqy1 y0 r sinphi phi cosphi command listx1y1 调用command函数 command 8 8定义参数化绘图的命令用参数约束图形 改变参数的值 图形就随之改变 这样的图形即为参数化的图形 在机械领域 定型的系列产品占有相当大的比例 其中绝大多数的零 部件具有相同的形状特征 如果将这些图形参数化 只要改变参数的值 图形系统就自动地完成图形的修改工作 图形参数化的好处是 1 设计人员不必把主要精力放在绘图上 可以只输入确定图形的参数 由程序绘制出完整的图形 这样 设计人员才能把主要精力放在零 部件的设计上 才能充分发挥设计人员的创造性 2 优先保证了重要的尺寸 如设计尺寸 性能尺寸 因此可以支持快速的修改设计 可以有效地利用以前的设计结果 由于AutoCAD提供了AutoLISP语言 因此 可以通过程序实现图形的参数化 下面以定义绘制螺钉和标注表面粗糙度符号等命令为例 介绍编写参数化绘制图形程序的方法和步骤 例8 7 定义参数化绘制开槽圆柱头螺钉的命令 1 确定绘制螺钉的参数 除了螺钉的定位点p0 旋转角alf外 从国家标准GB T65 2000可以查到 螺钉结构的主要参数有大径d 长度l 及螺钉头部的k dk n t 如果参数过多 用户会感到不便 在满足应用的条件下 可以将次要参数作为主要参数的表达式 例如 螺钉
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- Stearoyl-L-carnitine-chloride-Standard-生命科学试剂-MCE
- rac-Butoconazole-d5-Nitrate-生命科学试剂-MCE
- 报关员资格证考试题型及答案
- 第4课 希腊城邦和亚历山大帝国 课件 九年级历史上册
- 海水考试题及答案
- 保安队长笔试考试题目及答案
- 电测仪表理论知识培训课件
- 2025年筛分设备项目规划申请报告
- 高考历史考试题及答案:元代山西晋商的早期商业活动(如盐业)
- 高考历史考试题及答案:宋代福建地区的瓷器烧制(德化瓷)
- 夫妻流产同意协议书
- 《氢化工基础》课件-4.非均相分离
- 小儿麻醉护理课件
- DB64 2000-2024 自然资源调查监测技术规程
- DB22-T3409-2022-餐饮用醇基液体燃料安全使用技术规范-吉林省
- 项目经理考核试题及答案
- 车载信息娱乐系统的设计与开发-全面剖析
- 安检岗位培训课件模板
- 2025-2030中国水产饲料原料和产品行业市场现状供需分析及投资评估规划分析研究报告
- 腹膜透析换液操作医学
- 静电检测专业知识培训课件
评论
0/150
提交评论