QQ登录

只需一步,快速开始

登录 | 注册 | 找回密码

三维网

 找回密码
 注册

QQ登录

只需一步,快速开始

展开

通知     

查看: 3866|回复: 9
收起左侧

[已答复] VBA如何新建图形

[复制链接]
发表于 2009-3-11 15:54:13 | 显示全部楼层 |阅读模式 来自: 中国福建福州

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

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

x
我执行自己写的画图程序。。。第一次执行还好。。第二次执行后的图就重叠在第一次画的那个图上了。。7 H6 X( d. x( Q

" G" E/ V1 P1 j% I% j4 O, g, x+ A用什么语句命令可以新建图形。。。保证每次画图都是独立的?
2 i+ x+ A4 a9 ^4 i8 ]4 e, @  R
% ^6 ?- h' O0 {, p+ L/ Q: _请高手指导~~谢谢!
发表于 2009-3-11 18:13:13 | 显示全部楼层 来自: 中国河北石家庄
第二次执行前需首先给出要画图的坐标,如果循环作图,相应的坐标应该循环给出。
' f( G, t+ X0 ]把你的程序拿出来看看,版主会给你指导的。
 楼主| 发表于 2009-3-12 14:17:22 | 显示全部楼层 来自: 中国福建福州
我的意思是。。每次我运行程序,都要在新建。。。然后建立新图
5 Q9 d2 @* P4 w! p& T' F% [! ?8 s3 A, T
: e7 M& Q* m4 S! A) Y# j9 _' U5 o
如果不这么做,就会每次运行的图都重合在一起,必须要新建,,建立新图一下,才行,,7 Z4 Y+ p5 ]* f

9 ?) E; d5 m4 r现在我想知道的是如何用VBA命令。。建立一个新图,不用我再去手动点击那个新建。。
发表于 2009-3-12 16:49:05 | 显示全部楼层 来自: 中国辽宁鞍山
将坐标错开,让图形分开不是更好么?
发表于 2009-3-12 20:30:48 | 显示全部楼层 来自: 中国北京
加入如下语句:3 G  p1 {) g% u1 x: @# z- d0 C( w
Dim doc As AcadDocument( p& q! X) B% O6 q
Set doc = AutoCAD.Application.Documents.Add

评分

参与人数 1三维币 +5 收起 理由
woaishuijia + 5 应助

查看全部评分

发表于 2009-3-13 06:06:27 | 显示全部楼层 来自: 中国
补充几点
: P9 m: o2 v3 g5 U- B" l一、如果是在ACAD的VBA中新建文档,可以写成楼上的形式,并在这个用Doc变量引用的新文档中进行画图操作。也可以写成这样的形式
  1.     Dim Doc As AcadDocument3 Y* w1 J8 J- s2 U7 F5 p
  2.     Set Doc = ThisDrawing.Application.Documents.Add()
    ! w4 R" f" Q, Y% H
复制代码
还可以写成
  1.     Dim Doc As AcadDocument2 Z8 E9 \0 G) N& `5 l- [) O
  2.     Set Doc = Documents.Add()
    % I' p( t( G  y( Z9 w
复制代码
这是因为,在ACAD的VBA中,AutoCAD.Application是全局对象,使用它的方法和属性时可以省略
5 ^2 W0 a; J) b7 _6 C' x* `3 X二、如果在VB或其它应用程序的VBA中调用ACAD,首先应该保证有一个正在运行的ACAD进程,完整的代码可以这样写
  1.     Dim CAD As AcadApplication, Doc As AcadDocument7 T! o+ f+ l& E5 k* U8 ^8 l0 g
  2.     On Error Resume Next) M, ]0 t8 `6 ~9 _% k
  3.     Set CAD = GetObject(, "autocad.application")" d. K/ x  }5 }
  4.     If Err Then1 |. d7 w8 {' D, ?/ d: U( b6 N/ c
  5.         Set CAD = CreateObject("autocad.application")
    % C5 z( A% o5 {1 F5 V) S3 y4 H
  6.         Err.Clear9 T, z  v/ z; C6 M2 z( J$ H* S
  7.     End If
    4 U1 ~; H# l' H2 o4 v1 s$ l- `2 a
  8.     CAD.Visible = True
    ) ^3 y4 K  e3 O
  9.     Set Doc = CAD.Documents.Add()
复制代码
发表于 2009-11-4 14:03:22 | 显示全部楼层 来自: 中国天津
原帖由 woaishuijia 于 2009-3-13 06:06 发表 http://www.3dportal.cn/discuz/images/common/back.gif0 {! L% ~; B' G0 v: k
补充几点
5 V3 M- `0 q2 e( _. M一、如果是在ACAD的VBA中新建文档,可以写成楼上的形式,并在这个用Doc变量引用的新文档中进行画图操作。也可以写成这样的形式    Dim Doc As AcadDocument7 H1 Z) W; x" r. K3 w
    Set Doc = ThisDrawing.Application.Docum ...
" B& s' P4 w; }" }4 \
# N9 R! W4 l8 \# t5 J0 Z( ^
如果要设置新建文件的模版,在那里添加?
4 t) \& T9 ^* r2 }8 V: }! z+ m0 T6 b% g0 B! R; i- s
在括号里面加入吗?
发表于 2009-11-5 09:19:36 | 显示全部楼层 来自: 中国天津
Set doc = AutoCAD.Application.Documents.Add("ACADISO.DWT")
5 p. C6 Q7 ]& j+ C* w; z: s9 @0 n7 x; b. ]. x
可以实现新建指定模版(ACADISO.DWT)的文件

评分

参与人数 1三维币 +5 收起 理由
woaishuijia + 5 应助

查看全部评分

发表于 2010-12-16 19:37:54 | 显示全部楼层 来自: 中国江西南昌
感觉很复杂
头像被屏蔽
发表于 2010-12-23 13:29:44 | 显示全部楼层 来自: 中国辽宁辽阳
提示: 作者被禁止或删除 内容自动屏蔽
发表回复
您需要登录后才可以回帖 登录 | 注册

本版积分规则


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

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

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