明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 1444|回复: 11

[提问] 请问,怎么在lisp中修改命令名?

[复制链接]
发表于 2019-10-14 21:01 | 显示全部楼层 |阅读模式
类似贱人工具箱的设置方式,是用什么方式实现的呢?
发表于 2020-2-27 09:14 | 显示全部楼层
菜卷鱼 发表于 2019-10-15 08:41
(defun c:新命令 nil (c:原命令)(prin1))

这个就很好用呀
回复 支持 1 反对 0

使用道具 举报

发表于 2019-10-15 08:41 | 显示全部楼层
(defun c:新命令 nil (c:原命令)(prin1))
回复 支持 1 反对 0

使用道具 举报

发表于 2019-10-15 10:39 | 显示全部楼层
就是在原命令外再套新的命令
发表于 2019-10-15 11:47 | 显示全部楼层
我也想知道
 楼主| 发表于 2019-10-16 17:34 | 显示全部楼层
烟盒迷唇 发表于 2019-10-15 10:39
就是在原命令外再套新的命令

但是在写程序的时候这个命令名是不确定的,怎么能在运行的时候修改代码呢?
发表于 2019-10-16 21:52 | 显示全部楼层
本帖最后由 1291500406 于 2019-10-19 16:10 编辑

无评论,回复撤销了
发表于 2019-10-17 09:56 | 显示全部楼层
(eval (read (strcat "(defun c:" (命令名) "()(" (自定义函数) "))" )))

点评

eval 作用大。今天用到了,谢谢。  发表于 2020-6-27 19:36
 楼主| 发表于 2019-10-17 10:49 | 显示全部楼层
本帖最后由 wyl219 于 2019-10-17 10:56 编辑
wang_cn10 发表于 2019-10-17 09:56
(eval (read (strcat "(defun c:" (命令名) "()(" (自定义函数) "))" )))

解决了,谢谢.
不过有两个小错误,第一个命令名应该是字符串或者格式为字符串的变量.
后面的自定义函数也应该是字符串类型的.否则strcat函数会报错

例如
(eval (read (strcat "(defun c:" "he2" "()((command \"line\")))" ))),即给line命令设置个he2的别名.
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-4-27 00:36 , Processed in 0.226889 second(s), 30 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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