乐筑天下

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

使用VLISP加载-运行-卸载VBA项目

[复制链接]
964

1

主题

1

帖子

1

银币

初来乍到

Rank: 1

铜币
5
发表于 2008-4-21 17:32:54 | 显示全部楼层 |阅读模式

,一个沼泽同胞把我转到了这段代码
  1. (defun c:Command ()
  2. (LOADER "Projectname.dvb")
  3. (VL-VBARUN "Projectname.dvb!Module")
  4. (command "vbaunload" "Projectname.dvb")
  5. )
  6. (defun loader (progname /)
  7. (vl-vbaload (findfile progname))
  8. )

它将加载你的项目,运行宏然后卸载项目。
出于多种原因,我真的很喜欢这个想法,而且效果很好。
但是,如果我有一个宏需要用户选择某些东西,那么有一个问题,
我将代码与一个宏一起使用,该宏要求用户选择一个blockref,这是结果:
  1. Command: test
  2. _.-VBARUN
  3. Macro name: Tools.dvb!Blocklayers.BlockonlayersLoop Pick a blockrefvbaunload

它在用户选择blockref之前发出vbaunload命令...
有谁知道我如何能够暂停卸载,直到用户逃脱或完成拣选?
谢谢,
马克

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

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

使用道具 举报

0

主题

9

帖子

6

银币

初来乍到

Rank: 1

铜币
12
发表于 2008-4-21 18:24:24 | 显示全部楼层
你能发布你的dvb或其中的代码,这样我们就可以看到发生了什么?
回复

使用道具 举报

0

主题

13

帖子

6

银币

初来乍到

Rank: 1

铜币
14
发表于 2008-4-21 19:06:13 | 显示全部楼层
vlisp说的是:Load a DVB。
尽快在该DVB中运行此宏。
尽快卸载DVBAutoCAD在做的时候在想什么:加载DVB必须运行宏,但我忙于运行宏,但我忙于运行宏,但我忙于运行宏,但我忙于运行宏,但我忙于运行宏必须卸载DVB,但我忙于卸载DVB,但我忙于卸载DVB,但我忙于卸载DVB,但我忙于卸载DVBDVB,但我很忙必须卸载DVB,但我忙于卸载DVB,但我忙于卸载DVB,但我正在忙卸载DVB发生在你身上的事情是,一旦你允许用户输入,autocad就不再忙了,正在等待输入, 您的 vlisp 会尽早为它提供输入,这正是您告诉它要做的。
回复

使用道具 举报

0

主题

7

帖子

3

银币

初来乍到

Rank: 1

铜币
7
发表于 2008-4-21 20:26:35 | 显示全部楼层

鲍勃:
我认为ACAD需要多一点耐心
Geeez,想想我们对ACAD有多耐心
那么,当用户选择时,没有办法暂停它吗
我注意到,无论我使用何种方法卸载项目;如果VBA中需要用户输入,则似乎无法通过编程方式卸载它
CM,
这是我们所做的项目,您在其中拾取块,并从块定义表返回层
记住,您帮助编写了循环部分
然而,关键是,无论项目是什么,如果需要用户输入,看起来手动卸载是唯一的方法
马克
回复

使用道具 举报

0

主题

7

帖子

3

银币

初来乍到

Rank: 1

铜币
7
发表于 2008-4-22 11:19:23 | 显示全部楼层
现在没有太多时间,肯定不足以计算出lispy位,但是可以从宏
  1. sub unloadify(strMacro as string)
  2. Dim PauseTime, Start
  3.     PauseTime = 1
  4.     Start = Timer
  5.     Do While Timer < Start + PauseTime
  6.     Loop  'The pause so you give time for the macro to finish before trying to unload
  7. thisdrawing.sendcommand "vbaunload" "Projectname.dvb"

的最后一行运行的lisp等价物呢?它很笨重,但应该可以工作。不过,问题是,为什么您要在使用后卸载它?使用后加载DVB比加载LSP更糟糕吗?
回复

使用道具 举报

0

主题

13

帖子

5

银币

初来乍到

Rank: 1

铜币
15
发表于 2008-4-22 11:35:33 | 显示全部楼层
嘿,鲍勃,我正在看你的宏,但我会先回答你的问题。
如果我不使用一个项目,我更愿意卸载它,但是更大的问题是
如果一个VBA项目被不同的用户共享,你需要编辑它,如果它被加载到某人的机器上,你将如何编辑它?我总是收到只读消息。
所以,我在想,如果您让宏做它该做的事情,然后卸载,您可以在一天中的任何时候编辑它,而不必知道谁加载了它,然后必须联系他们并解释如何卸载它。
据我所知,使用LISP,您可以保持加载例程,并且仍然可以编辑它。
例程更新后,只要重新加载,用户就会获得更新。
如果我错了,请纠正我。
我现在去看看您的宏。
谢谢您。
Mark
回复

使用道具 举报

0

主题

6

帖子

3

银币

初来乍到

Rank: 1

铜币
6
发表于 2008-4-22 11:54:34 | 显示全部楼层
意义。 我不编辑正在使用的副本,我编辑开发副本,然后在一天结束时替换它。 我有几次需要立即更新文件。 我告诉大家关闭acad,这样我就可以进行维护,然后告诉他们再次打开它,但世界不会只按照一个鼓的节奏移动。 可能适合你的东西,可能不适合某些人。
回复

使用道具 举报

0

主题

9

帖子

5

银币

初来乍到

Rank: 1

铜币
9
发表于 2008-4-22 12:05:26 | 显示全部楼层

嘿,这就是我说的,威利斯
回复

使用道具 举报

0

主题

13

帖子

6

银币

初来乍到

Rank: 1

铜币
13
发表于 2008-4-22 12:33:54 | 显示全部楼层

Bob
您的部署方法对于acad.dvb文件是完全有意义的,因为它在用户计算机上一直固有地加载;否则,我宁愿省去每晚部署的麻烦
,我想知道,是否可以共享一个Acad.dvb?
我知道我们在这里共享.pc3文件,尽管有一个说custom.pc3,但总有一个用户只想总是滑上山。
因此,我们只需每天晚上覆盖.pc3文件即可。
那会在他的刀片下放一些雪泥
马克
回复

使用道具 举报

0

主题

8

帖子

5

银币

初来乍到

Rank: 1

铜币
9
发表于 2008-4-22 12:52:24 | 显示全部楼层
我把它们放在黑板上。一个不是标准的标准,根本不是标准。YMMV。如果我有一名员工导致我每天覆盖标准文件,我就会少一名员工。
回复

使用道具 举报

发表回复

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

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

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

GMT+8, 2025-7-4 21:15 , Processed in 0.702366 second(s), 72 queries .

© 2020-2025 乐筑天下

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