乐筑天下

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

从VBA Begin Plot事件加载并运行LISP例程

[复制链接]

26

主题

275

帖子

6

银币

后起之秀

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

铜币
379
发表于 2007-8-17 12:52:16 | 显示全部楼层 |阅读模式

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

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

使用道具 举报

26

主题

275

帖子

6

银币

后起之秀

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

铜币
379
发表于 2007-8-17 12:54:22 | 显示全部楼层
这是绝对可能的。
回复

使用道具 举报

26

主题

275

帖子

6

银币

后起之秀

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

铜币
379
发表于 2007-8-17 13:04:24 | 显示全部楼层
最好在你的Acad2中提前加载Lisp???doc.lsp如下内容:
  1. (load "c:/Path/LispRoutine")

然后将其放在dvb的“ThisDrawing”部分:
  1. Private Sub AcadDocument_BeginPlot(ByVal DrawingName As String)
  2.     ThisDrawing.SendCommand "(LispRoutine)" & vbCr
  3. End Sub

回复

使用道具 举报

26

主题

275

帖子

6

银币

后起之秀

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

铜币
379
发表于 2007-8-17 13:17:11 | 显示全部楼层
好吧,就这么办(没测试过):
  1. Private Sub AcadDocument_BeginPlot(ByVal DrawingName As String)
  2.     ThisDrawing.SendCommand "(load "c:/Path/LispRoutine")" & vbCr
  3.     ThisDrawing.SendCommand "(LispRoutine)" & vbCr
  4. End Sub

回复

使用道具 举报

71

主题

928

帖子

8

银币

顶梁支柱

Rank: 50Rank: 50

铜币
1230
发表于 2007-8-17 13:23:53 | 显示全部楼层

这是一个很好的尝试
它仍然在第一行出错,所以我尝试了
  1. Private Sub ACADApp_BeginPlot(ByVal DrawingName As String)
  2. ThisDrawing.SendCommand Load("c:/custom/color2style") & vbCr     [code]Private Sub ACADApp_BeginPlot(ByVal DrawingName As String)
  3. For each Drawingname in Thisdrawing.Modelspace
  4. ThisDrawing.SendCommand Load("c:/custom/color2style") & vbCr     <-----
  5. ThisDrawing.SendCommand "(color2style)" & vbCr
  6. Next Drawingname
  7. End Sub

回复

使用道具 举报

26

主题

275

帖子

6

银币

后起之秀

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

铜币
379
发表于 2007-8-17 15:16:16 | 显示全部楼层
所以你想在绘图前加载CTB/PC3?如果是这种情况,为什么不使用quickplot类型的函数,一个包含所有打印参数的按钮/命令,例如:
  1. ThisDrawing.SendCommand "-plot" & vbCr & "y" & vbCr & "Model" & vbCr
  2. & "Oce TDS600 3.x.pc3" & vbCr & "ARCH expand D (36.00 x 24.00 Inches)" & vbCr
  3. & "inches" & vbCr & "Landscape" & vbCr & "no" & vbCr & "extents" & vbCr & "fit"
  4. & vbCr & "Center" & vbCr & "yes" & vbCr & "comed36x24.ctb" & vbCr & "yes" & vbCr
  5. & "n" & vbCr & vbCr & vbCr & vbCr

这当然不能真正回答您最初的问题,但它确实完成了工作(如果您需要这样做的话)。
回复

使用道具 举报

26

主题

275

帖子

6

银币

后起之秀

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

铜币
379
发表于 2007-8-18 09:46:29 | 显示全部楼层
或者,为什么不将 lisp 转换为 VBA?
或者,搜索 VLAX。CLS使得在VBA中使用lisp变得相当容易。
SendCommand 的问题是 A。)事件不喜欢命令调用,以及 B。不与 VBA 应用程序同步处理。
回复

使用道具 举报

26

主题

275

帖子

6

银币

后起之秀

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

铜币
379
发表于 2007-8-18 10:42:53 | 显示全部楼层

我喜欢学习,有时很有趣。
谢谢Jeff,
我前阵子遇到了这个问题,但是忘记了它的复杂性。
回复

使用道具 举报

发表回复

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

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

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

GMT+8, 2025-7-6 10:19 , Processed in 1.889542 second(s), 69 queries .

© 2020-2025 乐筑天下

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