BigThumper 发表于 2022-7-5 19:20:12

请指出我的愚蠢!

我知道我在做一些显而易见的事情——我只是不知道是什么!我试着一步一步地做,检查每一步的值,不走任何捷径。但是
 
(defun c:listnac()
(setq ln(列表));将ln初始化为空列表
(setq i 0);将i初始化为0
(setq ssfilter’((0。“插入”)(66.1));定义过滤器以选择所有插入的块
(if(setq ss(ssget“_X”ssfilter))(;使用过滤器查询图形
(setq numblocks(sslength ss));获取块数-为什么这会导致“坏函数”:?
(princ(strcat(“块数:“itoa(numblocks)”))
))
)
 
是的,声明的“ln”变量有一个用途,一旦这部分开始工作,我将切换到局部变量。怎么回事$#!@我的(setq numblocks(sslength ss))构造有错吗?!
 
谢谢

Tharwat 发表于 2022-7-5 19:39:26

因为你有一个额外的开放括号。

BigThumper 发表于 2022-7-5 19:45:48

事实证明,我几乎所有的事情都做错了!自我提示。。。尝试学习该语言的实际语法,并说该语言,而不是混合Lisp和C模拟。
 
1.复合语句使用(progn)
2.函数调用使用格式(functionname args)-而不是functionname(args)
 
你可能会认为,即使我没有使用正确的语法,编译器也会知道我想要什么。。。

Tharwat 发表于 2022-7-5 20:04:58

看看下面的mod。
 

(defun c:listnac (/ ss)
(if (setq ss (ssget "_X" '((0 . "INSERT") (66 . 1))))
   (princ (strcat "\nNumber of Attributed Blocks: < " (itoa (sslength ss)) " >"))
   )
(princ)
)

BIGAL 发表于 2022-7-5 20:11:10

这是未来工作的一个明显问题(if(setq ss(ssget“_X”ssfilter))(;查询

Biscuits 发表于 2022-7-5 20:27:38

当我看到“Lamda”时,我总是对这些帖子负责。。。。。。。。。动物之家总是浮现在脑海中。
这会让我进入双重秘密缓刑吗?
页: [1]
查看完整版本: 请指出我的愚蠢!