佳工机电网 在线工博会 我的佳工网 手机版 English
关键字  
  选择展区 >>
您的位置: 首页 > CAD/CAM/PDM/PLM展区 > CAD/CAM软件展厅 > 产品库 > 技术论文 > 正文 产品库 会展 人才 帮助 | 注册 登录  
CAD/CAM软件
 按行业筛选
 按产品筛选
查看本类全部文章
e展厅 产品库 最新动态 技术文章 企业目录 资料下载 视频/样本 反馈/论坛
  技术应用 | 基础知识 | 外刊文摘 | 业内专家 | 文章点评 投稿 发表科技文章 
AutoCAD扩展实体数据的分析与应用
newmaker
欢迎访问e展厅
展厅
1
CAD/CAM软件展厅
CAD软件, CAD/CAM, CAM, 钣金CAD/CAM, CAI, ...
引 言

AutoCAD作为国际上最流行的CAD绘图软件在国内的应用日益广泛。自11.0版本以后,Autodesk公司在AutoCAD引入了扩展实体数据的概念,为广大用户提供了更强的二次开发功能。借助扩展实体数据,用户可以很方便地在图形实体中按不同的需求分门别类地存取不同的非图形数据,如设计人员关心产品的材料、重量,而财务人员则关心产品的成本、价格等。众所周知,利用"块"属性可以存取非图形数据,而且这也是在AutoCAD 11.0版本以前用户能够在图形中存取非图形数据的唯一方法,但现在通过扩展实体数据,非图形数据的存取将变得更加灵活、方便。事实上 ,AutoCAD 12.0 ASE正是利用图形中位于"ACADASE"图层的POLYLINE扩展实体数据来保存图形实体与外部数据库之间的连接关系。本文拟对AutoCAD 12.0版扩展实体数据的结构作详细的分析,并结合实际应用介绍有关的程序代码,与各位同仁切磋。

1、扩展实体数据的结构

AutoCAD扩展实体数据是在常规的图形数据基础上增加的按一系列分类代码组合而成的数据块,它与常规实体数据一起构成内容更加广泛的实体数据。由于不同的应用场合要求存取不同的数据,因此扩展实体数据按应用类型分组,形式如下:

(-3 ("AppName" (代码.数据) (…) ) ("AppName"(代码.数据) (…)) (…)))

其中,-3表示扩展数据开始;

AppName是最大长度为31字节的字符串,为已经登记的应用类型名;

代码及对应的数据类型见下表:

举例如下:
((-1.) (0."TEXT") (5."2F") (67.0) (8."0") (10 172.586 246.388 0.0) (40.32.729) (1."5") (50.0.0) (41.1.0) (51.0.0) (7."STANDARD") (71.0) (72.0) (11 0.0 0.0 0.0) (210 0.0 0.0 1.0) (73.0) (-3 ("DESIGN" (1000."16Mn") (1040.32.45)) ("PRICE" (1040.123.45) (1040.321.54))))

这是一个"TEXT"类型的图形实体,它包含“DESIGN”和“PRICE”两个应用类型的扩展数据。其中,(-1.)…(73.0)是常规实体数据,(-3 (…))就是扩展实体数据,而扩展数据中("DESIGN" (1000."16Mn") (1040.32.45))是属于"DESIGN"应用类型的数据块,("PRICE"(1040.123.45) (1040.321.54))则是属于"PRICE"应用类型的数据块。更具体地说,属于"DESIGN"应用类型的数据有两个,分别是字符串"16Mn"和实数"32.45";属于"PRICE"应用类型的数据是两个实数,分别是"123.45"和"321.54"。

由此可见,应用类型名是存取扩展实体数据的主要依据。在使用前应先行登记。应用类型名可由用户任意定义,其最大长度为31个字符。登记应用类型名的AutoLISP程序代码如下:
(regapp "AppName")

如果登记成功,该应用类型名就被增加到APPID符号表,并保存在图形文件中。AutoCAD自动登记的应用类型名为"ACAD"。

从上面的例子还可以看到,扩展实体数据与常规实体数据有所不同,在扩展实体数据块中,同样代码的数据可以出现多次,每组数据的次序和含义则由应用程序自行约定。

需要注意的是,AutoCAD分配给每个图形实体的扩展数据空间最大为16K字节。下面的函数可查询指定图形实体的扩展数据自由空间大小(以字节为单位):
(xdroom entname)

下面的函数可计算出指定扩展数据块的大小(以字节为单位):
(xdsize xdata)

2、存取扩展实体数据的程序设计

在AutoCAD命令中,除AME(高级造型)、ASE(数据库管理)命令对扩展实体数据进行操作外,其它绘图命令一般不生成扩展实体数据。更多的情况是用户的AutoLISP或ADS应用程序生成、修改和检索扩展实体数据。

下面列出三段AutoLISP程序代码,分别对扩展实体数据进行检索、存储和删除操作:

;检索指定的扩展实体数据
;entname为有效的图形实体名,appname为已登记的应用类型名
;若检索成功则以LIST表的形式返回指定的扩展数据,否则返回nil
;例如:(getx (entlast) "DESIGN")
;返回:((1000."16Mn") (1040.32.45))
(defun getx(entname appname / x0 x1)
(setq appname (strcase appname))
(if (= (type entname) 'ENAME)
(if (tblsearch"APPID"appname)
(progn
(setq x1 (list appname))
(if (setq x0 (assoc -3 (entget entname x1)))
(cdr (assoc appname (cdr x0)))
)
)
)
)
)
;存储或修改指定的扩展实体数据
;entname为有效的图形实体名,appname为已登记的应用类型名
;xdata为属于appname应用类型的扩展数据表
;若存储成功则返回包含指定扩展数据的实体数据表,否则返回nil
;例如:(setx (entlast) "PRICE"((1040.123.45) (1040.321.54)))
(defun setx(entname appname xdata / x0 x1)
(setq appname(strcase appname))
(if (= (type entname) 'ENAME)
(if (tblsearch "APPID" appname)
(if (setq x0 (entget entname))
(progn
(setq x1 (list -3 (append (list appname) xdata)))
(setq x0 (append (entget entname) (list x1)))
(entmod x0)
)
)
)
)
)
;删除指定的扩展实体数据
;entname为有效的图形实体名,appname为已登记的应用类型名
;若删除成功则返回删除指定扩展数据后的实体数据表,否则返回nil
;例如:(delx (entlast) "PRICE")
(defun delx(entname appname / x0 x1)
(setq appname (strcase appname))
(if (= (type entname) 'ENAME)
(if (tblsearch "APPID" appname)
(progn
(setq x1 (list -3 (list appname)))
(if (setq x0 (append (entget entname) (list x1)))
(entmod x0)
)
)
)
)
)

3 扩展实体数据应用实例

利用扩展实体数据的最大好处首先在于它能够按不同的应用类型分组,其次在于它直接与图形实体关联,存取非常灵活方便。笔者利用它开发了零部件清单维护程序,效果很好。

按照笔者所在单位设计制图标准,反映零部件清单的明细表与图纸分开,即图纸(包括标题栏)由绘图机一起绘制,而明细表并不绘制在图纸上,零部件清单改由打印机单独打印后附在相应的图纸后面。为此,笔者利用扩展实体数据开发了零部件清单维护程序,在生成零部件序号时输入其代号、名称、材料、重量、数量等信息,然后将这些信息
为该序号(即为AutoCAD"TEXT"类型的图形实体)的扩展数据存储,这样用户只要选择某一序号就可以立即检索出与该序号对应的零部件的相关信息,并可任意修改。随后还可由程序自动按顺序提取图纸中所有的零部件信息,并作为清单按规定的格式保存到文件中或输出到打印机。(end)
文章内容仅供参考 (投稿) (如果您是本文作者,请点击此处) (11/23/2004)
查看更多CAD/CAM软件相关文章: more
·迪卡侬利用欧特克衍生式设计重新构想 更轻、更强、更可持续的自行车 Autodesk (11/18/2020)
·NUM助力台湾机床公司,实现机器人专用渐开线齿轮和摆线齿轮的自动化生产 (5/18/2019)
·hyperMILL革命性五轴加工策略 让复杂工件加工时间的节省高达90% OPEN MIND (12/6/2018)
·ESPRIT助力上海泷泽在机床行业寒冬期逆势增长300% DP Technology (8/13/2018)
·小型数控铣床刀具路径(刀路)参数曲面粗精选择 newmaker (3/26/2018)
·线切割加工中电极丝的选用 (12/9/2007)
·应用AutoCAD几何计算器实现快速定位 西南石油学院 郑悦明 (2/11/2006)
·AutoCAD中导入超文本实现方法 newmaker (11/22/2005)
·在AutoCAD中实现尺寸公差自动标注 newmaker (9/13/2005)
·虚拟样机技术在工程车辆中的应用初探 合肥工业大学 胡晓海 单承赣 (12/5/2004)
查看相关文章目录:
·CAD/CAM/PDM/PLM展区 > CAD/CAM软件展厅 > CAD/CAM软件文章
文章点评 查看全部点评 投稿 进入贴吧


对 CAD/CAM软件 有何见解?请到 CAD/CAM软件论坛 畅所欲言吧!


网站简介 | 企业会员服务 | 广告服务 | 服务条款 | English | Showsbee | 会员登录  
© 1999-2024 newmaker.com. 佳工机电网·嘉工科技