(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

特别行政区界线lisp_[转载]用AUTOLISP实现标注公差的方法~~(转自无忧)相关推荐

  1. 特别行政区界线lisp_用AUTOLISP实现标注公差的方法~~(转自无忧)

    (1).程序设计思想 AutoLISP是内嵌于AutoCAD的一种表处理语言,能直接访问图形数据库,通过修改图形数据对图形进行操作,是扩充AutoCAD图形处理能力的有力工具,我们在设计程序时采用了模 ...

  2. c++ 箭头符号怎么打_焊接图纸符号标注图解示例,焊接符号标注实例及方法

    基本坡口符号 坡口符号 (注:图中"破"应为"坡") 焊接图纸符号标注图解示例 焊接符号标注实例及方法 在焊接结构图样上,焊接方法可按国家标准GB5185-85 ...

  3. linux+守护进程+php,【转载】Linux 守护进程的编程方法

    [转载]Linux 守护进程的编程方法 原文见: http://www.linuxdevelop.org/tingxx/show.php?table=c&id=3 Linux 守护进程的编程方 ...

  4. 天正如何批量导出坐标_教你学会天正CAD软件批量标注坐标的方法

    天正CAD软件批量标注坐标的方法如下: 步骤一.打开我们需要批量标注坐标的CAD图纸. (1)我需要提前对图纸进行坐标定位,核对定位坐标无误后才能开始批量标注坐标,否则所做的工作都是无效的: (2)在 ...

  5. 检测网数据集标注即使用方法(猫狗数据集)

    检测网数据集标注即使用方法(猫狗数据集) 我用的是yolo 检测框架,其训练环境名为 darknet. 整个过程包含已经标注好的猫狗数据集(jpg和json),和提取信息的python程序即训练前的准 ...

  6. 特别行政区界线lisp_CAD 系统变量参数大全 - AutoLISP/Visual LISP 编程技术 - CAD论坛 - 明经CAD社区 - Powered by Discuz!...

    本帖最后由 1291500406 于 2019-1-29 20:52 编辑 CAD 系统变量参数大全 一.数学运算功能函数 1.1(十  数值 数值-)返回:累计实数或整数数值 1.2(一  数值 数 ...

  7. cad标注文字避让lisp_请教大家如何将标注标准设定“文字位置设置为置中”

    请教大家如何将标注标准设定"文字位置设置为置中"非常感谢. ;;;**************************** ACAD标注标准设定.LSP ************* ...

  8. 长方形与圆最近连线LISP_编写一个AutoLISP程序,画出一个边长为A的正方形,以及该正方形的内切圆,正方形的底边与正X轴的夹角为ANG...

    满意答案 hhmeme 2013.12.15 采纳率:51%    等级:12 已帮助:9370人 (defun c:zfx(/ A ANG p1 p2 p3 p4 p5 os cmd) (SETQ ...

  9. CAD高版本窗体阵列LISP_[转载]AutoCAD高版本怎么把阵列对话框调出来?

    AutoCAD低版本阵列ARRAY命令的参数设置用是对话框形式,到了高版本使用功能区界面后,不再使用对话框,而是会在功能区弹出一个"阵列"选项卡,如下图所示. 新版阵列还有一个不同 ...

最新文章

  1. Solr环境搭建及IK分词的集成及solrJ的调用(一)
  2. Linux 系统配置Java Idea Tomcat 全过程
  3. python if name main 的作用_Python中if __name__ == __main__: 的作用
  4. mysql数据库表复制备份_mysql数据库的备份以及表格数据之间的复制
  5. 信安教程第二版-第20章数据库系统安全
  6. WPF教程尝试(修正部分格式)
  7. Redis bgsave 线上分析
  8. ubuntu MySQL的卸载
  9. 微积分(二)——曲线积分与曲面积分笔记
  10. Android 电容屏和电阻屏
  11. ddr3ddr4 lpddr4速率_Ddr2,ddr3,ddr4内存条的读写速率
  12. 信用卡 3D 认证是怎么回事
  13. 为解决iPhone绿屏问题,苹果将和这家中国公司合作
  14. ES2016/ES2017/ES2018/ES2019 新语法
  15. php怎么自动识别车牌号,你知道车牌识别系统是如何自动识别车牌的吗?
  16. 登陆时做下双因子验证
  17. spring context:property-placeholder无法加载配置文件,导致属性无效
  18. 同在Google工作,薪资差别怎么那么大!
  19. 太赫兹时域光谱与频域光谱
  20. raphael参数说明

热门文章

  1. 跨专业读研的心态:风雨过后,方见彩虹
  2. 简要说明html5工作原理,简要说明PLC的工作原理?
  3. Android 内置多个launcher 设置默认launcher
  4. 【Docker 运维】Docker迁移至新磁盘
  5. 防止数据恶意重复提交的方法
  6. 计算机电学原理,什么是与门电路及与非门电路原理?
  7. 从数据备份保护到完整生命周期管理平台,爱数全新发布 AnyBackup Family 8
  8. 3D劲舞游戏 Dance Mixer 简体中文汉化版+常见问题(更新1.1补丁 汉化) 1
  9. 记录一个异步任务丢失request的坑,RequestContextHolder.setRequestAttributes(sra, true);异步线程中会丢失
  10. The Bakery(DP+线段树)