发布企业信息

AutoCAD中块的计数与替换

作者:  信息来源:无忧机械电子  2006-10-17

字体大小:  网友评论  进入论坛  

com/machine/softedu/CADAutoCAD制图中一种重要的实体。有时候一张图纸中需要统计相同元件的个数,例如电气开关、照明灯具等,或者应客户要求需要改变设备,以另一种设备替换,在设备元件较多的情况下,手工处理显然不合适。程序在AutoCAD12或更高版本下均获得通过。获得实体名称(setqs1(entgets1))(setqs1(cdr(assoc2s1)))...
 块(BLOCK)是CAD/" target="_blank">AutoCAD制图中一种重要的实体。在工

程图纸中,许多已形成规范或标准的设备元件的图形符号

往往被制成图块,编入图库,以利于今后调用。有时候一

张图纸中需要统计相同元件的个数,例如电气开关、照明

灯具等,或者应客户要求需要改变设备,以另一种设备替

换,在设备元件较多的情况下,手工处理显然不合适。笔

者于是编写了以下两个小程序,供大家参考。程序在Auto

CAD

12或更高版本下均获得通过。

 

  程序1:统计所选择的块的数量。

 

  (defun

c:count(/

s1

s2

sum)

 

  (setq

s1

nil

s2

nil

sum

0)

 

  (setq

s1

(ssget))

;选择一个块

 

  (setq

s1

(ssname

s1

0))

;获得实体名称

 

  (setq

s1

(entget

s1))

 

  (setq

s1

(cdr

(assoc

2

s1)))

;获得块名

 

  (setq

s2

(ssget

″x″

(list

(cons

0

″INSERT″

)

(cons

2

s1))))

;将同名块加入选择集

 

  (setq

sum

(sslength

s2))

;统计数量

 

  (terpri)

;输出结果

 

  (princ

″

″)

 

  (princ

s1)

 

  (princ

″)

 

  (princ

sum)

 

  (princ

found.″)

 

  (princ)

 

  )

 

  程序2:以新块替换旧块,并保持插入点、比例、角

度不变。

 

  (defun

c:replace(/

en

s0

s1

s2

s3

s4)

 

  (setq

s0

nil

s1

nil

s2

nil

s3

nil

s4

nil

en

ni

l)

 

  (setq

s0

(ssget))

;选择一个块

 

  (setq

en

(ssname

s0

0))

;获得实体名称

 

  (setq

s0

(entget

en))

 

  (setq

s1

(cdr

(assoc

2

s0)))

;获得块名

 

  (setq

s2

(cdr

(assoc

10

s0)))

;获得插入点

 

  (setq

s3

(cdr

(assoc

41

s0)))

;获得比例因子

 

  (setq

s4

(cdr

(assoc

50

s0)))

;获得旋转角度

 

  (setq

s1

(getstring

″Replace

block

name:″))

 

 

  

;输入新块名

 

  (COMMAND

″ERASE″

en

″″)

;删除旧块

 

  (COMMAND

″INSERT″

s1

s2

s3

s3

s4)

 

  

;插入新块完成替换

 

  )

 

  当然,在最新的AutoCAD

14中的bonus工具里,有一

个名为count.lsp的AutoLISP程序,可以统计出全图内所有

图块的数量,大家也可以尽情享用。

分页:
Google


推荐图文

广告

机械热点图文

  • 数控车床加工编程典型实例分析2
  • 内螺纹车削加工——数控车床编程实例42
  • 子程序编程方法-数控车床编程实例36
  • 塑料模具动画演示

机械风云人物

Copyright © 2004 51base.com Inc. All rights reserved.

无忧基地 版权所有│粤ICP备06098418号│XHTML | CSS

客服:+86-755-2212 2202 工作时间:周1~5 10点~16点

感谢中国网络提供带宽支持

《网络营销技巧》