一种按需绑定CAD外部参照的方法与流程

文档序号:38035869发布日期:2024-05-17 13:21阅读:13来源:国知局
一种按需绑定CAD外部参照的方法与流程

本发明属于机械制图,具体涉及一种按需绑定cad外部参照的方法。


背景技术:

1、外部参照(external reference,简称xref)是指在cad环境下用户在自己的当前图纸文件中用外部参照的方法看到任何其它图,例如,设计人员a在绘制图纸a时,在图纸a中以外部参照的方式引入了一张由其他设计人员绘制的图纸b(或者其它格式,如pdf 或者图片等外部文件)作为底图参照,其中,图形b即为被图纸a所引用的外部文件,也即外部参照。

2、外部参照绑定:指在cad环境下,将用户引用图中的外部参照文件中的图元合并到引用图中,合并后图元属于引用图纸,且空间属性(坐标、大小、旋转角度等)均与原参照图形效果一致。例如,设计人员a在绘制图纸a时,在图纸a中以外部参照的方式引入了一张由其他设计人员绘制的图纸b,此时若b图纸文件被从硬盘中删除,则a图纸中也无法再看到b图纸的参照。若在a图纸中对b图纸参照执行绑定操作后,即使b图纸文件被从硬盘中删除,a图纸中仍可正常查看b图纸内容。

3、autocad中提供的图纸绑定功能:autocad中提供的绑定方法采用“全量绑定”的方式,即把需要绑定的外部参照和嵌套在其下的次级参照全部绑定。此方式执行速度慢,且容易因图纸内有错误导致绑定失败。

4、外部参照引用的组成:外部参照引用包括2个组成部分,块和块参照。块主要定义了参照文件的属性,包括名称,文件路径、内部包含的图元等,其中块名称默认为图纸文件名称;块参照是块在图纸中的具体实例,块和块参照之间是被引用和引用的关系,可以将块理解为模具,块参照为模具浇筑出的模型。块参照在图纸中可以有多个,每个参照可以有不同的空间属性(例如位置、旋转角度等)。

5、每个图纸文件都有一个基本块,可以包含各类图元,包括块参照。一个图纸对其他图纸的外部参照引用,实际上就是把其他图纸作为块参照插入到自己的基本块中。

6、外部参照的嵌套引用关系:块的图元中也可以包含其他块的块参照,以此构成嵌套引用关系。例如图纸a引用了图纸b,则a块中包含了b的块参照,图纸b又引用了图纸c,则b的块参照中又包含了c的块参照。图纸a中实际引用了b、c两个文件。对a而言,a对b为直接引用,a对c为间接引用;对c而言,c是被b直接引用,被a间接引用。

7、从块和块参照的引用层级看,a为当前图纸,b的块参照直接属于a块,因此位于引用关系的最顶层(即第一层),c的块参照包含在b块中,位于第二层。

8、块参照的变换矩阵与“按需绑定”:每个块参照有自己的变换矩阵属性。在块内的图元的空间属性只要与块参照的变换矩阵相乘,即可得到该图元在当前图中的空间属性,假设块内图元为e,将e从原文件复制到当前图的图元为ecopy,被引用的块参照为r。当ecopy与r的变换矩阵m相乘后,ecopy的空间属性与r中的e的空间属性相同。即从当前图中查看时,ecopy可完全覆盖在e上。因为ecopy与e的位置相同,且不依赖于原外部参照文件,则ecopy已经在当前图中实现绑定。

9、cad提供了“getblockreferenceids”方法,可通过此属性获取对某个块下各块参照id数组,这些块参照有的是对块的直接引用,有的是间接引用,但是数组无法反映出这些块参照间的嵌套关系。

10、使用本方法前,实现“按需绑定”需要通过“自上而下”的方式实现,即遍历当前图纸和各嵌套的外部参照块内的所有的图元,判断其是否属于要绑定的外部参照的“getblockreferenceids”数组,然后获取块参照的变换矩阵值后实现“按需绑定”,但是由于外参可能存在多层嵌套,且需要对每层嵌套的外参块内所有图元进行遍历检查,会对程序的性能造成不利影响。


技术实现思路

1、本发明的目的在于提供一种按需绑定cad外部参照的方法,可根据筛选条件,将部分外部参照中的图元绑定到当前图纸中,而无需将整个图纸都绑定进来,从而提高执行效率,减少出错的可能。

2、为实现上述目的,本发明提供如下技术方案:

3、一种按需绑定cad外部参照的方法,通过cad外部参照的一个特性实现自下而上的绑定,具体包括以下步骤:

4、①首先获取要绑定的外部参照xb,将其置为循环项起始项xnow开始递归循环;

5、②取xnow的getblockreferenceids属性记录到arrayblockrefid,arrayblockrefid中只包含对xnow进行直接引用的块参照信息,同时记录这些块参照的变换矩阵信息到arraymatrixln数组,n表示外部参照嵌套引用层数,从0开始计数,每开始一层递归循环则n+1;

6、③将arrayblockrefid中各块参照r的database.originalfilename属性与当前图的各外部参照块xc的xrefdatabase.originalfilename属性进行逐个比较看是否一致,若有符合条件的xc且r没有被当前图纸直接引用,则将xc置为循环起始项xnow进入递归循环,否则结束递归循环;

7、④循环完成后,通过汇总数组arraymatrixall将各arraymatrixln按n从小到大的顺序,将每个arraymatrixln的各元素两两相乘,然后再合并到arraymatrixall中;

8、⑤将获取xb内要绑定的图元e并将其复制到当前图成为enew,然后对arraymatrixall数组进行循环,取出其中的变换矩阵m,将enew复制为enewcopy,然后将enewcopy的空间属性与m相乘,则enewcopy在当前图的的空间属性变换后与e在当前图的空间属性一致,最终可实现对e的按需绑定。

9、进一步地,所述外部参照xb为任意cad软件支持的外部参照格式。

10、进一步地,所述变换矩阵包括平移、旋转和缩放。

11、进一步地,所述外部参照的嵌套引用层数n为大于1的正整数。

12、进一步地,汇总变换矩阵时按照外部参照嵌套引用层数n的顺序进行合并。

13、进一步地,对图元复制和空间属性变换采用cad软件开发接口

14、的功能实现。

15、进一步地,所述图元复制是指在cad软件中,使用cad软件开发接口“复制”或“拷贝”功能来复制图元,从而实现图元的复制操作。

16、进一步地,所述空间属性变换是指利用cad软件开发接口的变换功能实现变换,包括平移、旋转和缩放,用户选中图元,并使用cad软件提供的工具来对图元进行空间属性变换,这些变换将会影响图元的位置、方向和大小,从而实现图元在空间中的几何变换。

17、arrayblockrefid 是一个数组,用于记录在进行按需绑定cad外部参照的过程中,符合条件的块参照的信息。

18、在权利要求书中提到的步骤中,arrayblockrefid 的作用是存储对当前外部参照直接引用的块参照信息,以便后续处理。具体来说,当逐个比较块参照的文件名时,如果发现某个块参照的文件名与当前外部参照的文件名匹配,就会将该块参照的信息记录到arrayblockrefid 中。这样,在整个按需绑定的过程中,可以通过 arrayblockrefid 数组来快速访问需要处理的块参照信息,进行相应的操作和处理,以实现对图元的按需绑定。

19、arrayblockrefid 在本技术中起着记录和辅助处理块参照信息的作用,帮助实现对外部参照的按需绑定操作。

20、arraymatrixln 是一个数组,用于记录在进行按需绑定cad外部参照的过程中,不同嵌套引用层数下的块参照的变换矩阵信息。

21、在权利要求书中提到的步骤中,arraymatrixln 的作用是存储外部参照在不同嵌套引用层数下的变换信息,以便后续处理。具体来说,当逐个记录块参照的变换矩阵信息时,会将这些信息按照外部参照的嵌套引用层数分类存储到不同的 arraymatrixln 数组中,其中 n 表示外部参照嵌套引用的层数。这样,可以根据不同的层数来管理和处理外部参照的变换信息,确保在按需绑定过程中能够正确地应用这些变换信息。

22、arraymatrixln 在本技术中起着记录和管理外部参照变换信息的作用,帮助实现对外部参照的按需绑定操作,并确保在处理不同嵌套引用层数时能够正确应用相应的变换信息。

23、在cad软件中,database.originalfilename 是一个属性,用于表示一个图块(block)或外部参照(external reference)在文件系统中的原始文件名。这个属性通常包含了该图块或外部参照所在文件的完整路径和文件名信息。

24、当在cad软件中处理图块或外部参照时,可以通过读取database.originalfilename属性来获取该图块或外部参照在文件系统中的位置信息。这对于识别和定位不同的图块或外部参照文件是非常重要的,特别是在进行按需绑定或处理外部参照时。

25、在本技术中提到比较外部参照块的文件名时涉及到对database.originalfilename属性的比较,主要是为了确定当前处理的外部参照与要绑定的外部参照是否匹配,从而进行相应的处理操作。

26、database.originalfilename属性在cad软件中用于标识图块或外部参照在文件系统中的原始文件名,方便对其进行管理和处理。

27、在cad软件中,xrefdatabase.originalfilename 是一个属性,用于表示外部参照(external reference)在文件系统中的原始文件名。类似于database.originalfilename属性,xrefdatabase.originalfilename 也包含了外部参照所在文件的完整路径和文件名信息。

28、当处理外部参照时,cad软件可以通过读取xrefdatabase.originalfilename属性来获取该外部参照在文件系统中的位置信息。这对于识别和定位不同的外部参照文件是非常重要的,特别是在进行外部参照的加载、更新或替换操作时。

29、在本技术中提到比较外部参照块的文件名时,涉及到对xrefdatabase.originalfilename属性的比较,以确定当前处理的外部参照与目标外部参照是否匹配,从而决定如何处理这些外部参照。

30、arraymatrixall 是一个数组,用于记录和存储与外部参照相关的变换矩阵信息。这个数组可能包含了不同外部参照的变换矩阵,以及它们对应的位置、旋转、比例等变换信息。

31、当处理外部参照时,cad软件会使用arraymatrixall来管理和应用外部参照的变换信息。这些变换信息可以用于在绘图中正确地定位和显示外部参照,确保它们能够按照预期的方式进行放置和显示。

32、在本技术中,arraymatrixall 用于存储所有相关外部参照的变换矩阵信息,并且在按需绑定或处理外部参照时起到关键作用。通过这些变换矩阵信息,保证在进行外部参照操作时能够正确地应用各种变换,从而实现对外部参照的准确控制和处理。

33、arraymatrixall 是一个重要的数组,用于记录和管理外部参照的变换矩阵信息,以便在cad软件中对外部参照进行准确的定位和显示。

34、本发明的技术效果和优点:

35、自下而上的绑定方式:该方法采用了自下而上的绑定方式,通过递归循环获取外部参照的块参照信息,并根据特定条件进行筛选,从而实现对外部参照图元的按需绑定。这种方式相比传统的全量绑定方法更加高效,能够提高执行效率;

36、嵌套引用关系的处理:考虑到外部参照之间可能存在嵌套引用关系,该方法能够有效地处理多层嵌套的外部参照,通过记录块参照的变换矩阵信息和逐层递归循环的方式,实现对多层嵌套的外部参照图元的筛选和绑定。

37、汇总数组的应用:通过汇总数组arraymatrixall将各层级的变换矩阵信息进行合并,然后再进行逐个应用到要绑定的图元上,这种操作能够有效地减少重复计算,提高了绑定过程的效率;

38、灵活性和准确性:该方法可以根据特定条件对外部参照中的图元进行灵活选择和绑定,能够实现对部分外部参照的图元进行绑定,而无需将整个图纸都绑定进来。同时,通过对块参照的属性比较和变换矩阵的应用,能够确保绑定后的图元在当前图中的空间属性与原图一致;

39、性能优化:尽管外部参照可能存在多层嵌套,该方法通过有效的数据结构和算法设计,减少了遍历检查的次数,从而优化了程序的性能,减少了不利影响;

40、本方案在cad外部参照的按需绑定方面具有显著的创新性和实用性,能够提高cad制图过程中的效率和准确性,为相关领域的技术发展带来积极的影响。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1