QQ登录

只需一步,快速开始

登录 | 注册 | 找回密码

三维网

 找回密码
 注册

QQ登录

只需一步,快速开始

展开

通知     

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

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

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

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

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

x
我执行自己写的画图程序。。。第一次执行还好。。第二次执行后的图就重叠在第一次画的那个图上了。。' ~. u' |! ~! L& g; F! K$ w+ a
5 |8 p6 J1 t5 l0 w" l' N% f
用什么语句命令可以新建图形。。。保证每次画图都是独立的?
9 A5 o8 K/ m0 ]2 L! A
" d3 a8 I3 ?; x. b8 K请高手指导~~谢谢!
发表于 2009-3-11 18:13:13 | 显示全部楼层 来自: 中国河北石家庄
第二次执行前需首先给出要画图的坐标,如果循环作图,相应的坐标应该循环给出。5 \4 t# n4 \4 p. J6 a3 p* Z. S; l% F
把你的程序拿出来看看,版主会给你指导的。
 楼主| 发表于 2009-3-12 14:17:22 | 显示全部楼层 来自: 中国福建福州
我的意思是。。每次我运行程序,都要在新建。。。然后建立新图1 [3 d- ^% P7 W8 U3 R% u2 g, H

5 P, ^/ W2 w" m1 b* A8 [1 C6 k. P8 p5 r3 Z0 [- t
如果不这么做,就会每次运行的图都重合在一起,必须要新建,,建立新图一下,才行,,- h* a5 @  y- X
9 |+ z1 H9 v* r. E8 \# r
现在我想知道的是如何用VBA命令。。建立一个新图,不用我再去手动点击那个新建。。
发表于 2009-3-12 16:49:05 | 显示全部楼层 来自: 中国辽宁鞍山
将坐标错开,让图形分开不是更好么?
发表于 2009-3-12 20:30:48 | 显示全部楼层 来自: 中国北京
加入如下语句:4 }% O& q, L# V0 `2 y& G1 _1 D8 {# D$ ^
Dim doc As AcadDocument
7 i2 T8 T( k7 i) @# Y: T Set doc = AutoCAD.Application.Documents.Add

评分

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

查看全部评分

发表于 2009-3-13 06:06:27 | 显示全部楼层 来自: 中国
补充几点
5 r5 _8 g/ x; l; {  D一、如果是在ACAD的VBA中新建文档,可以写成楼上的形式,并在这个用Doc变量引用的新文档中进行画图操作。也可以写成这样的形式
  1.     Dim Doc As AcadDocument
    & P1 G; Z/ f! d( p" U$ {
  2.     Set Doc = ThisDrawing.Application.Documents.Add()3 ]+ D' @. w9 t: L& b6 ?
复制代码
还可以写成
  1.     Dim Doc As AcadDocument
    6 c7 o. y( b% K* k- G9 n" |
  2.     Set Doc = Documents.Add()
    $ F) I( ?2 m2 G7 Q. a6 b' t
复制代码
这是因为,在ACAD的VBA中,AutoCAD.Application是全局对象,使用它的方法和属性时可以省略% v" _2 R8 w4 d' E3 \  n2 W
二、如果在VB或其它应用程序的VBA中调用ACAD,首先应该保证有一个正在运行的ACAD进程,完整的代码可以这样写
  1.     Dim CAD As AcadApplication, Doc As AcadDocument
    3 V5 V" \$ s, Z
  2.     On Error Resume Next
    1 H5 i( f- B6 X
  3.     Set CAD = GetObject(, "autocad.application")
    5 p& I& n5 j; [2 {9 N& g
  4.     If Err Then
    % i! a+ d* @6 U. @% M  C/ L
  5.         Set CAD = CreateObject("autocad.application")
    8 |* R; D& U0 }) K; K! U
  6.         Err.Clear
      ^% y; H1 m$ F  F8 l2 m
  7.     End If4 {9 t* a/ W: b, y0 h
  8.     CAD.Visible = True4 j; ^" J3 c3 U  N( s9 k
  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.gif
2 z% h% B0 @) Q$ }  g/ U: H补充几点
6 h2 W7 L( w: ]# r7 i一、如果是在ACAD的VBA中新建文档,可以写成楼上的形式,并在这个用Doc变量引用的新文档中进行画图操作。也可以写成这样的形式    Dim Doc As AcadDocument
9 B. k1 ?( k0 k5 c/ o; P    Set Doc = ThisDrawing.Application.Docum ...

. T1 s8 W% H; q8 b6 N* M6 ^
8 b. F" z$ e  l4 m! z3 P如果要设置新建文件的模版,在那里添加?7 B8 |* _4 x- j1 n
- L' F4 ~4 ]3 v8 G, B$ K. g& c+ O# R
在括号里面加入吗?
发表于 2009-11-5 09:19:36 | 显示全部楼层 来自: 中国天津
Set doc = AutoCAD.Application.Documents.Add("ACADISO.DWT"): ~; B$ l& k1 q2 U
! q9 S, y9 c1 a7 T
可以实现新建指定模版(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 )

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