飞雪神光 发表于 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 设置条件,条件满足时进入下一次循环,不满足时退出
页: 1 [2] 3
查看完整版本: 关于repeat