乐筑天下

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

VBA策划

[复制链接]

26

主题

275

帖子

6

银币

后起之秀

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

铜币
379
发表于 2006-10-12 17:31:11 | 显示全部楼层 |阅读模式
在这里开发另一个QuickPlot程序。我对“SendCommand”场景没有问题,基本上是通过“vbCr”完成所有提示的命令行。效果很好。但是现在他们(用户)希望能够绘制模型空间布局的窗口部分。所以,这是我得到的:
旧方法:
  1. Sub plt_18x24()
  2. Call AcadApplication.RunMacro("Q:\Std\ACAD\Support\Lisp\drafting_db.dvb!plot_counter")
  3. ThisDrawing.SendCommand "-plot" & vbCr & "y" & vbCr & "Model" & vbCr & "Oce TDS600 3.x.pc3" & vbCr & "ARCH expand C (24.00 x 18.00 Inches)" & vbCr & "inches" & vbCr & "Landscape" & vbCr & "no" & vbCr & "extents" & vbCr & "fit" & vbCr & "Center" & vbCr & "yes" & vbCr & "comed36x24.ctb" & vbCr & "yes" & vbCr & "n" & vbCr & vbCr & vbCr & vbCr
  4. End Sub

这是我正在尝试开发的:
  1. Sub qplot_d_color()
  2. Call AcadApplication.RunMacro("Q:\Std\ACAD\Support\Lisp\drafting_db.dvb!plot_counter")
  3.     Dim point1 As Variant, point2 As Variant
  4.     point1 = ThisDrawing.Utility.GetPoint(, "Click the lower-left of the window to plot.")
  5.     ReDim Preserve point1(0 To 1)
  6.     point2 = ThisDrawing.Utility.GetPoint(, "Click the upper-right of the window to plot.")
  7.     ReDim Preserve point2(0 To 1)
  8.     ThisDrawing.ActiveLayout.SetWindowToPlot point1, point2
  9.     ThisDrawing.ActiveLayout.GetWindowToPlot point1, point2
  10. ThisDrawing.SendCommand "-plot" & vbCr & "y" & vbCr & "Model" & vbCr & "DesignJet 500.pc3" & vbCr & "ARCH D (36.00 x 24.00 Inches)" & vbCr & "inches" & vbCr & "Landscape" & vbCr & "no" & vbCr & "window" & vbCr & vbCr & vbCr & "fit" & vbCr & "Center" & vbCr & "yes" & vbCr & "C-D-E_Color.ctb" & vbCr & "yes" & vbCr & "n" & vbCr & vbCr & vbCr & vbCr
  11. End Sub

工作正常,除了在没有“矩形”选择LL&UR角时有点错误。除此之外,它也有点俗气。
非常欢迎任何改进。

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

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

使用道具 举报

12

主题

64

帖子

3

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
112
发表于 2006-10-12 18:18:57 | 显示全部楼层
我有一个VBA的快速绘图例程,但没有使用窗口。 让我看看我可以添加什么
回复

使用道具 举报

26

主题

275

帖子

6

银币

后起之秀

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

铜币
379
发表于 2006-10-12 18:29:25 | 显示全部楼层
您可以尝试删除 SendCommand,它几乎总是会给您带来问题。在VB / VBA中绘图并不简单,但也并非不可能。
这可能会让您入门。请记住,我还没有测试过这个。
  1. Public Sub foo()
  2.     Dim config As AcadPlotConfiguration
  3.     Set config = ThisDrawing.PlotConfigurations(ThisDrawing.ActiveLayout.ConfigName)
  4.     config.ConfigName = "Oce TDS600 3.x.pc3"
  5.     config.CanonicalMediaName = "ARCH expand C (24.00 x 18.00 Inches)"
  6.     config.PlotType = acExtents
  7.     config.CenterPlot = True
  8.     config.StandardScale = acScaleToFit
  9.     config.RefreshPlotDeviceInfo
  10.     ThisDrawing.Plot.PlotToDevice config.ConfigName
  11.    
  12. End Sub

回复

使用道具 举报

26

主题

275

帖子

6

银币

后起之秀

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

铜币
379
发表于 2006-10-12 18:57:48 | 显示全部楼层
感谢Cmdr,自从我能够处理任何与VBA相关的内容以来,已经有一段时间了。我一直在设计问题上努力工作,因此我呼吁武装起来。我很感激。
回复

使用道具 举报

26

主题

275

帖子

6

银币

后起之秀

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

铜币
379
发表于 2006-10-12 18:58:44 | 显示全部楼层
谢谢莫恩斯顿,我明天会发布结果。
回复

使用道具 举报

12

主题

64

帖子

3

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
112
发表于 2006-10-13 09:52:04 | 显示全部楼层
这是我的设置例程
,这就是我如何调用它并将大小、旋转、ctb等作为参数传递
现在我们需要做的就是生成一个窗口并将其输入。
回复

使用道具 举报

26

主题

275

帖子

6

银币

后起之秀

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

铜币
379
发表于 2006-10-13 09:56:03 | 显示全部楼层
我发现了这个
  1. layout.GetWindowToPlot LL,UR

,所以你需要做的就是

  1. dim LL(0 to 2) as double
  2. dim UR(0 to 2) as double
  3. 'pseudo code getpoint LL and UR

将LL和UR定义为双精度。
回复

使用道具 举报

26

主题

275

帖子

6

银币

后起之秀

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

铜币
379
发表于 2006-10-13 11:16:31 | 显示全部楼层
谢谢Cmdr,今天有一个截止日期。在你和Mohnston之间,我想有足够的信息可以帮助我弄清楚。
Rush,Rush!
Zooom......
回复

使用道具 举报

26

主题

275

帖子

6

银币

后起之秀

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

铜币
379
发表于 2006-10-13 15:27:48 | 显示全部楼层
我把这件事做好了
  1. Dim LL As Variant, UR As Variant
  2.     LL = ThisDrawing.Utility.GetPoint
  3.     UR = ThisDrawing.Utility.GetPoint
  4.     ThisDrawing.ModelSpace.AddLine LL, UR

所以我能够画一条线,所以你应该能够使用布局。GetWindowToPlot LL,UR
回复

使用道具 举报

发表回复

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

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

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

GMT+8, 2025-7-6 21:39 , Processed in 0.725909 second(s), 81 queries .

© 2020-2025 乐筑天下

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