ImageVerifierCode 换一换
格式:DOC , 页数:6 ,大小:43KB ,
资源ID:9007565      下载积分:10 金币
快捷注册下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

开通VIP
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.zixin.com.cn/docdown/9007565.html】到电脑端继续下载(重复下载【60天内】不扣币)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

开通VIP折扣优惠下载文档

            查看会员权益                  [ 下载后找不到文档?]

填表反馈(24小时):  下载求助     关注领币    退款申请

开具发票请登录PC端进行申请

   平台协调中心        【在线客服】        免费申请共赢上传

权利声明

1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前可先查看【教您几个在下载文档中可以更好的避免被坑】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时联系平台进行协调解决,联系【微信客服】、【QQ客服】,若有其他问题请点击或扫码反馈【服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【版权申诉】”,意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:0574-28810668;投诉电话:18658249818。

注意事项

本文(CAD CASS下实体的扩展属性XDATA.doc)为本站上传会员【s4****5z】主动上传,咨信网仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知咨信网(发送邮件至1219186828@qq.com、拔打电话4009-655-100或【 微信客服】、【 QQ客服】),核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载【60天内】不扣币。 服务填表

CAD CASS下实体的扩展属性XDATA.doc

1、CAD CASS下实体的扩展属性XDATA( 2011-09-23 13:15 一:摘自网络 正确叫法为 扩展数据 -- xdata 系统提供了几个用于处理扩展数据的 AutoLISP 函数,它们是由用 ObjectARX 或 AutoLISP 编写的应用程序创建的。如果一个图元包含扩展数据,则该数据会紧跟在图元的正常定义数据之后。 通过调用 entget 可以获取一个图元的扩展数据。entget 函数获取图元的正常定义数据和应用程序(在 entget 调用中指定)的扩展数据。 当用 entget 获取扩展数据时,扩展数据的起始部分由 -3 组码指示。-3 组码位于一个表中,该表

2、以第一个 1001 组码开始。如下表所示,该 1001 组码包含所获取的第一个注册的应用名称,详细信息请参见后面章节。 正常和扩展数据的组码 组码 字段 数据类型 (?, ? (0?39 ) 图元名称) 正常定义数据字段) . . . 常规图元定义数据 (? (1001 (1000, 1002?071 (1001 (1000, 1002?071 (1001  扩展数据标记 注册的应用名称 1) XDATA 字段) . . .册的应用程序名称 2) XDATA 字段) . . . 注册的应用名称 3) . . 扩展数据 本节内容包括:

3、    组织扩展数据    注册应用    获取扩展数据    在图元上附着扩展数据    管理扩展数据使用的内存    扩展数据中的句柄 扩展数据由一个或多个 1001 组码组成,其中每个组码都以唯一的应用名称开始。由 entget 返回的扩展数据组码跟随在定义数据之后,按照保存宝数据库中的次序排列。 在每个应用的组码中,扩展数据的内容、含义及其数据的组织都是由应用自身定义的。AutoCAD 维护这些信息,但不使用它们。表中还显示 1000 到 1071 之间扩展数据的组码。如下所示,这些组码的数据类型许多都是熟悉的: 字符串  1000。扩展数据中的字符串可长达 255

4、 字节(第 256 字节是为空字符保留的)。 应用名称 1001(也是字符串)。应用名称可长达 31 字节(第 32 字节是为空字符保留的),而且必须符合符号表的名称规则(如图层名称)。应用名称可包含字母、数字、专用字符 $(美元符号)、-(连字符)以及 _(下划线),但不能包含空格。 图层名称 1003。与扩展数据相关联的图层名称。 数据库句柄 1005。图形数据库中的图元句柄。 三维点 1010。包含在一个点中的三个实数值。 实数 1040。一个实数值。 整数 1070。一个 16 位整数(带符号或不带符号)。 长整数 1071。一个 32 位带符号的(长)整数

5、如果 1071 组码中出现短整数或实数值,则被转换为一个长整数;如果组码值非法(例如一个字符串),则将被转换为长整数形式的零 (0L)。 注意 AutoLISP 把 1071 组码作为实数值管理。如果用 entget 获取包含 1071 组码的图元定义表,则返回的值是实数。如下例所示: (1071 . 12.0) 如果需要用 entmake 或 entmod 在图元中创建一个 1071 组码,则既可使用实数值,也可使用整数值。如下例所示: (entmake \'((..... (1071 . 12) .... ))) (entmake \'((..... (1071 . 12.0)

6、 .... ))) (entmake \'((..... (1071 . 65537.0) .... ))) (entmake \'((..... (1071 . 65537) .... ))) 但 AutoLISP 返回的组码值仍是实数: (entmake \'((..... (1071 . 65537) .... ))) 上述语句的返回值如下所示: (1071 . 65537.0) ObjectARX 总是把 1071 组码作为长整数来管理。 其他几个的扩展数据组码在其上下文中具有特殊含义(如果应用程序选择使用它们): 控制字符串 1002。扩展数据的控制字符串可以是“

7、{”或“}”。这些大括号使应用可以通过将扩展数据细分为表来组织它们。左括号开始一个表,右括号结束最新的表。表是可以嵌套的。 注意 如果一个 1001 组码出现在该表中,则仅把它当作一个字符串,而不是一个新的应用组码的开始。 二进制数据 1004。二进制数据被组织为可变长度的数据块,它可在有 ads_binary 结构的 ObjectARX 中处理。数据块的最大长度为 127 字节。 注意 AutoLISP 不能直接处理二进制数据块,所以适用于长整数 (1071) 组码的预防措施也同样适用于二进制组码。 世界空间位置 1011。与简单的三维点不同,其 WCS 坐标随扩展数据所属的父图

8、元移动、比例缩放、旋转和镜像。当对父图元使用 STRETCH 命令并且此点位于选择窗口中时,该 WCS 的位置也会被拉伸。 世界空间位移 1012。一个随着父图元比例缩放、旋转或镜像的三维点,但不可拉伸或移动。 世界空间方向 1013。一个随着父图元旋转或镜像的三维点,但不可比例缩放、拉伸或移动。其 WCS 方向是一个单位长度的规格化向量。 距离 1041。一个随着父图元比例缩放的实数值。 比例因子 1042。也是一个随着父图元比例缩放的实数值。 关于扩展数据的 DXF 组码,也请参见 DXF Reference。 为便于 AutoCAD 识别,必须注册应用名称。应用名称与

9、使用该应用的每个图元的扩展数据一起存储,也在 APPID 表中。注册由 regapp 函数来完成,它指定一个字符串作为应用名称。如果 regapp 函数成功地将名称增加到 APPID 表中,则返回应用名称,否则返回 nil。返回 nil 则表示此名称已出现在该符号表中,但这不是一个真正的错误,而是一个正常的返回值,因为应用在每次绘图中只需注册一次。 为了进行注册,应用首先检查它的名称是否已出现在 APPID 表中。如果表中没有该名称,则必须注册它。如果有,则可以如本节的后面部分所述,程序只需继续运行,并使用扩展数据。 下列代码段中有 regapp 的典型用法(关于 tblsearch 函数

10、的详细信息,请参见访问符号表和词典)。 (setq appname "MYAPP_2356")   ; 唯一的应用名称 (if  (tblsearch "appid" appname)   ; 检查是否已经注册   (princ (strcat     "\\n" appname " already registered. "))   (if (=  (regapp appname) nil)   ; 一些其他问题     (princ (strcat       "\\nCan\'t register XDATA for " appname ". "))   ) ) re

11、gapp 函数提供了一定的安全度,但它不能保证两个单独的应用不会选择相同的名称。确保不重名的一个办法是,采用一个统一的规则,即使用公司或产品的名称,以及唯一的编号(例如电话号码或当前的日期和时间)。    获取扩展数据 应用程序可以调用 entget 来获得已经注册的扩展数据。entget 函数既能返回定义数据,也能返回应用程序所需的扩展数据。这需要一个额外的参数 application,它用于指定应用名称。传给 entget 的名称必须与上一次调用 regapp 注册的应用一致,它们也可以包含通配符。 在缺省情况下,关联填充图案也包含扩展数据。下列代码显示了该扩展数据的关联表。 命

12、令:  (entget (car (entsel)) \'("ACAD"))  选择对象:  选择关联图案填充 在命令行中输入上述代码,会返回如下所示的一个表: ((-1 . <图元名:600000c0>) (0 . "INSERT") (8 . "0") (2 . "*X0") (10 0.0 0.0 0.0) (41 . 1.0) (42 . 1.0) (50 . 0.0) (43 . 1.0) (70 . 0) (71 . 0) (44 . 0.0) (45 . 0.0) (210 0.0 0.0 1.0) (-3 ("ACAD" (1000 . "HATCH") (1002

13、 . "{") (1070 . 16) (1000 . "LINE") (1040 . 1.0) (1040 . 0.0) (1002 . "}")))) 这段代码段演示了为两个指定的应用获取扩展数据的典型序列。请注意,参数 application 以表的格式来传入应用名称: (setq working_elist   (entget ent_name     \'("MY_APP_1" "SOME_OTHER")  ; 仅当扩展数据来自“MY_APP_1”和   )        ;“SOME_OTHER”时,才被获取 ) (if working_elist   (prog

14、n     ...      ; 更新工作图元组     (entmod working_elist)   ; 只有仍在表 working_elist 中的注册   )        ; 应用程序的扩展数据才被修改 ) 如样例代码所示,与用 entmod 修改正常定义数据一样,可以通过调用 entmod 的子序列修改用 entget 获取的扩展数据,也可以在传递给 entmake 的图元表中定义扩展数据来创建它。 只返回应用明确要求的扩展数据,可以防止一个应用误用另一个应用的数据。它也控制了应用程序需要使用的内存数量,并简化了应用程序需进行的扩展数据处理。 注意 由于 appli

15、cation 传入的字符串可以包含通配符,因此应用名为“*”将导致 entget 返回附着在图元上的所有扩展数据。 在图元上附着扩展数据 使用扩展数据可以存储任意类型的信息。例如,绘制一个图元(例如直线或圆),然后输入下列代码将扩展数据附着到图元上: (setq lastent (entget (entlast)))   ; 获得最新图元定义数据的关联表 (regapp "NEWDATA")     ; 注册应用名称 (setq exdata      ; 设置 exdata 变量等于  \'((-3 ("NEWDATA"     ; 新的扩展数据   (1000 . "This

16、 is a new thing!")   ; 本例中是一个文本字符串   ))) ) (setq newent    (append lastent exdata))    ; 向图元表中增加新的数据表 (entmod newent)                   ; 用新的定义数据修改图元 为了验证扩展数据已被附着到图元上,输入下列代码,并选择该对象: (entget (car (entsel)) \'("NEWDATA")) 本样例显示了在图元上附着扩展数据的基本方法。   二、来自帮助 Signature object.GetXData AppName, X

17、DataType, XDataValue Object , , , , , , , , , , , , , ; The object or objects this method applies to. AppName String; input-only A NULL string will return all the data attached to the object, regardless of the application that created it. Supplying an application name will return only the dat

18、a that was created by the specified application. XDataType Variant (array of shorts); output-only XDataValue Variant (array of variants); output-only Remarks Extended data is an example of instance-specific data created by applications written with ObjectARX or AutoLISP. This data can be added

19、 to any object. This data follows the object's definition data, and is maintained in the order that it was saved into the document. (AutoCAD maintains this information, but doesn't use it.)   三、例子 Sub Example_GetXData() ' This example creates a line and attaches extended data to that line. ' Crea

20、te the line Dim lineObj As AcadLine Dim startPt(0 To 2) As Double, endPt(0 To 2) As Double startPt(0) = 1#: startPt(1) = 1#: startPt(2) = 0# endPt(0) = 5#: endPt(1) = 5#: endPt(2) = 0# Set lineObj = ThisDrawing.ModelSpace.AddLine(startPt, endPt) ZoomAll ' Initialize all the xdata values. Note that f

21、irst data in the list should be ' application name and first datatype code should be 1001 Dim DataType(0 To 9) As Integer Dim Data(0 To 9) As Variant Dim reals3(0 To 2) As Double Dim worldPos(0 To 2) As Double '注意以下的1001 1000 1003 1040 1041 1070 1071...这些数字,参照我上面发的内容(来自网络部分) DataType(0) = 1001: Data

22、0) = "Test_Application" DataType(1) = 1000: Data(1) = "This is a test for xdata" DataType(2) = 1003: Data(2) = "0" ' layer DataType(3) = 1040: Data(3) = 1.23479137438413E+40 ' real DataType(4) = 1041: Data(4) = 1237324938 ' distance DataType(5) = 1070: Data(5) = 32767 ' 16 bit Integer DataType(6) =

23、 1071: Data(6) = 32767 ' 32 bit Integer DataType(7) = 1042: Data(7) = 10 ' scaleFactor reals3(0) = -2.95: reals3(1) = 100: reals3(2) = -20 DataType(8) = 1010: Data(8) = reals3 ' real worldPos(0) = 4: worldPos(1) = 400.99999999: worldPos(2) = 2.798989 DataType(9) = 1011: Data(9) = worldPos ' world space position ' Attach the xdata to the line lineObj.SetXData DataType, Data ' Return the xdata for the line Dim xdataOut As Variant Dim xtypeOut As Variant lineObj.GetXData "", xtypeOut, xdataOut End Sub

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2025 宁波自信网络信息技术有限公司  版权所有

客服电话:0574-28810668  投诉电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服