特别行政区界线lisp

您所在的位置:网站首页 lisp实现边画图边标注 特别行政区界线lisp

特别行政区界线lisp

2024-07-09 10:13| 来源: 网络整理| 查看: 265

(1).程序设计思想

AutoLISP是内嵌于AutoCAD的一种表处理语言,能直接访问图形数据库,通过修改图形数据对图形进行操作,是扩充AutoCAD图形处理能力的有力工具,我们在设计程序时采用了模块化结构,将程序要完成的功能目标划分为查询和注写两个主要功能项,利用DCL语言设计出程序界面。主程序建立在界面驱动程序的基础上,通过定义相应的回调函数来实现其功能。利用AutoCAD的“appload”命令对程序进行装载,装载成功后,主函数名即可作为AutoCAD的命令使用。用户先选择需要添加公差的尺寸,程序获得该尺寸的基本尺寸数值,然后显示对话框供用户直接输入数据或选择查询方式,最后调用子程序注写该尺寸的公差文本。开始

选择尺寸 显示对话框 放弃 结束对话框程序终止 调用预览图片子程序 输入偏差数值 手工输入 设置参数 公差格式 查询输入文字高度 确定

注写极限偏差 图4 程序流程图 程序界面

(2)公差数值的存储与查询公差数值的存储与查询是实现公差自动标注的关键之一。若使用外部数据库进行数据存储则在查询数据时需要使用中间文件,速度较慢。“表”是AutoLISP中最常用的数据记录工具,用表数据结构可以根据需要构建二维、三维甚至多维数组;利用表的检索函数可以快速地对表进行数据提取。对表的强大处理能力是我们选择AutoLISP的另一个理由。我们按尺寸分段将国家标准中的基本偏差表设计成AutoLISP表的形式,为了缩短查询时间按照孔、轴分别建立了一个二维表,通过变量在程序运行时将表调入内存。表中每一个元素包含上偏差和下偏差数值。在查询模块中利用基本尺寸、公差等级、配合代号作为输入参数,得到偏差数值所在的维数,从而查出该尺寸的上下偏差数值。

查询语句如下: … (setq pc (nth m (nth n pcb))) (setq pc_s(nth 0 pc))

(setq pc_x(nth 1 pc)) …

pcb是偏差表,m、n是根据输入参数得到的维数,pc_s、pc_x分别是上、下偏差值。(3)公差的注写由于程序采用的是对已经标注的尺寸添加公差的办法,而不是简单的注写text文本,所以添加上的公差文字与原尺寸文本是一个整体,这样就要用到AutoCAD的实体访问技术了。

AutoCAD在绘图过程中赋予所绘实体一个数字标号,称为图元名,它是指向由AutoCAD保持的一个内部数据文件的指针。通过图元名AutoLISP就能找到该实体的数据库记录,并对实体进行各种方式的处理。程序通过entsel函数返回用户所选择的尺寸的图元名,然后由

entget函数获得尺寸实体的定义数据,其中组码1的内容就是用户输入的尺寸文本,通过对其进行修改,加入上下偏差的数值就可以实现我们的目的了。

其中部分代码如下:

… (setq updata(strcat "\A1;" jbcc "{\H" gdxs "x;" "\S" pc_s "^" pc_x ";}")) ;

jbcc是该尺寸的基本尺寸数值;gdsx是公差文字的高度。

(setq updata (cons 1 updata))

(setq dimobj(subst updata (assoc 1 dimobj) dimobj))

(entmod dimobj) …

组码内容修改完成后须用entmod函数更新图形数据库,所作的修改才会显示出来。该程序在AutoCADR14、AutoCAD2000上调试通过,涵盖了全部尺寸标注方式,可大大提高尺寸标注的速度。结束语本文总结了在AutoCAD中进行尺寸公差标注的几种途径,特别是如何用编程的方法实现尺寸公差的自动标注。AutoCAD是一个通用的绘图平台,在此基础上进行各种专业应用程序的开发则可以大大提高工作的效率,这也正是AutoCAD最吸引人的地方――在其强大功能基础上的开放性。

标注样式的属性值对照~~

命令: -dimstyle

当前标注样式: ISO-25 注释性: 否

输入标注样式选项

[注释性(AN)/保存(S)/恢复(R)/状态(ST)/变量(V)/应用(A)/?]

: st

DIMASO 关 创建标注对象

DIMSTYLE ISO-25 当前标注样式 (只读)

DIMADEC 0 角度小数位数

DIMALT 关 选定的换算单位

DIMALTD 3 换算单位小数位数

DIMALTF 0.0394 换算单位比例因子

DIMALTRND 0.0000 换算单位舍入值

DIMALTTD 3 换算公差小数位数

DIMALTTZ 0 换算公差消零

DIMALTU 2 换算单位

DIMALTZ 0 换算单位消零

DIMAPOST 替换文字的前缀和后缀

DIMARCSYM 0 弧长符号

DIMASZ 2.5000



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3