本帖最后由 Gu_xl 于 2015-9-5 08:58 编辑
当看别人的代码时,不明白的时候可以去找AutoLisp函数(葵花宝典).chm文件相应的知识。
但当自己看的代码还不多的时候,对很多函数还不了解的时候,自己写代码想要用到一个功能的函数,却不知道是否有这样的函数,像这种情况下,应该如何自学?如何搜索相关命令?
以上问题主要是在改编他人代码的时候,遇到的,具体问题如下:
需要将一个字符串“1,2,3,4,5”里的“,3”删除,想要得到剩下内容的新字符串“1,2,4,5”。这里不适合用substr命令,因为我删除的对象自己并不知道“,3”在哪里。
遇到这个问题后,应该如何找寻有关字符串的所有函数?
这个具体的问题是否有函数可以解决?
原代码如下: - (defun C:fe (/ ES EN EL i fl clay)
- (princ "冻结自己.")
- (setq ES (ssget)
- i 0
- EN ""
- EL nil
- FL nil)
- (while (/= EN nil)
- (setq EN (ssname ES i)
- EL (cons EN EL)
- i (1+ i)
- )
- )
- (setq EL (cdr EL)
- FL (cdr (assoc ' 8 (entget (car EL))))
- EL (cdr EL)
- )
- (repeat (- i 2)
- (setq EN (cdr (assoc ' 8 (entget (car EL))))
- FL (strcat EN "," FL)
- EL (cdr EL)
- )
- )
-
- (command "LAYER" "F" (eval FL) "")
- (princ))
这个代码是用来冻结选中的图层,变量FL代表的是字符串,比如:“1,2,3,4,5",但冻结对于当前层不可操作,所以我要把当前层的图层”3“排除掉,想变成”1,2,4,5"。是否可以解决?
|