cq4920 发表于 2020-3-13 23:09:05

线形比例的小程序,当组码表中不存在某元素的问题!

(defun c:tt5 (/ #g k1 kw1 #g kw2 k2   )
(setvar "cmdecho" 0)
(setvar "blipmode" 0)
   (if (setq kw1 (ssget "X" '((0 . "*LINE")(6 . "MC-DASH"))));选择对象
(progn
    ;(setq bl 30)
   (while (setq k1 (ssname kw1 0))
    (setq kw1 (ssdel k1 kw1))
    (setq #g1 (entget k1))
   ;(if (assoc 48 #g)
      ; (setq #g (subst '(48 . "bl") (assoc 48 #g) #g))
      ; (cons '(48 . bl) #g)
    ; )
    (setq #g1 (subst '(48 . 10) (assoc 48 #g1) #g1));修改线形比例
    ;(setq #g (subst '(8 . "D-节点填充") (assoc 8 #g) #g));修改图层
    (entmod #g1);刷新图元
   );while
)
)

   (if (setq kw2 (ssget "X" '((0 . "*LINE")(6 . "MC-CENTER"))));选择对象
(progn
    ;(setq bl 30)
   (while (setq k2 (ssname kw2 0))
    (setq kw2 (ssdel k2 kw2))
    (setq #g2 (entget k2))
   ;(if (assoc 48 #g)
      ; (setq #g (subst '(48 . "bl") (assoc 48 #g) #g))
      ; (cons '(48 . bl) #g)
    ; )
    (setq #g2 (subst '(48 . 0.1) (assoc 48 #g2) #g2));修改线形比例
    (entmod #g2);刷新图元
   );while
)
)

(princ)
   
)
这个程序对已经修改了线形比例的线可以成功修改,其他线形比例为1 也就是祖玛表中没有 48 的时候,就不能修改。本打算加一个判断句,如果表中没有48 就在表中添加48如果有48 就修改48.可惜没能成功!

另外还想加上手动设置比例值,但是不知道怎么带入!基础知识太少了!
有路过的大佬,麻烦动动你的小手,帮我优化一下!
这个真的很有用,填充比例,归层,改色,等等其他的功能就都能实现了!

start4444 发表于 2020-3-14 12:06:19

发那么一大段还一堆注解,别人都没心思看你的。。。
这段是给颜色的,参考下,如果是小程序直接用 change 命令来改,啥事没有

(defun c:tt5 ()
(setq en (entsel "\n选择对象:") ent (entget (car en)) col (getint"\n输入颜色:"))
(if (assoc 62 ent) (entmod (subst (cons 62 col) (assoc 62 ent) ent)) (entmod (cons (cons 62 col) ent)))
        )

cq4920 发表于 2020-3-14 20:10:48

start4444 发表于 2020-3-14 12:06
发那么一大段还一堆注解,别人都没心思看你的。。。
这段是给颜色的,参考下,如果是小程序直接用 change...

感谢!change 解决了!这样就不每次都要去调整线形比例了!
(defun c:tt5 (/ kw1 kw2   )
        (setvar "cmdecho" 0)
(setvar "blipmode" 0)
               (if (setq kw1 (ssget "X" '((0 . "*LINE")(6 . "MC-DASH"))));选择对象
      (command "change" kw1 "" "p" "s" "20" "")
)
                               (if (setq kw2 (ssget "X" '((0 . "*LINE")(6 . "MC-center"))));选择对象
      (command "change" kw2"" "p" "s" "0.05" "")
)
       
(princ)
               
)

cq4920 发表于 2020-3-14 21:21:15

start4444 发表于 2020-3-14 12:06
发那么一大段还一堆注解,别人都没心思看你的。。。
这段是给颜色的,参考下,如果是小程序直接用 change...

但是有个问题,就是在布局空间不能修改模型空间里的图元!

start4444 发表于 2020-3-14 21:43:39

cq4920 发表于 2020-3-14 21:21
但是有个问题,就是在布局空间不能修改模型空间里的图元!

布局空间你能选到模型空间的图元吗,还不是要进视口操作

stonedesign 发表于 2022-12-22 18:20:42

cq4920 发表于 2020-3-14 20:10
感谢!change 解决了!这样就不每次都要去调整线形比例了!
(defun c:tt5 (/ kw1 kw2   )
        (setvar "cm ...

我怎么用不起来

cq4920 发表于 2022-12-22 21:04:03

stonedesign 发表于 2022-12-22 18:20
我怎么用不起来

这个属于定制程序,因为线型是独有的,你只需要把 组码6 线型名称 改成你的名称

kucha007 发表于 2023-1-26 08:00:22

要考虑随层的情况。线型随层的时候替换,不随层的时候修改。
页: [1]
查看完整版本: 线形比例的小程序,当组码表中不存在某元素的问题!