明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 6890|回复: 16

【免费源代码】自动线型比例

[复制链接]
发表于 2014-8-24 13:14:54 | 显示全部楼层 |阅读模式
  1. ;;; ************************************ 自动线型比例 ****************************************************
  2. ;;;
  3. ;;; 此代码由 www.summerCAD.com 开发,免费提供,请保留此说明。
  4. ;;; 【QQ群】CAD插件大全群,欢迎加入。群号: 49608623
  5. ;;;  http://shang.qq.com/wpa/qunwpa?i ... d630b29b3e646fa0b7d
  6. ;;;
  7. ;;; ************************************ 自动线型比例 ****************************************************

  8. (princ "\n自动线型比例命令:AutoLS 或 SM_AutoLS")
  9. (defun C:AutoLS() (sm_ltscale_auto))
  10. (defun C:SM_AutoLS() (sm_ltscale_auto))
  11. (defun sm_ltscale_auto(/ ss en el lay laytb lttb ltsc0 ltsc1 ltype ltlen vs tmp)
  12.   (Command_B)
  13.   (if(setq ss(ssget))
  14.     (WHILE(setq        en(ssname ss 0))
  15.       (setq ss(ssdel en ss))
  16.       (setq el(entget en)
  17.             lay(cdr(assoc 8 el))
  18.             laytb(tblsearch "layer" lay)        
  19.       )
  20.       (if(assoc 6 el)
  21.         (setq ltype(cdr(assoc 6 el)))                ;取线型名称
  22.         (setq ltype(cdr(assoc 6 laytb)))
  23.       )
  24.       (setq lttb(tblsearch "ltype" ltype)        ;线型表
  25.             ltlen(cdr(assoc 40 lttb))                ;线型图案总长
  26.       )
  27.       (if (= ltlen 0)(setq ltlen 1))
  28.       (setq ltsc0(getvar"ltscale"))                ;全局线型比例因子
  29.       (setq vs(getvar"viewsize"))                ;当前视口中视图的高度
  30.       (setq ltsc1(/ vs 10 ltsc0 ltlen))
  31.       (setq tmp(rtos ltsc1 1 4))
  32.       (setq ltsc1(strcat(substr tmp 1 3)
  33.                         (substr tmp (-(strlen tmp)3)4)
  34.                  )
  35.       )
  36.       (setq ltsc1 (atof ltsc1))                 ;取整两位
  37.       (if (= ltsc1 0)(setq ltsc1 1))

  38.       (if(assoc 48 el)                                ;改实体线型比例
  39.         (setq el(subst(cons 48 ltsc1)(assoc 48 el)el))
  40.         (setq el(append el(list(cons 48 ltsc1))))
  41.       )
  42.       (entmod el)
  43.     ) ;progn
  44.   );if
  45.   (Command_E)
  46.     (princ)
  47. )   


  48. (defun Command_B()
  49.   (defun tmperr(msg)
  50.      (setq *error* nil)
  51.      (princ msg)
  52.      (command"_.undo""end")
  53.      (setvar"cmdecho"_sm_old_cmd)
  54.      (setvar"osmode"_sm_old_os)
  55.      (setvar"blipmode"_sm_old_bmd)
  56.      (setvar"highlight"1)
  57.      (setvar"elevation"_sm_old_elev)
  58.      (setvar"plinewid"_sm_old_plwid)
  59.      (setvar"pickstyle"_sm_old_picksty)
  60.      (setvar"cecolor" _sm_old_cecolor)
  61.      (setvar"expert"0)
  62.      (princ)
  63.   )
  64.    (setq *error* nil
  65.         _sm_old_cmd(getvar"cmdecho")
  66.         _sm_old_picksty(getvar"pickstyle")
  67.         _sm_old_os (getvar"osmode")
  68.         _sm_old_bmd(getvar"blipmode")
  69.         _sm_old_hlt(getvar"highlight")
  70.         _sm_old_elev(getvar"elevation")
  71.         _sm_old_plwid(getvar"plinewid")
  72.         _sm_old_ucsicon(getvar"ucsicon")
  73.         _sm_old_cecolor(getvar"cecolor")
  74.    )
  75.    (setvar"cmdecho"0)
  76.    (setvar"osmode"0)
  77.    (setvar"blipmode"0)
  78.    (setvar"thickness"0)
  79.    (setvar"elevation"0)
  80.    (setvar"plinewid"0)
  81.    (setvar"pickstyle"0)
  82.    (setvar"cecolor" "bylayer")
  83.    (command"_.undo""group")
  84.    (setq *error* tmperr)

  85. )
  86. ;;=====================================
  87. (defun Command_E()
  88.    (command"_.undo""end")
  89.    (setvar"cmdecho"_sm_old_cmd)
  90.    (setvar"osmode"_sm_old_os)
  91.    (setvar"blipmode"_sm_old_bmd)
  92.    (setvar"highlight"1)
  93.    (setvar"ucsicon"_sm_old_ucsicon)
  94.    (setvar"elevation"_sm_old_elev)
  95.    (setvar"plinewid"_sm_old_plwid)
  96.    (setvar"pickstyle"_sm_old_picksty)
  97.    (setvar"cecolor" _sm_old_cecolor)
  98.    (setvar"menuctl"0)
  99.    (setvar"expert"0)
  100.    (setvar"pickbox"4)
  101.    (setq *error* nil)
  102.    (princ)
  103. )
  104. (princ)

点评

不要乱拿人家的东西做广告  发表于 2014-8-24 18:45
发表于 2021-7-24 08:25:51 | 显示全部楼层

谢谢分享,看看虚线和中心线打印出来的效果
发表于 2020-6-9 07:50:40 | 显示全部楼层
谢谢分享,看看虚线和中心线打印出来的效果
发表于 2023-4-17 21:32:57 | 显示全部楼层
效果如图,鼠标滚轮控制胡里花哨不实用

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

x
发表于 2014-8-24 18:43:51 | 显示全部楼层
是不是论坛上那个呀
发表于 2017-12-15 21:46:14 | 显示全部楼层
试试好不好用呢
发表于 2018-9-13 11:40:25 | 显示全部楼层
试试好不好用呢
发表于 2020-6-8 23:28:25 | 显示全部楼层
用着还可以
发表于 2021-1-22 21:52:04 | 显示全部楼层
试试好不好用
发表于 2021-6-16 16:42:44 | 显示全部楼层
好用,可以改进一下
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-11-25 08:41 , Processed in 0.202713 second(s), 31 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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