DuanJinHui 发表于 2022-7-5 18:49:30

替代,帮助。

朋友们好。
 

(setq elist (subst (cons 1 xxx (assoc 1 elist) elist))
(entmod elist)

 
我知道DXF代码1是唯一的,所以可以用“subst”函数替代。
 
但有时,DXF代码并不是唯一的
 
例如DXF 10
 
如果我需要替换第二个DXF 10,有没有快速的方法?
有一个函数可以快速执行此操作?我需要你的建议和榜样。
谢谢
 

_$ (setq ss (ssget ":L" '((0 . "LWPOLYLINE"))))
<Selection set: 14>
_$ (setq dxf (entget (ssname ss 0)))
((-1 . <Entity name: 7ee38410>)
(0 . "LWPOLYLINE")
(330 . <Entity name: 7ee36cf8>)
(5 . "1F2")
(100 . "AcDbEntity")
(67 . 0)
(410 . "Model")
(8 . "0")
(100 . "AcDbPolyline")
(90 . 6)
(70 . 0)
(43 . 0.0)
(38 . 0.0)
(39 . 0.0)
(10 1595.13 1006.01) ;;1
(40 . 0.0)
(41 . 0.0)
(42 . 0.0)
(91 . 0)
(10 1860.27 1131.24) ;;2
(40 . 0.0)
(41 . 0.0)
(42 . 0.0)
(91 . 0)
(10 1964.18 930.87) ;;3
(40 . 0.0)
(41 . 0.0)
(42 . 0.0)
(91 . 0)
(10 2343.98 1038.21);; 4
(40 . 0.0)
(41 . 0.0)
(42 . 0.0)
(91 . 0)
(10 2562.54 877.199);; 5
(40 . 0.0)
(41 . 0.0)
(42 . 0.0)
(91 . 0)
(10 2720.19 1002.43) ;; 6
(40 . 0.0)
(41 . 0.0)
(42 . 0.0)
(91 . 0)
(210 0.0 0.0 1.0))

rlx 发表于 2022-7-5 19:01:36

也许这能帮上忙?
 
 
http://www.afralisp.net/visual-lisp/tutorials/polylines-part-1.php
 
 
gr.Rlx

marko_ribar 发表于 2022-7-5 19:25:26


(setq elist (subst (cons 10 xxx) (nth 1 (acet-list-m-assoc 10 elist)) elist))
(entmod elist)

David Bethel 发表于 2022-7-5 19:28:14

也许 吧:
 
对于第三个顶点:
 


(setq en (entlast)
   np '(7.5 6.5))
(nw_elwp en 3 np)


(defun nw_elwp (e v np / ed i)
(setq ed (entget e))
(setq i 1)
(foreach g ed
   (cond ((and (= 10 (car g))
               (= i v))
          (entmod (subst (cons 10 np) g ed))
          (setq i (1+ i)))
         ((= 10 (car g))
          (setq i (1+ i)))))
np)

 
 
-大卫

Lee Mac 发表于 2022-7-5 19:38:46

另一个功能:
(defun substnthkey ( n k v l )
   (if (assoc k l)
       (if (= k (caar l))
         (if (zerop n)
               (cons (cons k v) (cdr l))
               (cons (car l) (substnthkey (1- n) k v (cdr l)))
         )
         (cons (car l) (substnthkey n k v (cdr l)))
       )
       l
   )
)
例子:
_$ (substnthkey 2 10 "new" '((10 . "a") (11 . "b") (10 . "c") (11 . "d") (10 . "e") (11 . "f")))
((10 . "a") (11 . "b") (10 . "c") (11 . "d") (10 . "new") (11 . "f"))

DuanJinHui 发表于 2022-7-5 19:52:20

 
marko,酷,这个函数“acet-list-m-assoc”来自Express Tool?
 
 
大卫,非常感谢。功能不错!非常有用。
 
 
 
李,功能也不错。非常感谢。
 
 
 
你好,Rlx。我会尽力学习的。
页: [1]
查看完整版本: 替代,帮助。