明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 14408|回复: 31

怎样启动时自动加载dvb文件?

    [复制链接]
发表于 2004-2-13 20:18:00 | 显示全部楼层 |阅读模式
如题.不然每次都要手动加载,麻烦之极.
发表于 2004-2-14 12:39:00 | 显示全部楼层
这样的问题论坛挺多的,自己搜索一下吧
发表于 2004-2-15 12:27:00 | 显示全部楼层
在“实用函数”里的autovbaload函数可以完成你说的功能!去找找!
发表于 2004-3-13 10:00:00 | 显示全部楼层

把dvb文件放到support目录下就可以了

把dvb文件放到support目录下就可以了
发表于 2004-3-13 10:05:00 | 显示全部楼层
补充一点:不过要把.dvb文件改成acad.dvb ,再放入support目录下
发表于 2004-3-13 21:05:00 | 显示全部楼层
在acad.dvb的SUB ACADStartup中加入加载DVB工程文件的语句
发表于 2004-3-13 21:23:00 | 显示全部楼层
我的建议是将加载DVB文件的语句写到acad2004doc.lsp文件中。原因是:acad2004doc.lsp文件是文本文件,所以可以在写安装程序时直接在该文件末尾添加相关的内容,而不象acad.dvb文件不能用文本编辑器修改,只能用文件覆盖。如果只加载,不运行,可以象这样写上:
;;加载VBA程序
  1. (vl-vbaload (findfile "UnNameGroup.dvb"))
  2. (vl-vbaload (findfile "AutoPlotConfig.dvb"))
  3. (vl-vbaload (findfile "SetDwgProp.dvb"))
  4. (vl-vbaload (findfile "AutoLayer.dvb"))
复制代码
如果想将DVB文件做一些LSP命令调用,可以这样:
  1. ;;给标注增加括号的命令
  2. (defun c:ab()
  3.        (setvar "cmdecho" 0)
  4.        (command "-vbarun" "adddia.dvb!AddBracket")
  5.        (setvar "cmdecho" 1)
  6. (princ)
  7. )
发表于 2004-3-14 11:15:00 | 显示全部楼层
我的做法是:在acad2004doc中加入语句

  1. (load "my.lsp")
复制代码


在my.lsp中写一系列的语句:

  1. (defun c:DrawT () (command "-vbarun" "DrawT.dvb!Module1.DrawT"))


drawt.dvb文件要在支持目录中。


这样的好处是,不用每次启动都加载dvb文件,只有在用到这个命令时才加载。
 楼主| 发表于 2004-3-14 14:23:00 | 显示全部楼层
谢谢各位,


我现在有这么一个问题,在acad2000.lsp加载dvb时,每打开一个新图都会重新加载一次,由于我的dvb中有一个menu子程序,用处是在acad新建一个菜单.在加载dvb时就执行这个子程序,这样经常出现问题,在打开新图时停在了vbarun处,然后就无任何反应,绘图区域鼠标无显示,命令行也不接受按键,即使时关闭cad也显示有命令未执行完毕,不能关闭.


我怀疑是由于前一幅图已经新建了菜单,再打开其他图执行到menu时发现有重名的菜单因此冲突.但这也不是绝对的,并不是所有的打开新图都会错误.


因此我的目标是只在autocad打开时加载dvb,执行menu,以后打开新图都不会重新加载dvb文件.请教如何实现?
发表于 2004-3-14 16:28:00 | 显示全部楼层
一个变通的做法:


在dvb文件里加一个判断,如果已经有这个菜单了,就不再往下运行。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|CAD论坛|CAD教程|CAD下载|联系我们|关于明经|明经通道 ( 粤ICP备05003914号 )  
©2000-2023 明经通道 版权所有 本站代码,在未取得本站及作者授权的情况下,不得用于商业用途

GMT+8, 2024-11-26 22:49 , Processed in 0.184779 second(s), 24 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表