找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 1095|回复: 7

[求助] [求助]:怎么样用lisp程序能透明调用另一个lisp程序?

[复制链接]
发表于 2006-1-3 21:14:01 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

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

×
;透明调用捕捉到垂足点
(defun c:[()
  (princ "<捕捉|PER|透明调用>")
  (command "per")
  (princ)
)


(defun c:d()
  (princ "\n*** 查询真实三维距离→打开正交&对象捕捉&对象追踪 ***")
  (setq cm (getvar "cmdecho"))
  (setq os (getvar "osmode"))
  (setq ot (getvar "orthomode"))
  (setq au (getvar "autosnap"))
  (setq *error* hv_err)
  (setvar "cmdecho" 1)
  (setvar "osmode" 4151)
  (setvar "orthomode" 1)
  (setvar "autosnap" 55)
  (setvar "dimassoc" 2)
  (command "dist")
  (while (/= 0 (getvar "cmdactive"))(command pause))   (setvar "cmdecho" cm)
  (setvar "osmode" os)
  (setvar "orthomode" ot)
  (setvar "autosnap" au)
  (princ)
)


怎么用下面的lisp程序能透明的调用上面的个lisp程序呀?
谢谢!
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
发表于 2006-1-3 22:24:17 | 显示全部楼层
使用 vlax-add-cmd 可以将函数定义为 AutoCAD 命令,而无需在函数名中使用 c: 前缀。用它也可以定义透明 AutoLISP 命令,而对于 c: 函数,这是不可能的
_$ (defun hello-autocad () (princ "hello Visual LISP"))

HELLO-AUTOCAD

_$ (vlax-add-cmd "hello-autocad" 'hello-autocad)

"hello-autocad"

不过我觉得你这个函数需要实现的效果用autohook来做会更好一些,
在autohook中定义
[的功能是‘per 就行了
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2006-1-3 23:09:07 | 显示全部楼层
最初由 snoopychen 发布
[B]使用 vlax-add-cmd 可以将函数定义为 AutoCAD 命令,而无需在函数名中使用 c: 前缀。用它也可以定义透明 AutoLISP 命令,而对于 c: 函数,这是不可能的
_$ (defun hello-autocad () (princ "hello Visual LISP"))
... [/B]


不知道怎么做呀?大哥能不能改改那个per程序呀?
谢谢!
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2006-1-4 17:14:36 | 显示全部楼层
这个把(defun c:[() 改为(defun [()
再加上一句
(vl-load-com)
(vlax-add-cmd "[" '[ "[" 1)
命令就是透明的,不过对这个问题而言,是无法实现的,主要是现在是为了发送一个叫per的段过去,
不知道怎么修改比较好,也请各位指教一下

不过个人还是觉得不如用autohook这个软件来实现楼主的功能,毕竟定义了透明命令还得打'[
而autohook只要打[一个字母就可以的
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2006-1-4 20:23:12 | 显示全部楼层
不过用autohook定义后,不知道能不能导出自定义的文件,能带到其它的机子上用?
谢谢!
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2006-1-5 08:11:57 | 显示全部楼层
我的autohook一般是绿色版的,可以带来带去的,它的定义就是那个.ini文件,autohook也就100~200k
lisp也得经常拷贝在U盘啊
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2006-1-5 20:10:57 | 显示全部楼层
大佬的那个autohook能传上来呢?能不能用于CAD2005&2006上面呀?
谢谢!那个ini文件是不是可以直接用记事本来编辑呀?
谢谢!

andyhua5240@yahoo.com.cn
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2006-2-6 08:54:51 | 显示全部楼层
我把autohook的for 14,2002,2004,2005,2006的程序和key都放在
http://free.ys168.com/?qjchen
可以从这里下载到的
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

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

本版积分规则

QQ|申请友链|Archiver|手机版|小黑屋|辽公网安备|晓东CAD家园 ( 辽ICP备15016793号 )

GMT+8, 2025-9-29 03:14 , Processed in 0.170839 second(s), 44 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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