ILoveMadoka 发表于 2022-7-6 08:57:04

将尺寸更改为另一个

这是我在Solidworks中创建的图形上运行的脚本类型例程。
我得到了各种不同尺寸样式的尺寸。
我想把它们都改成标准的。
 
以下是我到目前为止所掌握的。。
我不知道如何将(3“xxxx”)更改为(3“标准”)
 
此外,您可以同时对多个项目进行TBLSEARCH吗?
 
(DEFUN C:SWDX ()
(Prompt "Change SW Lines:")
(setq ss4 (ssget "x" '((0 . "LINE")(6 . "PHANTOM"))))
(setq TEST (tblsearch "LAYER" "X25"))
    (if (= TEST nil)
            (progn
               (Command "-layer" "n" "X25" "C" "RED" "X25" "")
            )
    )

(command "CHANGE" ss4 "" "p""la" "X25" "c" "bylayer" "lt" "Phantom" "LW" "default" "")

(setq ss5 (ssget "x" '((0 . "DIMENSION"))))
(setq TEST (tblsearch "LAYER" "DIM"))
    (if (= TEST nil)
            (progn
               (Command "-layer" "n" "DIM" "C" "RED" "X25" "")
            )
    )
(command "CHANGE" ss5 "" "p""la" "DIM" "c" "bylayer" "LW" "default" "")

;;; Need to change (3."xxxx") to (3. "Standard") for SS5

(setq ss9 (ssget "x" '((0 . "LINE")(6 . "*CENTER*"))))
(command "ERASE" ss9 "")
(princ))

 
我知道我的代码编写技能非常初级。。。
如果有更好的方法来做我所做的,我愿意。
如果有人想填空也没关系。。。
 
 
谢谢

Tharwat 发表于 2022-7-6 09:33:27

您需要使用函数*entmod*来更改dimstyles。。。。
 

(defun c:Test (/ ss i sset e)
(if (setq ss (ssget "x" '((0 . "DIMENSION"))))
   (repeat
   (setq i (sslength ss))
      (setq sset (ssname ss (setq i (1- i))))
      (if (not (eq (cdr (assoc 3 (setq e (entget sset)))) "Standard"))
      (entmod (subst (cons 3 "Standard") (assoc 3 e) e))
      )
   )
   (princ)
)
(princ)
)
Tharwat

ILoveMadoka 发表于 2022-7-6 09:50:30

谢谢
 
 
TBLSEARCH问题怎么样?
 
可以同时搜索多个项目吗?
ie:检查几层??

David Bethel 发表于 2022-7-6 10:00:57

 
不,您必须单独搜索每个名称-大卫
 
顺便说一句,您可以使用(entmod/append)修改所有实体:
 

(defun c:swdx (/ ss4 ss5 en ed)

(if (not (tblsearch "LAYER" "X25"))
   (command "_.LAYER" "_N" "X25" "_C" "RED" "X25" ""))

(if (setq ss4 (ssget "_X" '((0 . "LINE")(6 . "PHANTOM"))))
   (command "_.CHPROP" ss4 "" "_LA" "X25" "_LW" "Default" ""))

(and (setq ss5 (ssget "_X" '((0 . "DIMENSION"))))
      (tblsearch "DIMSTYLE" "STANDARD")
      (while (setq en (ssname ss5 0))
             (setq ed (entget en)
                   ed (subst '(3 . "STANDARD") (assoc 3 ed) ed)
                   ed (subst '(8 . "DIM")      (assoc 8 ed) ed))
             (if (assoc 62 ed)
               (setq ed (subst '(62 . 256) (assoc 62 ed) ed)))
             (if (assoc 370 ed)
               (setq ed (subst '(370 . -3) (assoc 370 ed) ed))
               (setq ed (append ed '((370 . -3)))))
             (entmod ed)
             (ssdel en ss5)))
(prin1))
页: [1]
查看完整版本: 将尺寸更改为另一个