我也来个重叠检查,欢迎提意见~~~~
  1. ;货物分两组(样品 . 库存)
  2. (defun lst->2lst(lst / lst1 lst2)
  3.   (setq lst1 '() lst2 '())
  4. (foreach a lst
  5.     (if (member a lst2)
  6.       (setq lst1 (cons a lst1))
  7.       (setq lst2 (cons a lst2))
  8.     )
  9.   )
  10. (cons (reverse lst2) (reverse lst1))
  11. )
  1. ;检查重叠块
  2. (defun c:chk_blocks (/ ss entlst ptlst 2ptlst x pt)
  3.   (setq ss (ssget '((0 . "insert")));若要检查其他图元类型,修改这里
  4.        i  0
  5.        )
  6.   (if (and ss (> (sslength ss) 2))
  7.    (progn
  8.     (setq entlst (zml-ss->enlist ss)
  9.           ptlst (mapcar '(lambda(x) (assoc 10(entget x))) entlst)
  10.           2ptlst (lst->2lst ptlst)
  11.           )
  12.      (if (setq 2ptlst (cdr 2ptlst))
  13.        (progn
  14.          (setq pt (getpoint (strcat "\n  找到" (itoa (length 2ptlst)) "个重叠块,选择引出标注点:")))
  15.          (foreach x 2ptlst
  16.            (entmake (list '(0 . "line") '(8 . "0-辅助层tem") (cons 62 1) x (cons 11 pt)))
  17.            )
  18.            (princ "\n 标注完成,为避免出错,请老大落实后再枪决!")
  19.          )
  20.          (alert "报告老大,没有找到重叠块!")
  21.      )
  22.     )
  23.     (alert "老大,这么简单的问题自己解决!")
  24.    )
  25.    (princ)
  26. )


网友答: 少函数,zml-ss->enlist

网友答:
SunSpring 发表于 2015-5-5 14:18
少函数,zml-ss->enlist

  1. ;;;功能:选择集转换为图元名表                                       *
  2. ;;;参数:SS -----选择集                                             *
  3. ;;;返回:图元名表                                                   *
  4. (defun ZML-SS->ENLIST (SS / I EN LST_EN)
  5.   (setq  LST_EN '()
  6.   I 0
  7.   )
  8.   (repeat (sslength SS)
  9.     (setq EN   (ssname SS I)
  10.     LST_EN (cons EN LST_EN)
  11.     I   (1+ I)
  12.     )
  13.   )
  14.   ;;返回
  15.   (reverse LST_EN)
  16. )


网友答: 有些块即使box重叠,外观不一定重叠

网友答: 收藏了。

网友答: 楼主诙谐的提示风格很个性化

网友答: 谢谢老师分享!

网友答: 谢谢楼主及其他网友分享。
收藏

网友答:
这种的算重叠?



  • 上一篇:线长分类统计数量及长度和总数量及总长(源)
  • 下一篇:没有了