明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 3433|回复: 14

[源码] 关于命令名的重定义

  [复制链接]
发表于 2011-7-10 19:18:50 | 显示全部楼层 |阅读模式
我们有些时候加
"觉得好,就打赏"
还没有人打赏,支持一下
 楼主| 发表于 2011-7-10 19:29:10 | 显示全部楼层
不好意思,点错了,如下
我们有些时候加些其它外挂的时候,有些命令是不可以重亲定义的

如一个 TEST 命令, 我用LSP定义个 (defun c:test ( ) (princ "test"))

但是运行后还是之前的命令, 这个命令LSP能够定义吗,是不是用ARX,DLL,DVB定义的命令

不知LSP有什么办法可以重新定义该命令,

发表于 2011-7-10 20:30:23 | 显示全部楼层
(vl-acad-undefun 'c:test)
;;这时候在命令行输入test就无效了,但(c:test)仍然有效,接下来就不用我说了,至少有3~4种方法
 楼主| 发表于 2011-7-10 20:54:13 | 显示全部楼层
caoyin 发表于 2011-7-10 20:30
(vl-acad-undefun 'c:test)
;;这时候在命令行输入test就无效了,但(c:test)仍然有效,接下来就不用我说了, ...

caoyin 版主

我测试了下用 (vl-acad-undefun 'c:test)后输入命令行输入test还是 运行先前的命令

用(C:TEST)可以运行是我定义命令,我想输入TEST覆盖先前的TEST命令,不知可以不
发表于 2011-7-10 21:49:02 | 显示全部楼层
加载新的c:test就行了。旧的自然就被覆盖了。
 楼主| 发表于 2011-7-10 22:04:49 | 显示全部楼层
ZZXXQQ 发表于 2011-7-10 21:49
加载新的c:test就行了。旧的自然就被覆盖了。

可能是我表达的不够清楚,
我加载的是个冲模外挂,里面有DVB,DLL,LSP文件,
我想正常情况下,用LSP定义的命令,再用defun重新定义,后面加载的的相同的命令
会覆盖前面的命令,比如有个TEST命令了,而我也有个LSP的TEST命令最后加载

想覆盖,可是不行,运行后还是先前的TEST命令,我想是不是这个命令是DVB或DLL定义的命令啊
这个我不懂,不知有没有解决办法?
发表于 2011-7-10 23:16:07 | 显示全部楼层
试试
(setq 自定义的快捷键 c:外挂的快捷键)
(defun c:自定义的快捷键()(自定义的快捷键))
发表于 2011-7-11 01:12:43 | 显示全部楼层
看蒙了,不知道楼主要干啥,楼上各位讲的很清楚了。
对于底层来说就是把取函数指针复制到另一个内存地址,讲多了你不懂
 楼主| 发表于 2011-7-11 21:14:39 | 显示全部楼层
cnks 发表于 2011-7-11 01:12
看蒙了,不知道楼主要干啥,楼上各位讲的很清楚了。
对于底层来说就是把取函数指针复制到另一个内存地址, ...

先感谢大家的回复, 可能我把问题说的复杂化了
放个图像大家看看,
1: 运行AS命令-----外挂的命令
2:  在命令行输入(defun c:as () (princ "该命令已取消")),定义新AS命令
3:运行AS命令-----还是外挂的命令,不是我定义的
4 在命令行输入(C:AS)是我定义的命令
我想要达到效果的是我输入AS命令.运行的是我的命令
d:\\a.gif
 楼主| 发表于 2011-7-11 21:22:17 | 显示全部楼层
操作步骤如下

本帖子中包含更多资源

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

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

本版积分规则

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

GMT+8, 2025-6-10 04:22 , Processed in 0.167405 second(s), 27 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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