基于AutoLISP语言CAD二次开发浅析及功能实现.docVIP

基于AutoLISP语言CAD二次开发浅析及功能实现.doc

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
基于AutoLISP语言CAD二次开发浅析及功能实现

基于AutoLISP语言CAD二次开发浅析及功能实现摘要:Autocad 是工程建设普遍使用的一种功能强大的绘图软件,而且可以进行用户的二次开发。本文介绍了基于AutoLISP语言的CAD二次开发过程,并例举了部分功能实现的代码和调用过程,以期节约时间,提高CAD绘图效率。 关键词:AutoLISP语言,Autocad二次开发,坐标点提取 1.AutoLISP语言 AutoLISP 语言嵌套于Autocad内部,它是LISP语言与Autocad有机结合的产物,是为二次开发Autocad而专门设计的编程语言。 AutoLISP采用了和CommonLISP 最相近的语法和习惯约定,它具有CommonLISP 的特性,又针对autoLISP 增加了许多功能。它可以把autoLISP程序和autocad的绘图命令结合起来,使设计和绘图完全融为一体,方便了对屏幕图形的实时修改,参数化设计和交互设计,为在绘图领域应用人工智能提供了方便。AutoLISP语言嵌入autocad之后,Autocad就不再只是交互式的图形绘制软件,而成为了真正能够进行计算机辅助设计绘图的cad软件。 2. AutoLISP语言结构 AutoLISP 数据类型丰富,包括:整型、实型、字符串、表、文件描述符、Autocad 的图元名、Autocad 的选择集等。AutoLISP 处理的对象是符号表达式,简称表达式。表达式相当于其他编程语言中程序的语句,是由原子或表构成的。原子可以细分为数原子,串原子和符号原子。多数情况下,AutoLISP 表达式以表的形式存在,其格式如下所示: (函数名 [参数]……) 每个表达式以左括号开始,并由函数名及参数组成,左括号后的第一个元素必须是函数名。参数的数量可以是任意多个,也可以是0个,这取决于具体函数,每个参数也可能是表达式。表达式以右括号结束,每一个表达式的返回值都能被外层表达式使用,最后计算的值被返回到调用的表达式。 AutoLISP变量名称可以由任何可写字符以任意顺序组成,如字母、数字、符号等;但是不可以全部由数字组成,而且不能包含下列字符:小数点“.” 括号 “()” 分号“;”单引号“”双引号“””。变量的数据类型是变量的重要特征,因为它关系到存放变量的存储空间的大小。大多数计算机语言在为变量赋值前都会对变量进行说明,而AutoLISP 无需对变量做事先的类型说明,变量的数据类型就是变量被赋予的值的数据类型。 AutoLISP函数包含基本函数和用户输入函数,基本函数主要有:数值函数、字符串处理函数、表处理函数、符号操作函数、函数处理函数、错误处理函数、条件和循环函数和应用程序管理函数等。 3. 图形坐标点的自动提取程序实例 在实际工程的工作中,经常根据需要在CAD中提取点坐标,这项工作不但工作量变大,而且还容易出现错。本例通过AutoLISP程序来实现坐标点的自动提取,以减轻工作量,减少提点错误。 程序名称:xzbd(写坐标点) 功能:将选取的直线各顶点坐标写到外部文件,并在提取点坐标的地方画一个圆,以便查找遗漏。 程序内容: (defun c:xzbd()定义一个命令xzbd(写坐标点) (setvar “cmdecho” 0) setvar 函数设定系统变量cmdecho 的值为0以关闭回显 (setq ffn (getfiled “选取文件” ““ “doc” 1)) 调用存储提取出坐标点的文档,并将返回值赋给变量ffn。 (setq ff (open ffn “w”))以写的方式打开文件ffn,将坐标点写入文档中,并将返回值赋 给变量ff。 (close ff) 关闭文件ff (princ “\n选取直线...”) 用princ函数提示用户选取直线。 (setq ss (ssget))构造一个空的选择集,并将选择集函数赋值给变量ss。 (setq i 0) 把0赋值给变量i。 (setvar “pdmode” 33) 以所选定的方式显示点对象。 (repeat (sslength ss)确定选择集ss中实体的个数,并重复实体个数次数的计算。 (setq ssn (ssname ss i))返回选择集ss中第i个元素所表示的实体,并赋值给变量ssn。 (setq endata (entget ssn))返回包含实体所定义的一个表,并赋值给变量endata。 (setq n 0) 利用setq函数将0赋值给变量n。 (repeat (length endata)并重复endata长度次数的计算。 (setq pp

文档评论(0)

linsspace + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档