David Bethel 发表于 2022-7-6 10:20:47

为了修改倍数,我会使用列表格式。
 
维护列表的格式非常重要
 
每个原子必须:
(“标记名”“old\u val”“new\u val”)
 
 

;;;Change Multiple Known ATTRIBute Value With a New Value
(defun c:chgmkat (/ al i ss en ch an ad)

(setq al '(("CODE_4" "See Jane Run" "See Spot Run")
            ("CODE_4" "See Dick Run" "See Spot Run")
            ("CODE_5" "See Spot Run" "See Spot Drop")))


(and (setq i -1 ss (ssget "X" '((0 . "INSERT")(66 . 1))))
      (while (setq en (ssname ss (setq i (1+ i))))
             (setq ch nil
                   an (entnext en)
                   ad (entget an))
             (while (= "ATTRIB" (cdr (assoc 0 ad)))
                  (foreach a al
                      (and (= (strcase (cdr (assoc 2 ad)))
                              (strcase (nth 0 a)))
                           (= (strcase (cdr (assoc 1 ad)))
                              (strcase (nth 1 a)))
                           (setq ad (subst (cons 1 (nth 2 a))
                                           (assoc 1 ad) ad))
                           (entmod ad)
                           (setq ch T)))
                  (setq an (entnext an)
                        ad (entget an)))
             (if ch (entupd en))))
(prin1))

 
这给了你多种可能性。
 
未测试-大卫

David Bethel 发表于 2022-7-6 10:22:58


(setq al '(("CODE_4" "See Jane Run" "See Spot Die")
            ("CODE_4" "See Dick Run" "See Jane Run")
            ("CODE_4" "See Jane Run" "See Dick Die")
            ("CODE_5" "See Spot Run" "See Spot Drop")))

 
 
我喜欢这种方法,因为逻辑链可以相当深。
 
如果迪克在简之前跑,那么斯波特就可以在附近呆一段时间,让迪克活下来。
 
-大卫
 
 
这个故事的寓意是,做鸡巴或狗是不划算的

BlackBox 发表于 2022-7-6 10:25:05

只是好奇,大卫。。。
 
为什么您更喜欢列表方法而不是使用cond?

alanjt 发表于 2022-7-6 10:28:28

新手更容易编辑/添加到。
 
 
您也可以使用虚线对和assoc。

David Bethel 发表于 2022-7-6 10:30:55

 
确切地
 
为了便于使用,我可以将列表写在外部文件中,(加载)数据,然后滚动-大卫

BlackBox 发表于 2022-7-6 10:34:35

我在过去的一些命令反应器中使用了点对(显然是cond,因此是问题),即sysvar存储/设置函数。
 
艾伦/大卫,感谢您的及时回复!:斯坦:

Cat 发表于 2022-7-6 10:37:37

 
显然,做一只猫也不划算。
 
就在我以为我已经把所有的垒都盖好的时候,他们给了我一个转弯。
标题栏有许多属性,具有相同的标记、不同的值,显然利用了句柄。有什么建议吗?
而不是使用特殊的分解功能。如果其他一切都失败了,我也会使用它。

David Bethel 发表于 2022-7-6 10:40:29

那太难看了。。。。
 
这个场景有什么逻辑吗?第一个标签总是名字,第二个是日期,第三个是城市等等?
 
你有句柄值吗?以及他们各自的描述?
 
-大卫

Lee Mac 发表于 2022-7-6 10:44:41

 
而不是你而不是我大卫:眨眼:

David Bethel 发表于 2022-7-6 10:47:23

 
哎呀,谢谢!
页: 1 [2]
查看完整版本: lisp可以用来强制