明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 3164|回复: 14

请教插入块的问题

[复制链接]
发表于 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文件中有若干个块,我选择其中的某个块,插入到别一个图形文件?该如何实现呢?
望高手指点!





发表于 2018-10-11 14:27:07 | 显示全部楼层
楼主 用了你的代码我把jt.dwg保存为2004的文件格式
打开CAD2012插入jt.dwg文件出现错误,怎么回事

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

点评

文件路径对吗?  发表于 2018-10-13 21:45
发表于 2024-2-23 13:40:35 | 显示全部楼层
有没有动态图看看 怎么用
发表于 2018-10-14 08:18:13 | 显示全部楼层
代码没问题是我这里错了
发表于 2014-5-18 11:02:06 | 显示全部楼层
先打开有块的文件,过滤到要插入的块,然后插入到图形。

点评

哪插入哪个块的代码是怎么样的?  发表于 2014-5-19 22:46
发表于 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])
插入图形文件或当前图形中已定义的命名块。

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



 楼主| 发表于 2014-5-20 23:42:58 | 显示全部楼层
vbcad 发表于 2014-5-20 22:06
如果是实例,在获得块对象后,使用object.InsertionPoint 的方法就可以插入了。
在“明经翻译的《ActiveX  ...

这是"插入图形文件或当前图形中已定义的命名块。"
你看看我的问题,"在jt.dwg文件中有若干个块,我选择其中的某个块,插入到别一个图形文件?"
 楼主| 发表于 2014-5-20 23:48:27 | 显示全部楼层
在论坛里找到  ,高人很多呀http://bbs.mjtd.com/thread-6098-1-1.html
发表于 2016-1-28 22:08:46 | 显示全部楼层
能不能在插入后,直接分解这个块呢?

点评

可以分解块参照,用explode方法  发表于 2016-1-28 22:21
发表于 2016-1-28 22:25:05 | 显示全部楼层
我是想当前块插入后,直接就炸开,因为图里其他的块不需要炸开
 楼主| 发表于 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
发表于 2016-1-28 22:47:51 | 显示全部楼层
zzyong00 发表于 2016-1-28 22:32
dim objBref as acadblockreference
set objBref= ThisDrawing.ModelSpace.InsertBlock( p1, App.Path & " ...

谢谢,搞定了
您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|CAD论坛|CAD教程|CAD下载|联系我们|关于明经|明经通道 ( 粤ICP备05003914号 )  
©2000-2023 明经通道 版权所有 本站代码,在未取得本站及作者授权的情况下,不得用于商业用途

GMT+8, 2024-11-25 04:54 , Processed in 0.195207 second(s), 29 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表