QQ登录

只需一步,快速开始

登录 | 注册 | 找回密码

三维网

 找回密码
 注册

QQ登录

只需一步,快速开始

展开

通知     

全站
goto3d 说: 此次SW竞赛获奖名单公布如下,抱歉晚了,版主最近太忙:一等奖:塔山817;二等奖:a9041、飞鱼;三等奖:wx_dfA5IKla、xwj960414、bzlgl、hklecon;请以上各位和版主联系,领取奖金!!!
2022-03-11
全站
goto3d 说: 在线网校新上线表哥同事(Mastercam2022)+虞为民版大(inventor2022)的最新课程,来围观吧!
2021-06-26
查看: 6859|回复: 3
收起左侧

[求助] 在CAD中用vba插入图块,如何实现?

[复制链接]
发表于 2011-2-24 22:21:38 | 显示全部楼层 |阅读模式

马上注册,结识高手,享用更多资源,轻松玩转三维网社区。

您需要 登录 才可以下载或查看,没有帐号?注册

x
用vba进行CAD的自动画图,很多东西都是相同的,想用vba调用图块直接画图,请问这应该如何实现?是直接用vba靠指令画图,然后创建为块,还是说用vba直接调用已有的块放着图上?学习这个时间不长,可能连问题都没有说清楚,请帮忙,谢谢了!
发表于 2011-2-26 07:10:45 | 显示全部楼层
本帖最后由 woaishuijia 于 2011-2-26 07:12 编辑 7 `' ^! n; v0 `* u0 ]/ t
% u, {3 M6 X$ l1 O
用VBA创建块的方法:, p# a; R: P1 o8 Y9 a8 g
1.首先使用"Blocks"对象的"Add"方法创建新块("Block"对象)
7 k( T; l/ L- K( A; Q2 d' N& h该方法需要两个参数,第一个是块基点相对于块编辑器WCS的三维坐标(三元素双精度数组),第二个是块名称(字符串)
0 u  d" ~0 n' }4 h该方法的返回值是一个"Block"对象
- u1 K5 f! N3 `3 h2.在已创建的块("Block"对象)中画图,方法与在"ModelSpace"或"PaperSpace"对象中画图一样.
: N  a8 o! M+ C9 h- v  `4 ]& W) C- N$ O8 L7 \% `2 v
用VBA插入块参照的方法:
6 y! ]8 Y% W: ^7 x使用"ModelSpace","PaperSpace"或"Block"对象的"InsertBlock"方法
6 j. B+ n7 E' X) Z该方法需要6个参数,第一个是插入点相对于"ModelSpace","PaperSpace"或"Block"对象的WCS的三维坐标(三元素双精度数组),第二个是块名称(字符串),下面三个分别是X,Y,Z方向的比例,第六个是旋转角度.还有第七个可选的参数"密码",没什么用处.% k. ?  k2 m; o# j, O4 E/ S
该方法的返回值是一个"BlockRef"对象% E5 h* V( P; m$ e

$ h1 u! B5 w) q" _' v* G下面是一个创建块和插入块参照的例程
  1. Sub 创建块和插入块参照()* w4 N4 q4 b5 j
  2.     Dim 块 As AcadBlock, 块基点(2) As Double, 圆心(2) As Double, 插入点(2) As Double- S+ v5 _9 `0 h" @2 P
  3.     With ThisDrawing
    * V0 X! |% N2 n; h3 o
  4.         Set 块 = .Blocks.Add(块基点, "我创建的块" )
    5 x( }4 q1 T) b0 L: ?
  5.         块.AddCircle 圆心, 10
      e( @' G! @. U4 F. P0 R+ q* t
  6.         .ModelSpace.InsertBlock 插入点, "我创建的块", 1, 1, 1, 0" x' s/ h* w! S
  7.     End With% Z+ F5 `0 o* @' R4 Z( J6 K% X2 ]
  8. End Sub
复制代码
 楼主| 发表于 2011-2-26 11:00:34 | 显示全部楼层
首先谢谢woaishuijia 的回复,您的回复对我有很大的帮助,谢谢!
! W6 d1 |  G, y  z$ U4 H/ i现在我有另外一个问题,是这样的:我事先将各个图块画好,并存为dwg的文件,用的时候直接用vba调用,我能实现在调用的时候选择插入点的时候能够在屏幕上直接选择插入点,而不是在程序中固定插入点。但是问题是在选择插入点的时候没有显示这个图块,我的目的是屏幕上显示图块,同时未选定插入点前图块随着鼠标移动。这个能够实现吗?
发表于 2011-3-7 12:45:26 | 显示全部楼层
插入点用GETPOINT获取就可以了
发表回复
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Licensed Copyright © 2016-2020 http://www.3dportal.cn/ All Rights Reserved 京 ICP备13008828号

小黑屋|手机版|Archiver|三维网 ( 京ICP备2023026364号-1 )

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