[ARX]实体的显示顺序是什么属性
<FONT face=宋体 size=2>实体的显示顺序是什么属性,如何控制实体的显示顺序?<BR><BR>特别对于两个实体高度属性相同时,如何控制显示顺序?</FONT>reply
显示顺序和高度有关系吗?直接用DRAWORDER就可以了吧. 那我问你:DRAWORDER 是如何实现这个功能的?
是不是改变AcDbBlockTableRecord 中的顺序 DrawOrder跟ARX无关, 是AutoCAD的命令呀, 用来指定一张图的显示被刷新里选定实体的显示顺序. BlockTableRecord是用指针表连在一起的, 只要换指针顺序就可以了, 这没什么特别繁琐的.
如果楼主的意思是要在arx中创建实体然后控制其在AutoCAD图窗中的显示顺序, 那也很好办, 因为ARX创建的实体不加入AutoCAD数据库是不会显示的, 所以只要调整诸如appendAcDbEntity之类命令的顺序就可以了.
不过实体一旦加入AutoCAD的数据库, 就只能靠DrawOrder了. 我就是想知道 实体加入到AutoCAD的数据库之后,如何改变实体的显示顺序? <BR>另外与之相关的问题是:<BR>1,使用DrawOrder命令改变实体的显示顺序,到底是通过修改了实体的什么属性来实现的?<BR>2,如果两个实体的高度属性不相同,实体的显示顺序按高度属性来显示(高度大的显示在上面,高度小的显示在下面)。<BR>如果个实体的高度属性相同,如何控制显示顺序?<BR>3,例如我想把所有的文字(AcDbText,AcDbMtext) 放到其他实体的上面?如何用程序实现?
reply
显示和高度没有关系,AutoCAD系统的Regen重生成全图,人家总要有个规则吧,以什么顺序生成,Draworder可以选择实体显示的顺序啊,比如一个实体显示在最前或是最后. 我就是想知道 Regen重生成全图 时控制实体显示顺序的规则,Draworder改变实体显示的顺序时到底是改变了这个规则的什么属性?
这个规则到底是什么东西,难道 objectarx 不能操作这个规则吗? xfzzmzj发表于2005-3-17 8:55:00static/image/common/back.gif我就是想知道 Regen重生成全图 时控制实体显示顺序的规则,Draworder改变实体显示的顺序时到底是改变了这个规则的什么属性?
<BR>..汗..DrawOrder改变的不是 什么 属性..
楼主应该明白每一个block table record代表一个实体, 绘画顺序就是把block table所有的record从头到尾加载一遍. 这些record是用指针表(linked list)连在一起的, 就是AutoCAD保存一套内部指针指示record的前后顺序(标准顺序是按照添加实体的顺序). 当用户发出draworder指令时, AutoCAD就调整指针..
比如说, 原来一号指针指向一个圆, 二号指针指向一个椭圆, 那么显示顺序就是圆先椭圆后; 现在用户用draworder指定椭圆要比圆先显示, AutoCAD就把一号指针指向椭圆, 二号指针指向圆..这样而已..
这些指针和指针变换是AutoCAD内部处理的, 用什么工具都不能直接操作, 除非能搞到AutoCAD的源码..
不管是ObjectARX还是其他的二次开发, 都只能在AutoCAD允许的范围之内.. 听了楼上仁兄的话,
感到我们这些二次开发的真是可怜呀,只能在允许的范围之内...
另外,
我试出一种方法,可以改变实体的显示顺序:
就是修改实体的任一种属性,(可以重新设置原来相同的属性)
这时,实体的显示顺序提前,只能提前,不能到下面
页:
[1]