[原创]关于REFEDIT参照编辑,请大家帮我看看~~~
REFEDIT在对一个块做修改时,如果选中了块中的用3dsin输入的对象就会出错不能编辑,这是为何,有什么解决的方法吗?发到CAD应用那边没人理,就发这里了,有没有人理啊
没人理有两种可能,一是别人不会,二就是你的问题说的不清楚
本帖最后由 作者 于 2003-4-15 16:07:57 编辑REFEDIT 提示用户从当前图形中选择要编辑的外部参照或块参照。用户可对外部参照或块做“少量”的修改而不必打开参照图形或者分解和重定义块。
使用 MINSERT 插入到图形中的参照不能被在位编辑。...或许,3DSIN输入的也是其可编辑之外吧
哦,我觉得应该不是的呀,MINSERT是多重引用,
而我只是块里有3DSIN的物体呀,不过我想可能是3dsin时建对象的方式有关,不知道refedit是不是要用到对象表里的什么数据的minsert使用有区别
对于单行单列的minsert对象,跟insert是相同的效果.但是对于数目大于1的minsert对象,则不能对其进行编辑.
Minsert在圖塊中也有一些其怪現象,如內程序用於說明....
;;为何会有不同的结果??;;一图块只含一个CIRCLE及MINSERT物件
(defun C:VXEXPODE (/ OBJLST XXP ENTT EN ENT SS N)
(setq EN (entsel))
(setq ENT (vlax-ename->vla-object (car EN)))
;;Method 1
(vlax-for ENTT
(vla-item (vla-get-blocks
(vla-get-activedocument (vlax-get-acad-object))
)
(vla-get-name ENT)
)
(print (vla-get-objectname ENTT))
)
(princ)
(print "....")
;;Method 2
(setq XXP (vl-catch-all-apply
'vla-explode
(list ENT)
)
)
(if (not (vl-catch-all-error-p XXP))
(progn
(setq OBJLST (vlax-safearray->list
(vlax-variant-value XXP)
)
)
(foreach ENTT OBJLST
(print (vla-get-objectname ENTT))
)
)
)
(princ)
(print "....")
;;Method 3
(setq EN1 (car EN))
(while (and (setq EN1 (entnext EN1))
(/= "SEQEND" (cdr (assoc 0 (entget EN1))))
)
(print (vla-get-objectname (vlax-ename->vla-object EN1))
)
)
(princ)
(print "....")
;;Method 4
(command "_.explode" (car EN))
(setq SS (ssget "P")
N0
)
(repeat (sslength SS)
(vla-get-objectname (vlax-ename->vla-object (ssname SS N)))
)
(setq N (1+ N))
)
(princ)
)
;|
"AcDbMInsertBlock"
"AcDbCircle"
"...."
"AcDbBlockReference"
"AcDbCircle"
"...."
"AcDbBlockReference"
"AcDbCircle"
"...."
"AcDbMInsertBlock"
"AcDbCircle"
|;
页:
[1]