zzyong00 发表于 2014-5-15 13:30:44

请教插入块的问题

Private Sub Command1_Click()
    AppActivate objCad.Caption
    Dim p1
'On Error GoTo err1
    p1 = ThisDrawing.Utility.GetPoint(, "请指定插入点<0,0>:")
    If IsEmpty(p1) Then
      'ReDim P1(2)
      p1 = Array(0, 0, 0)
    End If
      '开始绘制
      If ThisDrawing.ActiveSpace = 1 Then
            ThisDrawing.ModelSpace.InsertBlock p1, App.Path & "\jt.dwg", dblSignRatio, dblSignRatio, 1, 0
      Else
            ThisDrawing.PaperSpace.InsertBlock p1, App.Path & "\jt.dwg", dblSignRatio, dblSignRatio, 1, 0

      End If
err1:
    Debug.Print Err.Description
    If Err.Number = -2145320928 Then Resume Next
    Err.Clear
End Sub


以上代码为在一张图中插入jt.dwg 文件,使jt.dwg文件内容成为一个块!

我的问题是,有没有这种可能,在jt.dwg文件中有若干个块,我选择其中的某个块,插入到别一个图形文件?该如何实现呢?
望高手指点!





新鲜8 发表于 2018-10-11 14:27:07

楼主 用了你的代码我把jt.dwg保存为2004的文件格式
打开CAD2012插入jt.dwg文件出现错误,怎么回事

提示实时错误91
对象变量或with块变量未设置

yefei812678 发表于 2024-2-23 13:40:35

有没有动态图看看 怎么用

新鲜8 发表于 2018-10-14 08:18:13

代码没问题是我这里错了

vbcad 发表于 2014-5-18 11:02:06

先打开有块的文件,过滤到要插入的块,然后插入到图形。

vbcad 发表于 2014-5-20 22:06:45

如果是实例,在获得块对象后,使用object.InsertionPoint 的方法就可以插入了。
在“明经翻译的《ActiveX 和 VBA 参考》(对象模型)”下载参考手册就知道了。
如:
指定公差、文字、块或形的插入点。
参阅 | 示例
语法
object.InsertionPoint
object
Attribute, AttributeReference, BlockRef, ExternalReference, MInsertBlock, MText, Shape, Text, Tolerance
使用该属性的对象。

InsertionPoint
Variant[变体] (三元素双精度数组); 可读写
代表插入点的三维 WCS 坐标。

如果是块参照
RetVal = object.InsertBlock(InsertionPoint, Name, Xscale, Yscale, ZScale, Rotation [, Password])
插入图形文件或当前图形中已定义的命名块。

具体说明请看手册。
手册是免费下载的,这点明镜通道做的很好。



zzyong00 发表于 2014-5-20 23:42:58

vbcad 发表于 2014-5-20 22:06 static/image/common/back.gif
如果是实例,在获得块对象后,使用object.InsertionPoint 的方法就可以插入了。
在“明经翻译的《ActiveX...

这是"插入图形文件或当前图形中已定义的命名块。"
你看看我的问题,"在jt.dwg文件中有若干个块,我选择其中的某个块,插入到别一个图形文件?"

zzyong00 发表于 2014-5-20 23:48:27

在论坛里找到,高人很多呀http://bbs.mjtd.com/thread-6098-1-1.html

yucc 发表于 2016-1-28 22:08:46

能不能在插入后,直接分解这个块呢?

yucc 发表于 2016-1-28 22:25:05

我是想当前块插入后,直接就炸开,因为图里其他的块不需要炸开

zzyong00 发表于 2016-1-28 22:32:19

dim objBref as acadblockreference
set objBref= ThisDrawing.ModelSpace.InsertBlock( p1, App.Path & "\jt.dwg", dblSignRatio, dblSignRatio, 1, 0)
objbref.explode

yucc 发表于 2016-1-28 22:47:51

zzyong00 发表于 2016-1-28 22:32 static/image/common/back.gif
dim objBref as acadblockreference
set objBref= ThisDrawing.ModelSpace.InsertBlock( p1, App.Path & " ...

谢谢,搞定了
页: [1] 2
查看完整版本: 请教插入块的问题