明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 1610|回复: 11

[提问] 命令嵌套深度不能超过四层

[复制链接]
发表于 2018-10-3 13:39:06 | 显示全部楼层 |阅读模式
(defun c:1 ()
  ;;;(xlr-get-ptn  对象)获取多段线坐标列表
(defun xlr-get-ptn (enmae / new_ls l2 l1)
;;;  (setq enmae (car (entsel )))
  (setq l1 (entget enmae))
  (setq new_ls nil)
  (foreach l2 l1
    (if        (= 10 (car l2))
      (setq new_ls (cons (cdr l2) new_ls))
    )
  )
  (reverse new_ls)
)
(SETQ P1 (GETPOINT"\n指定第一点"))
(setq p2 (getpoint"\n指定第二点"))
(setq p3 (getpoint"\n指定第三点"))
(command "DJF3" "0.2" p1 p2 "")
(setq en (entlast))
(command "offset" "4" en p3 "")
(setq en1 (entlast))
(setq en_zb (xlr-get-ptn  en))
(setq en1_zb (xlr-get-ptn  en1))
(setq jd_zb (inters (car en_zb) (cadr en1_zb) (cadr en_zb) (car en1_zb)))
(entmake (list '(0 . "TEXT") (cons 1 "道路") (cons 10 jd_zb) (cons 40 1.5) (cons 41 1) (cons 7 "细等线体") (cons 8 "TK")(cons 71  0) (cons 72 1) (cons 73 2) (cons 11 jd_zb))))
请问为啥这段代码 总是会出现 命令嵌套深度不能超过四层的问题呢? 哪里有嵌套?





本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

x
发表于 2018-11-9 20:30:41 | 显示全部楼层
  1. (defun c:tt ()
  2.   (while (and (setq p1 (getpoint "\n指定第一点: "))
  3.               (setq p2 (getpoint p1 "\n指定第二点: "))
  4.               (setq p3 (getpoint p2 "\n指定第三点: "))
  5.          )
  6.     (command "pline" p1 "w" "0.2" "" p2 "")
  7.     (command "offset" "4" (entlast) p3 "")
  8.     (setq s1 (entlast)
  9.           p3 (vlax-curve-getEndPoint s1)
  10.           p4 (vlax-curve-getStartPoint s1)
  11.           pt (inters p1 p3 p2 p4)
  12.     )
  13.     (entmake (list '(0 . "TEXT")
  14.                    (cons 1 "道路")
  15.                    (cons 10 pt)
  16.                    (cons 40 1.5)
  17.                    (cons 41 1)
  18.                    (cons 7 "HZDX")
  19.                    (cons 8 "TK")
  20.                    (cons 71 0)
  21.                    (cons 72 1)
  22.                    (cons 73 2)
  23.                    (cons 11 pt)
  24.              )
  25.     )
  26.   )
  27.   (princ)
  28. )
发表于 2018-10-5 11:55:02 | 显示全部楼层

(defun c:1 ()
  ;;;(xlr-get-ptn  对象)获取多段线坐标列表
  (defun xlr-get-ptn (enmae / new_ls l2 l1)
    (setq l1 (entget enmae))
    (setq new_ls nil)
    (foreach l2 l1
      (if        (= 10 (car l2))
        (setq new_ls (cons (cdr l2) new_ls))
        )
      )
    (reverse new_ls)
    )
  (SETQ P1 (GETPOINT"\n指定第一点"))
  (setq p2 (getpoint"\n指定第二点"))
  (setq p3 (getpoint"\n指定第三点"))
  (command "pline" "0.2" p1 p2 "")
  (setq en (entlast))
  (command "offset" "4" en p3 "")
  (setq en1 (entlast))
  (setq en_zb (xlr-get-ptn  en))
  (setq en1_zb (xlr-get-ptn  en1))
  (setq jd_zb (inters (car en_zb) (cadr en1_zb) (cadr en_zb) (car en1_zb)))
  (entmake
    (list
      '(0 . "TEXT")
      (cons 1 "道路")
      (cons 10 jd_zb)
      (cons 40 1.5)
      (cons 41 1)
      (cons 7 "细等线体")
      (cons 8 "TK")
      (cons 71  0)
      (cons 72 1)
      (cons 73 2)
      (cons 11 jd_zb)
      )
    )
  )
 楼主| 发表于 2018-10-3 21:57:54 | 显示全部楼层
xiaotao 发表于 2018-10-3 21:08
2009及以上版本的CAD就不会有这种情况了。

因为我用的是cass7.0  所以只能用04 到06版本的 有什么办法解决这个问题吗|?
发表于 2018-10-3 21:08:50 | 显示全部楼层
2009及以上版本的CAD就不会有这种情况了。
发表于 2018-10-4 14:01:42 | 显示全部楼层
换CAD2008与Cass9.1
 楼主| 发表于 2018-10-4 16:00:18 | 显示全部楼层

谢谢  我没有9.1的狗
发表于 2018-10-4 16:24:33 | 显示全部楼层
852456 发表于 2018-10-4 16:00
谢谢  我没有9.1的狗

现在有破解版
发表于 2018-10-4 20:04:17 | 显示全部楼层
没有这种说法吧,理论上只要不死循环就没问题的
发表于 2018-10-6 22:20:36 | 显示全部楼层
我2006运行没问题
 楼主| 发表于 2018-10-6 22:41:13 | 显示全部楼层

多运行几次就会有问题了  好像是超过四次就会出来这个问题
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2025-5-19 05:26 , Processed in 0.179861 second(s), 28 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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