找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 2420|回复: 10

[求助] defun定义函数时,后面有的加"c:",有的不加,为什么

[复制链接]
发表于 2019-5-2 11:20:02 | 显示全部楼层 |阅读模式

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

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

×
大家好,我想了解一下,defun在定义函数时,什么情况下采用这种形式(defun 函数名 (变元/局部变量) 表达式);什么情况下又采用这种形式(defun c: 函数名 (/局部变量) 表达式)
我一直不了解两者的区别,有的资料上说,加c是添加autocad命令,可是没有加c的函数也能在autocad中调用啊。
请大神们解惑,多谢。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!

已领礼包: 6625个

财富等级: 富甲天下

发表于 2019-5-2 11:32:26 | 显示全部楼层
(defun C:MyLine () ....)
command:  MyLine  <===调用

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

使用道具 举报

已领礼包: 6056个

财富等级: 富甲天下

发表于 2019-5-2 13:50:18 | 显示全部楼层
加C的可以当作命令直接调用,没加C的作为自定义函数调用。不知道我的理解正不正确。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 19个

财富等级: 恭喜发财

发表于 2019-5-2 14:02:01 | 显示全部楼层
带C:的, C:后面的,可以在COMMAND:后面直接作为命令名执行
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 5295个

财富等级: 富甲天下

发表于 2019-5-2 15:28:48 | 显示全部楼层
有C:的一般可以在命令行直接调用,没有的,则不能直接调用,只能由函数调用。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2019-5-2 16:17:10 | 显示全部楼层
tzfcn 发表于 2019-5-2 15:28
有C:的一般可以在命令行直接调用,没有的,则不能直接调用,只能由函数调用。

感觉下面这个函数能直接调用啊,我还不是很理解,请指教。
(defun volume (a b c / v)
   (setq v (* a b c))
)

点评

在命令行直接调用=相当于系统命令,如:L(画线) 只能由函数调用=命令行中输入函数名则出现未知命令  详情 回复 发表于 2019-5-2 19:25
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2019-5-2 16:25:09 | 显示全部楼层
Lisphk 发表于 2019-5-2 14:02
带C:的, C:后面的,可以在COMMAND:后面直接作为命令名执行

谢谢解答。
书上也这么说,意思是在autocad中,用command调用它的时候能够调用,就像调用line一样,而如果没有c,就不能用command调用了,是吗?
所以加不加c都一样,只要不用command调用它?
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2019-5-2 16:27:53 | 显示全部楼层
kqqt6236 发表于 2019-5-2 13:50
加C的可以当作命令直接调用,没加C的作为自定义函数调用。不知道我的理解正不正确。

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

使用道具 举报

 楼主| 发表于 2019-5-2 16:35:50 | 显示全部楼层
Underway 发表于 2019-5-2 11:32
(defun C:MyLine () ....)
command:  MyLine

谢谢,试了一下,明白就是在调用函数时,带c的是直接输入”函数名“,不带c的需要输入”括号+函数名“。
请问,除了这点区别,其他是不是没了。在写程序时,加不加c都行是吧?
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 5295个

财富等级: 富甲天下

发表于 2019-5-2 19:25:27 | 显示全部楼层
genista1 发表于 2019-5-2 16:17
感觉下面这个函数能直接调用啊,我还不是很理解,请指教。
(defun volume (a b c / v)
   (setq v (* a ...

在命令行直接调用=相当于系统命令,如:L(画线)
只能由函数调用=命令行中输入函数名则出现未知命令
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 6056个

财富等级: 富甲天下

发表于 2019-5-3 14:41:25 | 显示全部楼层
有没有大佬给出一个专业的解释呢?
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-4-20 11:04 , Processed in 0.362342 second(s), 51 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

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