mandala 发表于 2011-1-16 14:26:27

各位老大帮忙:求一个函数:有需要时才加载指定的lsp

求一个函数:有需要时才加载指定的lsp……以前在明经里看到过,一下子找不到了。
就是说,平时该lsp或vlx不驻内存,只有在输入这个命令如 “tt”时,才加载tt.lsp,或TT.vlx。

另外能不能在引入lsp或vlx的时候,改掉函数名呢,比如TT.vlx,命令是“tt”,我想使用它时把命令变成“aa”,行不行?

mandala 发表于 2011-1-16 14:28:03

本帖最后由 mandala 于 2011-1-16 14:28 编辑

找到一些很好的程序,可这些老大都把这东西编译成了vlx,没法合并,而且命令都是TT,TT,TT……晕死了。

langjs 发表于 2011-1-16 14:56:19

(defun c:aa ();命令行输入aa,加载"文本查找和替换TTF.lsp",再输入"文本查找和替换TTF.lsp"的主函数执行
(load "文本查找和替换TTF.lsp")
)

mandala 发表于 2011-1-16 15:08:14

楼上这位老大,那么这个"文本查找和替换TTF.lsp" 呢???

danxingpen 发表于 2011-1-16 16:36:07

如果是lsp格式,,参考autoload

mandala 发表于 2011-1-16 16:42:26

等不及各位老大了,自己胡乱搞了一个,似乎能行:


(defun c:kk()(load "tt.vlx")
   (vl-load-com)
   (defun SendKeys (keys / ws)
      (setq ws (vlax-create-object "WScript.Shell"))
      (vlax-invoke-method ws 'sendkeys keys)
      (vlax-release-object ws)
      (princ)
   )
(sendkeys "tt ")
)

cabinsummer 发表于 2011-9-12 20:49:41

5楼正解
(appload "tt.lsp" '("tt"))

fsxm 发表于 2011-9-12 22:10:33

全方位的按需加载,更内置了命令防冲突功能,参见fsxm.mjtd.com

yjr111 发表于 2011-9-12 22:35:16

   如果把调用autoload函数的表达式写在自动加载的acad2xxxdoc.lsp等文件内,那么在Autocad启动时,随着acad2xxxdoc.lsp等文件的自动加载,被调用的autoload函数还可以加载一些LISP文件。调用autoload函数格式如下:
(aotoload LISP文件名命令表)
      该函数要求LISP文件必须在AUTOCAD支持的文件搜索路径下,命令表列出了在该LISP文件中定义的部分的AUTOCAD命令名。无论是否加载成功,该函数均返回nil。
      autoload与load的不同之处是:执行完调用该函数的表达式之后,AUTOCAD只是记录了被加载的LISP文件名和相应的命令表,而LISP文件本身并没有被加载。只有等到命令表内的任意一个命令被调用之后,这个LISP文件才被真正加载,这时该LISP文件所定义的全部AUTOCAD命令才处于可以被调用状态。也就是说,如果某个LISP文件所定义的命令没有被调用,那么这个LISP文件就暂时不被加载到内存,从而节省了内存空间。
例如,文件file1.lsp定义了cmd1、cmd2等多个AUTOCAD命令,该文件存放在AUTOCAD的SUPPORT目录下。在命令行用autoload加载file1.lsp的表达式如下:
命令:(autoload "file1.lsp"   '("cmd1" "cmd2"))
      此后,如果调用file1.lsp文件定义的命令表之外的命令,会显示”未知命令“xxx".按F1查看帮助。”的出错信息,因为该LISP文件尚未被真正加载。如果调用命令表内的任意一个命令,例如调用cmd1,file1.lsp文件才被AUTOCAD真正加载,随后该文件定义的所有命令均可以被调用。
      如果将表达式(autoload "file1.lsp"   '("cmd1" "cmd2")),追加到acad2xxxdoc.lsp等文件的后面,即可在启动autocad时,间接自动地加载了file1.lsp.

yxp 发表于 2013-7-1 00:38:38

yjr111 发表于 2011-9-12 22:35 static/image/common/back.gif
如果把调用autoload函数的表达式写在自动加载的acad2xxxdoc.lsp等文件内,那么在Autocad启动时,随着 ...

CAD2004提示
错误: no function definition: AUTOLOAD
页: [1]
查看完整版本: 各位老大帮忙:求一个函数:有需要时才加载指定的lsp