飞雪神光
发表于 2024-12-20 20:48:52
wide 发表于 2024-12-20 20:40
楼上的(nth ilst)中的 i 没起作用。
那就加上呗逻辑就是这么个逻辑
gzcsun
发表于 2024-12-20 21:27:10
本帖最后由 gzcsun 于 2024-12-20 21:28 编辑
wide 发表于 2024-12-20 19:01
(defun tt1 (p1 lst)
(setq m t)
(while m
repeat是不能停止,还在用。:lol
要停止就只能单用while。
wide
发表于 2024-12-20 21:34:52
谢谢各位,去掉repeatl了,已经改好。
尘缘一生
发表于 2024-12-20 21:55:10
三领哪有个判定块内是否含有文字实体的
[*];;块内是否存在文字类实体-----(一级)----
[*](defun blkiftxt (bname / blk kua name1 tp loop k)
[*](setq kua (dxf1 bname 2) blk (tblobjname "Block" kua) loop t)
[*](while (and loop (setq name1 (entnext blk)))
[*] (setq tp (dxf1 name1 0))
[*] (cond
[*] ((member tp '("TEXT" "MTEXT" "TCH_TEXT" "TCH_MTEXT" "DIMENSION"))
[*] (setq k t loop nil)
[*] )
[*] ((= tp "INSERT")
[*] (setq k (blkiftxt name1))
[*] )
[*] )
[*] (setq blk name1)
[*])
[*]k
[*])
xyp1964
发表于 2024-12-21 00:35:48
(defun tt1 (p1 lst nn / i p2)
;(tt1 '(1 2 3) '((0 1 2)(0 2 3)(1 2 4)(1 2 5)(2 3 4)(1 2 3)(0 1 2)(0 2 3)(1 2 4)(1 2 5)(2 3 4)) 8)
(setq i 1)
(while (and (< i nn)
(setq p2 (car lst))
(not (equal p1 p2))
)
(setq i (1+ i) lst (cdr lst))
)
lst
)
wide
发表于 2024-12-21 08:15:40
xyp1964 发表于 2024-12-21 00:35
大佬的思路总是那么完美。感谢!{:1_1:}
m809289064j
发表于 2024-12-21 10:49:07
wide 发表于 2024-12-20 18:20
我为了跳出repeat循环,做的就是repeat 套在while里,当repeat运行满足时设置一个跳转函数,这个跳转函数 ...
把REPEAT换成WHILE,就行了,不用套的
m809289064j
发表于 2024-12-21 10:53:53
(defun tt1 (p1 lst)
(setq m t)
;(defun tz () (setq m nil))
(setq i 0 )
(while m
(setq lst1 '())
(setq lst1 (nth i lst))
(setq lst1 (mapcar 'reverselst1))
(if (assoc p1 lst1)
(progn
(setq i (1+ i))
(setq m nil);(tz)
)
)
(setq i (1+ i))
)
)
wide
发表于 2024-12-21 11:39:31
m809289064j 发表于 2024-12-21 10:53
(defun tt1 (p1 lst)
(setq m t)
;(defun tz () (setq m nil))
正解,{:1_1:}
chslwj521
发表于 2024-12-24 08:37:45
用while 设置条件,条件满足时进入下一次循环,不满足时退出