AutoCAD二次开发中提取图形的数据.docxVIP

  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文档。上传文档
查看更多
AutoCAD二次开发中提取图形的数据

维普资讯应用荟萃6AutoCAD二次开发中提取图形的数据坦墨垫 1f)11·重庆大学机械工程学院 1【摘要】本文给出一个用AdsRX开发的AutoCAD应用程序部分,程序直接、实时地提取图形中圃(弧)、椭圆(弧)、直线和多线段的数据并将数据存储在指针链表中。为了验证指针链表中的数据是否正确,打印出了圆弧指 针链表中的数据【关键词】粤翌塑堡宣BXF组码指针链表1图形文件的数据格式当前图形文件(.dwg)实质上就是一个AutoC.O图形数据库。通过实体名和选择集,用户可以直接存取、操作或修改该库中的任何实体数据。根据图形的数据实时进行下一步的工作就变得可能。由于AdsRX开发的AutoCAD应用程序能象AutoCAD本身的命令一样使用,这就极大地方便l用户『本文首先分析了图形数据库的信息,然后提供了实时获取图形数据(信息)的部分程序,之所以是部分程序,主要是从篇幅和相似性方面考虑。2提取图形数据方法AutoCAD图形的数据全部存储在AutoCAD的图形数据库中,任何‘个图形实体都是按定的格式存放的,这种格式就是DXF组码和组值。DXF格式是特定版本AutoCAD图形文件中所包含的全部信息的标记数据的一种表示方法。标记数据的意思是指在每个数据元素前部带一个称为组码的整数。组码的值表明了其后数据元素的类型,也指出了数据元素对于给定对象(或记录)类型的含意实际上,图形文件中所有用户指定的信息都能蟛DXF文件格式表示。在AutoLISP和ARK应用程序中使用的DXF格式与上述格式基本相同,只是在某些数据组上存在着细微的差别。在DXF格式中,组码将与组码关联的值(组值)定义为整型、浮点数型或字符串型。在编写程序提取数据时如果类型不匹配将可能得到随机数,得不到正确的数据,你必需注意组值类型。具体说明如cA 睫抖 =罨r:组码范围(部分)组值类型0-9字符串(虽多255个字符,对于UNICODE字符串则更少)10—5g双精度三维点60—79l6位整数值9Og932位整数值i00字符串(最多255个字符,对于UN1CODE字符申则更少)某些定义图元的组码始终会出现,而其他的组码仪在它们的值与缺省值不同时才出现。注意:如果用户以表驱动方式(即忽略未定义的组码,对图元中的组码次序不做任何假定)编写DXF处理程序,那么该程序将比较容易针对AutoCAD的后续版本做调整。因为AutoCAD的性能将不断得到增强,所以图元中将添加一些新的组码以提供更多的功能。然而,尽管组码通常按照这些DXF组码表所列的顺序出现,但在某些条件F或在后续版本的AutoCAD中,町能会改变这种顺序,不要使编写的程序依赖于这种顺序。可利用分支或表机制来处理控制图元的组码,这样即使组码次序不定,也能正确地处理每组组码此用户表驱动方式编写的DXF组码处理程序将具有更好的兼容性、稳定性。般情况下,图形由圆(弧j、椭圆(弧)、直线和多线段和样条曲线组成它们图形对象的组码既出现在DXF文件的ENTITIES区域中,又在图元定义表中被AutoLISP和ARX应用程序使用你可以通过帮助文件获得详细信息。我们可以用AdsRX开发个应用程序,提取图形的圆(弧)、椭 62 I程i~i/-CAD与智能建藐19s翻 圆(弧)、直线和多线段的数据并将数据存储在指针链表中。这样,我们就实时地获得了图形地数据,可以进行下一步地处理。为了验证指针链表中的数据是否正确,我们打印出圆弧的数据,其他类型的数据以此类推。下面我们仔细分析~下圆弧的组码和组值的意义(//之后是作者的注释),其它实体的组码和组值意义就请读者自己分析。在组码的说明前有如下提示符:APP 只用于应用程序的说明DXF 只用于DXF文件的说驯如果组码说明对DXF文件和应用程序都适用.那么没有提示符。圆弧组码组码说明i00子类标记(AcDbCircle)l,I/l该标记表明以下数据是圆弧的数据39厚度(可选,缺省值=0),//圆弧的厚度、圆心、半径与圆~样l0圆心(用OCS表示)DXF:x值;APP:三维点20,30DXF:圆心坐标的Y和z值(用OCS表示)40半径i00子类标记(AcDbArc)//圆弧的标记jO起婧角//50为圆弧起始角的纽码,它的纽值就是圆弧起始角的值5l终止角210延伸方向(可选,娘省值:0.0,1)DXF:x值:APP:三维矢量220,230DXF:延伸方向的Y和Z值3程序部分原代码下面给出提取图形的圆(孤)的数据并将数据存储在指针链表中的程序部分原代码。你可以参考此程序编写提取其它图元的数据,这里省去了AdsRX程序的基本框架,你可以修改AdsRX目录下sample目录下的任一例子程序,笔者就是从修改dlgtest程序开始编程工作的。请仔细分析其中的注释部分。structARCDATA{//圆弧数据结构adsj)ointa

文档评论(0)

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

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

1亿VIP精品文档

相关文档