凋零叶 发表于 2025-4-14 11:46:25

CopyObjects方法复制到块 采用后期绑定cad程序时无法使用


想请教一个问题.
CopyObjects方法的使用,
我试了前期绑定是正常可以使用的,后期绑定就不行了.后期绑定能正常复制到模型空间,但是不能复制到块.

如果后期绑定不能作用到块或者有没有其他可替代的方法?
请前辈指点指点一下,非常感谢.


Sub Example_CopyObjects()
    Dim cadApp As Object
'    On Error Resume Next
    Set cadApp = GetObject(, "gcad.Application")
'    Set cadApp = GetObject(, "Autocad.Application")

    Dim Doc1 As Object
    Dim circleObj1 As Object, circleObj2 As Object
    Dim circleObj1Copy As Object, circleObj2Copy As Object
    Dim centerPoint(0 To 2) As Double
    Dim radius1 As Double, radius2 As Double
    Dim radius1Copy As Double, radius2Copy As Double
    Dim objCollection(0 To 1) As Object
    Dim retObjects As Variant
   
    centerPoint(0) = 0: centerPoint(1) = 0: centerPoint(2) = 0
    radius1 = 5#: radius2 = 7#
    radius1Copy = 1#: radius2Copy = 2#
   
    Set circleObj1 = cadApp.Application.ActiveDocument.ModelSpace.AddCircle(centerPoint, radius1)
    Set circleObj2 = cadApp.Application.ActiveDocument.ModelSpace.AddCircle(centerPoint, radius2)

    Dim ptBase(0 To 2) As Double
    Dim Objblock As Object
      ptBase(0) = 0#: ptBase(1) = 0#: ptBase(2) = 0#

      Set Objblock = cadApp.Application.ActiveDocument.Blocks.Add(ptBase, "块1")

    Set objCollection(0) = circleObj1
    Set objCollection(1) = circleObj2

    cadApp.Application.ActiveDocument.CopyObjects objCollection, Objblock
End Sub

你有种再说一遍 发表于 2025-4-14 16:24:28

浩辰的东西能就是能,不能就是放弃,
你让它去加COM接口的支持,
它要在下一年才给你加进去,
下下一年又改回来了

翔云95 发表于 2025-5-25 11:17:33

借花献佛哈

有大咖的方法是 新建外部dwg并组织实体,删除原图的块 读入dwg--AttachExternalReference()形成新块。
另外acad内copyobjects先期绑定 后期绑定都正常

凋零叶 发表于 4 天前

翔云95 发表于 2025-5-25 11:17
借花献佛哈

有大咖的方法是 新建外部dwg并组织实体,删除原图的块 读入dwg--AttachExternalReference() ...

好的,谢谢

longxh28 发表于 4 天前

在浩辰使用vba复制的代码,Dim retObjects As Variant,Dim xxx As Object这种定义是不行的,必须定义成最基本的形式,也就是说CopyObject方法规定什么类型,你就定义成什么类型,不可以用万能类型

凋零叶 发表于 4 天前

longxh28 发表于 2026-1-20 11:41
在浩辰使用vba复制的代码,Dim retObjects As Variant,Dim xxx As Object这种定义是不行的,必须定义成最 ...

这样子,谢谢你的资讯。以后用到我再试一试,现在换到C#了
页: [1]
查看完整版本: CopyObjects方法复制到块 采用后期绑定cad程序时无法使用