明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 1227|回复: 7

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

[复制链接]
发表于 2020-3-13 23:09:05 | 显示全部楼层 |阅读模式
  1. (defun c:tt5 (/ #g k1 kw1 #g kw2 k2   )
  2.   (setvar "cmdecho" 0)
  3. (setvar "blipmode" 0)
  4.      (if (setq kw1 (ssget "X" '((0 . "*LINE")(6 . "MC-DASH"))));选择对象
  5.   (progn
  6.     ;(setq bl 30)
  7.    (while (setq k1 (ssname kw1 0))
  8.     (setq kw1 (ssdel k1 kw1))
  9.     (setq #g1 (entget k1))
  10.      ;(if (assoc 48 #g)
  11.       ; (setq #g (subst '(48 . "bl") (assoc 48 #g) #g))
  12.       ; (cons '(48 . bl) #g)
  13.     ; )
  14.     (setq #g1 (subst '(48 . 10) (assoc 48 #g1) #g1));修改线形比例
  15.     ;(setq #g (subst '(8 . "D-节点填充") (assoc 8 #g) #g));修改图层
  16.     (entmod #g1);刷新图元
  17.    );while
  18.   )
  19. )
  20.   
  21.    (if (setq kw2 (ssget "X" '((0 . "*LINE")(6 . "MC-CENTER"))));选择对象
  22.   (progn
  23.     ;(setq bl 30)
  24.    (while (setq k2 (ssname kw2 0))
  25.     (setq kw2 (ssdel k2 kw2))
  26.     (setq #g2 (entget k2))
  27.      ;(if (assoc 48 #g)
  28.       ; (setq #g (subst '(48 . "bl") (assoc 48 #g) #g))
  29.       ; (cons '(48 . bl) #g)
  30.     ; )
  31.     (setq #g2 (subst '(48 . 0.1) (assoc 48 #g2) #g2));修改线形比例
  32.     (entmod #g2);刷新图元
  33.    );while
  34.   )
  35. )
  36.   
  37. (princ)
  38.    
  39. )
这个程序对已经修改了线形比例的线可以成功修改,其他线形比例为1 也就是祖玛表中没有 48 的时候,就不能修改。本打算加一个判断句,如果表中没有48 就在表中添加48  如果有48 就修改48.可惜没能成功!

另外还想加上手动设置比例值,但是不知道怎么带入!基础知识太少了!
有路过的大佬,麻烦动动你的小手,帮我优化一下!
这个真的很有用,填充比例,归层,改色,等等其他的功能就都能实现了!
"觉得好,就打赏"
还没有人打赏,支持一下
发表于 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)))
        )
 楼主| 发表于 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)
               
)
 楼主| 发表于 2020-3-14 21:21:15 | 显示全部楼层
start4444 发表于 2020-3-14 12:06
发那么一大段还一堆注解,别人都没心思看你的。。。
这段是给颜色的,参考下,如果是小程序直接用 change  ...

但是有个问题,就是在布局空间不能修改模型空间里的图元!
发表于 2020-3-14 21:43:39 | 显示全部楼层
cq4920 发表于 2020-3-14 21:21
但是有个问题,就是在布局空间不能修改模型空间里的图元!

布局空间你能选到模型空间的图元吗,还不是要进视口操作
发表于 2022-12-22 18:20:42 | 显示全部楼层
cq4920 发表于 2020-3-14 20:10
感谢!change 解决了!这样就不每次都要去调整线形比例了!
(defun c:tt5 (/ kw1 kw2   )
        (setvar "cm ...

我怎么用不起来

 楼主| 发表于 2022-12-22 21:04:03 | 显示全部楼层

这个属于定制程序,因为线型是独有的,你只需要把 组码6 线型名称 改成你的名称
发表于 2023-1-26 08:00:22 | 显示全部楼层
要考虑随层的情况。线型随层的时候替换,不随层的时候修改。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|CAD论坛|CAD教程|CAD下载|联系我们|关于明经|明经通道 ( 粤ICP备05003914号 )  
©2000-2023 明经通道 版权所有 本站代码,在未取得本站及作者授权的情况下,不得用于商业用途

GMT+8, 2024-11-16 09:01 , Processed in 0.180794 second(s), 25 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表