欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

自制AutoCAD实用工具

程序员文章站 2024-02-27 18:04:09
...

对于一个设计院工作的人,在设计完成后要算工程数量,要计算很多线条的长度总和,我们往往会安装很多插件,很麻烦,个人觉得还是自己写几行代码比较方便:
将本段代码 复制到记事本,然后将后缀改为xxx.lsp,打开cad2012及以前版本,输入APPload——>选择xxx.lsp——>点击加载——>关闭。在CAD中输入LL,便可以统计线条长度。以下截图帮助小白理解。

自制AutoCAD实用工具
自制AutoCAD实用工具
自制AutoCAD实用工具

(defun c:LL()
    (setvar "cmdecho" 1)
(setq en (ssget (list '(0 . "spline,arc,line,ellipse,LWPOLYLINE"))))
(setq i 0)
(setq ll 0)
(repeat (sslength en)
  (setq ss (ssname en i))
  (setq endata (entget ss))
  (command "lengthen" ss "")
  (setq dd (getvar "perimeter"))
(setq ll (+ dd ll))
  (setq i (1+ i))
)
    (print (strcat "TZY_The total length: " (rtos ll 2 5)))
    (princ)
)

顺便粘贴下标注面积的代码

;; write area value of a close polygon to drawing
(DEFUN C:EA(/ OLDOS PT STA QAREA)
;;
  (setq olderr *error*)
  (setq *error* myerr)
  (SETVAR "CMDECHO" 0)
  (SETQ OLDOS (GETVAR "OSMODE"))
;;
  (SETVAR "OSMODE" 0)
  (SETQ STA (CAR (ENTSEL)))
  (COMMAND "AREA" "E" STA)
  (SETQ QAREA (RTOS (GETVAR "AREA") 2 2))
  (SETQ PT (GETPOINT"\nPick the point you want to write area:"))
  (COMMAND "TEXT" PT "" "" QAREA)
;;  
  (SETVAR "OSMODE" OLDOS)
  (SETVAR "CMDECHO" 1)
  (setq *error* olderr)
  (PRINC)
)

更多好玩的请看:计算机技巧

相关标签: AutoCAD lisp