明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
楼主: wide

[讨论] 关于repeat

[复制链接]
发表于 2024-12-20 20:48:52 | 显示全部楼层
wide 发表于 2024-12-20 20:40
楼上的(nth i  lst)中的 i 没起作用。

那就加上呗  逻辑就是这么个逻辑
回复 支持 反对

使用道具 举报

发表于 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是不能停止,还在用。
要停止就只能单用while。





回复 支持 反对

使用道具 举报

 楼主| 发表于 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
  • )



回复 支持 反对

使用道具 举报

发表于 2024-12-21 00:35:48 | 显示全部楼层
  1. (defun tt1 (p1 lst nn / i p2)
  2.   ;(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)
  3.   (setq i 1)
  4.   (while (and (< i nn)
  5.               (setq p2 (car lst))
  6.               (not (equal p1 p2))
  7.          )
  8.     (setq i (1+ i) lst (cdr lst))
  9.   )
  10.   lst
  11. )
回复 支持 反对

使用道具 举报

 楼主| 发表于 2024-12-21 08:15:40 | 显示全部楼层

大佬的思路总是那么完美。感谢!
回复 支持 反对

使用道具 举报

发表于 2024-12-21 10:49:07 | 显示全部楼层
wide 发表于 2024-12-20 18:20
我为了跳出repeat循环,做的就是repeat 套在while里,当repeat运行满足时设置一个跳转函数,这个跳转函数 ...

把REPEAT换成WHILE,就行了,不用套的
回复 支持 反对

使用道具 举报

发表于 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 'reverse  lst1))
                         (if (assoc p1 lst1)
                                 (progn
                                         (setq i (1+ i))
                                         (setq m nil);(tz)
                                 )
                         )
                         (setq i (1+ i))
            
         )
)
回复 支持 反对

使用道具 举报

 楼主| 发表于 2024-12-21 11:39:31 | 显示全部楼层
m809289064j 发表于 2024-12-21 10:53
(defun tt1 (p1 lst)
         (setq m t)
                 ;(defun tz () (setq m nil))

正解,
回复 支持 反对

使用道具 举报

发表于 2024-12-24 08:37:45 | 显示全部楼层
用while 设置条件,条件满足时进入下一次循环,不满足时退出
回复 支持 反对

使用道具 举报

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

本版积分规则

小黑屋|手机版|CAD论坛|CAD教程|CAD下载|联系我们|关于明经|明经通道 ( 粤ICP备05003914号 )  
©2000-2023 明经通道 版权所有 本站代码,在未取得本站及作者授权的情况下,不得用于商业用途

GMT+8, 2025-4-7 05:55 , Processed in 0.164966 second(s), 19 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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