外部参照,可以更改覆盖属性吗?
我需要一种快速的方法来查找图形中的所有外部参照,然后将它们更改为所有覆盖。我还没有找到这种控制可能在哪里。有人能给我指出正确的方向吗?还有,如何让VBA生成外部参照名称的集合谢谢,亚历克斯
使用lisp或VBA,可能需要拆离并重新附着外部参照。对于C#或VB.NET之类的.NET语言不太确定。可能没有必要。 你可以';t更改附件类型,您必须分离并重新连接。 带着我的一切';我最近一直在读,我想在VBA中做它。我需要收集文件名、文件路径和插入点吗。(我们以1:1的比例进行所有外部参照,并进行旋转。)然后使用文件名分离所有外部参照。然后使用文件名、路径和插入点再次附加为覆盖。这就是基本想法吗? 执行过滤选择集,然后对集上的每个循环执行 ;获取外部参照和插入点的路径/名称,分离,然后附着新的
你能从这里走吗?还是需要帮助? 实际上,几年前我在VBA中写了一些东西来实现这一点,但可能是don 35;039;我再也没有了 ;本人';我会查一下的。 我不能';我没有找到它,所以我很快又做了一次 ;这比它可能要不那么优雅,因为我做了一些快速抄袭和修补其他东西 ;它也仅适用于模型空间外部参照 ;如果它点击了pspace外部参照,它会将其分离并在mspace中重新附着 ;本人';以前有人说过我不应该';t张贴任何代码,除非它';因为I 35; 039;如果这些人真的需要自己付出努力,我会浪费他们的时间,但这并没有经过测试 ;它应该有效 ;如果没有';t、 只需稍加调整即可
Public Sub Layover()
Dim objSelSets As AcadSelectionSets
Dim objSelSet As AcadSelectionSet
Dim objOverlay As AcadExternalReference
Dim intType(0) As Integer
Dim varData(0) As Variant
Dim strPath As String
Dim strName As String
Dim dblInsPnt(0 To 2) As Double
Dim objXref As AcadExternalReference
Dim objEnt As AcadEntity
Dim objBlk As AcadBlock
Dim objBlks As AcadBlocks
Set objBlks = ThisDrawing.Blocks
Set objSelSets = ThisDrawing.SelectionSets
For Each objSelSet In objSelSets
If objSelSet.Name = "GetXrefs" Then
objSelSets.Item("GetXrefs").Delete
Exit For
End If
Next
Set objSelSet = objSelSets.Add("GetXrefs")
intType(0) = 0
varData(0) = "INSERT"
objSelSet.Select 5, filtertype:=intType, filterdata:=varData
For Each objEnt In objSelSet
Set objBlk = objBlks(objEnt.Name)
If objBlk.IsXRef Then
Set objXref = objEnt
strName = obxref.Name
strPath = objXref.Path
dblInsPt = objXref.InsertionPoint
objBlk.Detach
Set objOverlay = ModelSpace.AttachExternalReference(strPath, strName, dblInsPnt, 1, 1, 1, 1, True)
End If
Next objEnt
End Sub
哦,没有错误控制,使用风险自负或随意忽略,废话,废话。 很好的代码乳房
现在你能把它改成完全不同的样子吗 ;我不知道';我没有时间确切地告诉你我需要什么,所以请确保它有效 
提前谢谢 
PS ;本人';我只是想通过请你做我的工作来帮助别人学习
有人需要小睡一下。
页:
[1]
2