乐筑天下

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

[编程交流] Vbaload Lisp

[复制链接]

35

主题

93

帖子

60

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
194
发表于 2022-7-6 17:17:20 | 显示全部楼层 |阅读模式
如何加载。dvb文件的VBALOAD,然后运行它的VBARUN所有的一个LISP?
回复

使用道具 举报

24

主题

1265

帖子

1028

银币

后起之秀

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

铜币
362
发表于 2022-7-6 17:37:24 | 显示全部楼层
  1. [color=blue][font="Courier New"]
  2. (vl-vbarun "filename.dvb!module.sub")
  3. [/font][/color]

 
另请参见:http://www.caddzone.com/autovbaload.lsp
回复

使用道具 举报

35

主题

93

帖子

60

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
194
发表于 2022-7-6 17:43:59 | 显示全部楼层
它不工作,因为我必须加载。运行前的dvb文件
谢谢你的帮助
回复

使用道具 举报

1

主题

56

帖子

80

银币

初来乍到

Rank: 1

铜币
1
发表于 2022-7-6 17:47:43 | 显示全部楼层
>>(vl vbarun“filename.dvb!module.sub”))
 
>>它不工作,因为我必须加载。运行前的dvb文件
 
它只需要稍微调整一下,仅此而已。从[from”)“to”)“]结尾去掉第二个圆括号,并使用*双*斜杠将完整驱动器\路径名放在那里。
例如:
 
您有一个名为“MyProgram.dvb”的VBA程序,位于名为“Y:\MyFolder”的驱动器文件夹中
 
VBA程序希望运行名为“MySub”的子程序,该子程序位于代码模块“MyModule”中
 
加载命令的格式如下:
 
  1. (vl-vbarun "Y:\\MyFolder\\MyProgram.dvb!MyModule.MySub")

 
 
 
 
 
 
回复

使用道具 举报

2

主题

439

帖子

536

银币

限制会员

铜币
-14
发表于 2022-7-6 17:58:25 | 显示全部楼层
您可以使用:
 
  1. (defun Load_And_Run_VBA(File Procedure / cFile)
  2. (vl-load-com)
  3.      
  4. (defun Get_VBP_List(/ cPr cPat VBPrj pQnt pCnt prLst)
  5.    
  6.    (setq VBPrj(vlax-get
  7.          (vla-get-VBE
  8.           (vlax-get-acad-object))
  9.            'VBProjects)
  10.   pQnt(vla-get-Count VBPrj)
  11.   pCnt 1)
  12.    (repeat pQnt
  13.      (setq cPr(vla-Item VBPrj pCnt))
  14.       (if(vl-catch-all-error-p
  15.     (setq cPat(vl-catch-all-apply
  16.         'vlax-get(list cPr 'FileName))))
  17.   (setq prLst(cons "*Invalid Project*" prLst))
  18.   (setq prLst(cons cPat prLst))
  19. ); end if
  20.      (setq pCnt(1+ pCnt))
  21.      ); end repeat
  22.    prLst
  23.    ); end of Get_VBP_List
  24. (if(setq cFile(findfile File))
  25.    (progn
  26.     (if(not(member cFile(Get_VBP_List)))
  27.       (vl-vbaload cFile)
  28.       ); end if
  29.       (vl-vbarun Procedure)
  30.     ); end progn
  31.    (princ
  32.      (strcat "\n<!> Can't to find VBA Project: '"
  33.         File "' <!> "))
  34.    ); end if
  35. (princ)
  36. ); end of Load_And_Run_VBA

 
例如:
 
  1. (Load_And_Run_VBA "C:\\My VBA Routines\\My program.dvb" "MyProcedure")

 
此代码检查已加载*的列表。dvb文件和加载VBA程序仅一次,但每次都会运行。
回复

使用道具 举报

24

主题

1265

帖子

1028

银币

后起之秀

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

铜币
362
发表于 2022-7-6 18:15:38 | 显示全部楼层
 
错误的该示例将加载DVB文件并运行指定的宏。如果DVB不在支持文件搜索路径中,则需要指定路径,如下所示:
 
  1. [color=blue][font="Courier New"]
  2. (vl-vbarun "\\\\server\\share\\dir\\filename.dvb!module.sub")
  3. [/font][/color]
回复

使用道具 举报

35

主题

93

帖子

60

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
194
发表于 2022-7-6 18:25:01 | 显示全部楼层
谢谢大家,我在附件中制作了Lisp,效果很好,我需要你们的帮助。再次感谢
VB。LSP
回复

使用道具 举报

发表回复

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

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

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

GMT+8, 2025-3-4 16:35 , Processed in 0.378563 second(s), 66 queries .

© 2020-2025 乐筑天下

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