韩飞翔 发表于 2025-2-27 17:34:29

多段线或者直线路径下与特定图层图元的交点表;有需要,拿去用

本帖最后由 韩飞翔 于 2025-2-28 15:00 编辑

;;说明:特定曲线与特定图层图元的交点表(特定曲线指直线,多段线)
;;参数:ename:(car (entsel))
;;参数:laystr:图层字符串"S-BEAM-S,S-WALL-S" 图层可以为nil; 如果图层为nil便获取线条路径下所经过图元的所有相交点
;;返回:(fx-Get-CurveInters (car (entsel)) "S-BEAM-S,S-WALL-S")
(defun fx-Get-CurveInters (ename laystr / data enametype jdptn ptn)
      (setq enametype (cdr (assoc 0 (setq data (entget ename)))))
      (cond
                (
                        (wcmatch enametype "*PO*")
                        (setq
                              ptn (mapcar '(lambda(x) (cdr x)) (vl-remove-if-not '(lambda(x) (= (car x) 10)) data))
                              jdptn (mapcar '(lambda(z)
                                                                                                 (mapcar '(lambda(x) (cadr x))
                                                                                                         (vl-remove-if-not '(lambda(y) (listp y)) z)                        
                                                                                                 )
                                                                                       )
                                                                (ssnamex (ssget "f" ptn (if laystr (list (cons 8 laystr)))))
                                                      )
                        )
                )
                (
                        (wcmatch enametype "LINE")
                        (setq
                              ptn (list (cdr (assoc 10 data)) (cdr (assoc 11 data)))
                              jdptn (mapcar '(lambda(z)
                                                                                                 (mapcar '(lambda(x) (cadr x))
                                                                                                         (vl-remove-if-not '(lambda(y) (listp y)) z)                        
                                                                                                 )
                                                                                       )
                                                                (ssnamex (ssget "f" ptn (if laystr (list (cons 8 laystr)))))
                                                      )
                        )
                )
      )
      (apply 'append jdptn)
)

寒潮大冬瓜 发表于 2025-2-28 14:48:27

很好→很棒!很好~很棒!!很好……很棒!!!
(fx-Get-CurveInters ename laystr)多段线或者直线路径下与特定图层图元的交点表韩飞翔于2025-02-27明经
存起来了!主要是交点插块或者文字再就是编号!
页: [1]
查看完整版本: 多段线或者直线路径下与特定图层图元的交点表;有需要,拿去用