乐筑天下

搜索
欢迎各位开发者和用户入驻本平台 尊重版权,从我做起,拒绝盗版,拒绝倒卖 签到、发布资源、邀请好友注册,可以获得银币 请注意保管好自己的密码,避免账户资金被盗
查看: 212|回复: 10

AcadApplication.Visible = False

[复制链接]

154

主题

1274

帖子

8

银币

顶梁支柱

Rank: 50Rank: 50

铜币
1936
发表于 2004-10-6 00:00:22 | 显示全部楼层 |阅读模式
好的......这是我的难题......
我正忙着在VB中构建一个应用程序,该应用程序将访问AutoCAD对象模型并使用AutoCAD执行一系列任务...
如果AutoCAD正在运行,我会让AcadApplication可见,但如果应用程序尚未运行,我希望应用程序不可见,因此对用户视图隐藏。
我需要知道我需要跳过哪些环(如果确实可能)来在应用程序隐藏时操作绘图。
例如...有人知道我如何做到这一点吗:
  1. AcadApplication.Visible = False
  2. AcadApplication.ActiveDocument.ModelSpace.AddLine PT1, PT2
  3. AcadApplication.ActiveDocument.Close True
  4. AcadApplication.Quit

本帖以下内容被隐藏保护;需要你回复后,才能看到!

游客,如果您要查看本帖隐藏内容请回复
回复

使用道具 举报

154

主题

1274

帖子

8

银币

顶梁支柱

Rank: 50Rank: 50

铜币
1936
发表于 2004-10-6 09:51:41 | 显示全部楼层
我不知道这是否有任何相关性,但我只是使用Excel工作簿尝试了一下。
我可以创建应用程序,通过从autocad发送信息来操作单元格,并打印出工作表,同时保持其不可见
回复

使用道具 举报

18

主题

222

帖子

51

银币

后起之秀

Rank: 20Rank: 20Rank: 20Rank: 20

铜币
260
发表于 2004-10-6 10:45:56 | 显示全部楼层
我知道你可以用Excel来做,因为它使用了不同的方法来访问数据。AutoCAD使用图形坐标来操作其数据库。我这样做的主要原因是因为我还不能在AutoCAD窗口不是最上面的活动窗口的情况下从外部操纵AutoCAD模型。
回复

使用道具 举报

154

主题

1274

帖子

8

银币

顶梁支柱

Rank: 50Rank: 50

铜币
1936
发表于 2004-10-6 11:06:45 | 显示全部楼层
Keith,如果您从文档集合中访问文档,而不是使用活动文档,并确保不对屏幕做任何事情(重新生成、重新绘制、缩放),它应该可以工作。例如,这是有效的:
  1. Sub test()
  2. Dim AcadApp As AcadApplication 'Object
  3. Dim acadDoc As AcadDocument
  4. Dim dblPt1(2) As Double
  5. Dim dblPt2(2) As Double
  6. Dim dblpt3(2) As Double
  7. dblPt2(1) = 100
  8. dblpt3(0) = 100: dblpt3(1) = 100
  9. Set AcadApp = GetAcadObject
  10. Set acadDoc = AcadApp.Documents.Add("acad.dwt")
  11. AcadApp.Visible = False
  12. acadDoc.SaveAs ("c:\test")
  13. acadDoc.ModelSpace.AddLine dblPt1, dblPt2
  14. acadDoc.ModelSpace.AddLine dblPt2, dblpt3
  15. acadDoc.ModelSpace.AddLine dblpt3, dblPt1
  16. acadDoc.Save
  17. AcadApp.Quit
  18. Set AcadApp = Nothing
  19. End Sub

另一种方法是通过AcadObject使用ObjectDBX,因为它无论如何都不会打开绘图进行编辑。
回复

使用道具 举报

71

主题

928

帖子

8

银币

顶梁支柱

Rank: 50Rank: 50

铜币
1230
发表于 2004-10-6 12:12:14 | 显示全部楼层
凉。。。我会试试的...由于我正在处理现有的图纸,我想我可以打开图纸,抓住drawin对象并在那里操作它,而不是完全通过文档集合。
回复

使用道具 举报

154

主题

1274

帖子

8

银币

顶梁支柱

Rank: 50Rank: 50

铜币
1936
发表于 2004-10-6 16:34:27 | 显示全部楼层
Keith,
只是为了好玩,我在Excel VBA中尝试了这个,它比我预期的要好.  
  1. 'A reference to: ObjectDBX 1.0 Type Library
  2. 'must be set
  3. Sub testme()
  4. Dim oAcad As Object
  5. Dim oDBX As AxDbDocument
  6. Dim strFname As String
  7. Dim dblPt1(2) As Double
  8. Dim dblPt2(2) As Double
  9. Dim dblpt3(2) As Double
  10. Dim oEnt As AcadEntity
  11. dblPt2(1) = 1000
  12. dblpt3(0) = 1000: dblpt3(1) = 1000
  13. Set oAcad = GetAcadObject 'use Keith's function
  14. oAcad.Visible = False
  15. Set oDBX = oAcad.getinterfaceobject("ObjectDBX.AxDbDocument")
  16. strFname = "C:\test.dwg" 'Must use a real path & name
  17. oDBX.Open (strFname)
  18. 'Do some stuff for test purposes
  19. oDBX.ModelSpace.AddLine dblPt1, dblPt2
  20. oDBX.ModelSpace.AddLine dblPt2, dblpt3
  21. oDBX.ModelSpace.AddLine dblpt3, dblPt1
  22. For Each oEnt In oDBX.ModelSpace
  23.     oEnt.Color = acGreen
  24. Next
  25. oDBX.SaveAs strFname
  26. Set oDBX = Nothing
  27. oAcad.Quit
  28. Set oAcad = Nothing
  29. End Sub

回复

使用道具 举报

71

主题

928

帖子

8

银币

顶梁支柱

Rank: 50Rank: 50

铜币
1230
发表于 2004-10-7 00:15:19 | 显示全部楼层
我想当我想在图上执行特定的命令,而不是试图画一个对象时,我的问题就会出现,我可能会发送一系列命令,如plotting、lisp命令、BOM proggies等...我们会看到它是如何工作的。
回复

使用道具 举报

154

主题

1274

帖子

8

银币

顶梁支柱

Rank: 50Rank: 50

铜币
1936
发表于 2004-10-7 22:02:33 | 显示全部楼层
我知道这一点,但它也将允许将相同的确切代码用于任何版本的AutoCAD。
请记住,通过检查注册表中的多个版本,可以很容易地解决当前版本打开的问题(即使用的最后一个版本),如果有,请请求用户想要使用哪个版本。
回复

使用道具 举报

154

主题

1274

帖子

8

银币

顶梁支柱

Rank: 50Rank: 50

铜币
1936
发表于 2004-10-7 23:02:52 | 显示全部楼层
我想你可能已经知道了,但我想无论如何我都应该提出它。如果不是为了你,为了其他试图使用该代码的人。
回复

使用道具 举报

154

主题

1274

帖子

8

银币

顶梁支柱

Rank: 50Rank: 50

铜币
1936
发表于 2004-10-9 08:46:53 | 显示全部楼层
很公平......我通常会尝试在运行时加载对象模型,因为如果用户有任何版本,它通常会工作。
回复

使用道具 举报

发表回复

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

QQ|关于我们|小黑屋|乐筑天下 繁体中文

GMT+8, 2025-7-1 06:54 , Processed in 0.254877 second(s), 72 queries .

© 2020-2025 乐筑天下

联系客服 关注微信 帮助中心 下载APP 返回顶部 返回列表