明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 2033|回复: 4

[原创][函数]让VBA程序的加载执行更简单

[复制链接]
发表于 2004-10-25 22:06:00 | 显示全部楼层 |阅读模式
本帖最后由 作者 于 2004-10-26 7:34:49 编辑

一直以来,VBA程序的加载执行都是大家讨论的热点,而且一直也没有一种非常简单的方法来解决。以下给出的这种方法到目前为止应该是最简单的方法:
  1. (vl-load-com)
  2. ;;自动加载VBA程序的函数
  3. ;;本函数由明经通道mccad开发,版权所有,复制使用时请保留版权信息
  4. (defun AutoVBALoad (app cmdliste / qapp )
  5.    (setq qapp (strcat """ app """))
  6.    (mapcar
  7.        '(lambda (cmd / nom_cmd dot nodotcmd)
  8.              (progn
  9.    (setq dot (vl-string-search "." cmd))
  10.    (if   dot
  11.        (setq nodotcmd (substr cmd (+ dot 2)))
  12.        (setq nodotcmd cmd)
  13.    )
  14.    (setq nom_cmd (strcat "C:" nodotcmd))
  15.    (eval
  16.            (read (strcat
  17.              "(defun " nom_cmd "( / rtn)"
  18.                  "(if (setq app(fdvbfile " qapp "))"
  19.                      "(vl-vbarun (strcat app "!" cmd ""))"
  20.                      "(nodvbfile " qapp "))"
  21.              "(princ))"
  22.            )
  23.            )
  24.    )
  25.              )
  26.          )
  27.        cmdliste
  28.    )
  29.    nil
  30. )
  31. (defun fdvbfile  (app)
  32.    (if (not (findfile app))
  33.        (if (not (findfile (strcat app ".dvb")))
  34.            nil
  35.            (strcat app ".dvb")
  36.        )
  37.        app
  38.    )
  39. )
  40.       
  41. (defun nodvbfile (filename)
  42.    (princ (strcat "\n文件 " filename
  43.          "(.dvb) 在搜索路径文件夹中未找到。" ) )
  44.    (princ "\n请检查支持文件的安装,然后重试。")
  45.    (princ)
  46. )
函数的使用方法就象AutoLISP中的autoload函数:
(AutoVBALoad "dvb文件" 过程名列表))
例如DrawLine.dvb文件中有两个过程,一个在Thisdrawing模块中的Draw2Line过程,一个在Draw模块中的Draw3Line过程。则可以通过以下LISP语句来定义命令,这样则可以在命令行中使用Draw2Line或Draw3Line执行相对应的过程。
(AutoVBALoad "DrawLine" '("Draw2Line" "Draw.Draw3Line"))

评分

参与人数 1金钱 +10 贡献 +12 激情 +11 收起 理由
雪山飞狐_lzh + 10 + 12 + 11 【好评】好程序

查看全部评分

发表于 2004-10-28 23:15:00 | 显示全部楼层
虽然我还不会用,但对明兄的无私奉献,也要狂顶一下
发表于 2004-10-29 09:09:00 | 显示全部楼层
要是不用输入过程名列表就好了,对于未加密的DVB可以通过VBE对象获得过程名列表,加密的有没有办法获得?
发表于 2004-11-2 10:52:00 | 显示全部楼层
恩!小弟认为加不加密还是其次,因为作者不让你看还是不要勉强的好!最主要的是好像不太实用(老大各位不要用西红柿攻击偶哦,我会拿它做番茄炒蛋的^_^Y)!小弟水平有限!HOHO!但小弟有个想法可不可以这样实现这个程序?先做个LSP里的命令,运行后加载DVB文件!然后弹出下列对话框进行编辑!





把完全命令和简写命令按字母顺序写进cad.pgp这样一来应该可以!不知道小弟的这一想法能否实现?如有不成熟的地方还请指教!

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

x
发表于 2004-11-5 16:30:00 | 显示全部楼层
哈哈!哈哈哈哈!不错啊!有创意!我喜欢!
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

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

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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