;面积求和
;;; 面积求和.LSP
;;; 功能: 计算多个选择对象的总面积
;创建新图层 newlayer(defun c:tjmj (/ olderr oldcmdecho errexit undox restore ss1 nr en tot_area ZMJ);统计命令 tjmj;出错处理 执行函数()(setq textH 0.4)(setq circleH (* textH 1.5));设置字体高度(defun errexit (s)(restore));撤销(defun undox ()(command "._undo" "_E")(setvar "cmdecho" oldcmdecho)(setq *error* olderr)(princ))(setq olderr *error*restore undox*error* errexit);正式命令 只统计多段线(setq oldcmdecho (getvar "cmdecho"))(setvar "cmdecho" 0)(setq oldsanp (getvar "osmode"))(command "._UNDO" "_BE")(if (setq ss1 (ssget '((-4 . "<OR")(0 . "POLYLINE")(0 . "LWPOLYLINE");(0 . "CIRCLE");(0 . "ELLIPSE");(0 . "SPLINE");(0 . "REGION")(-4 . "OR>"))))(progn(setq nr 0);对象序号(setq tot_area 0.0)(setq all_data '())(setq en (ssname ss1 nr));获取实体(while en(command "._area" "_O" en)(setq tot_area (+ tot_area (getvar "area")))(setq nr (1+ nr))(setq i 0)(setq en_data (entget en));获取多线段线顶点坐标(setq pts nil)(setvar "osmode" 0)(repeat (length en_data)(if (= (car (nth i en_data)) 10)(setq pts (append pts (list (cdr (nth i en_data))))))(setq i (1+ i)))(setq j 0)(setq pc_x 0.0)(setq pc_y 0.0)(repeat (length pts)(setq pc_x (+ pc_x (car (nth j pts))))(setq pc_y (+ pc_y (cadr (nth j pts))))(setq j (1+ j)))(setq pc_x (/ pc_x (length pts)))(setq pc_y (/ pc_y (length pts)))(setq pc1 (list pc_x pc_y));计算插入文字 点位置;插入序号 单个面积;(setq pc1 (car pts)); Plot circle (command "circle" pc1 circleH)(command "text" "m" pc1 textH 0 (itoa nr));获取创建的text 将他改为指定图层中;(setq en_t1 (entget (entlast)));(setq en_t1 (subst (cons 8 0) (assoc 8 en_t1) en_t1));(princ oldlist)(setq pc2 (list (car pc1) (- (cadr pc1) (* textH 2))))(setq en_area (getvar "area"))(princ (strcat "\nNo.=" (itoa nr) " 单个面积=" (rtos en_area 2 3)))(command "text" "m" pc2 textH 0 (strcat "S=" (rtos en_area 2 3) "m2"))(princ);(princ en_t2)(setvar "osmode" oldsanp)(setq all_data (cons (list nr en_area) all_data))(setq en (ssname ss1 nr)))(princ (strcat "\n总面积 = " (rtos tot_area) "\n"))         ;输出数据=========================; Reverse the list(setq all_data (reverse all_data)); write file (setq dat_file (getfiled "Save file as" "C:\\tempfile" "csv" 1))(setq fo (open dat_file "w"))(write-line "NO., Area" fo); element index start from 0(setq n (length all_data)i 0)(princ (strcat "\n多段线对象个数=" (itoa n)))(repeat n(setq data (nth i all_data))(write-line (strcat (itoa (1+ i)) ", "(rtos (nth 1 data) 2 3))fo)(setq i (1+ i)))(write-line (strcat "\n总面积 = " (rtos tot_area) "\n") fo)(close fo)(princ (strcat "\nWrite file:" dat_file))(prin1));if执行表达式)(princ)
)(defun c:newLayer () (setq lw (getvar "LWDEFAULT"))(if (not (tblsearch "layer" "001线路-拆迁"))(entmake (list '(0 . "LAYER") ;CELTYPE'(100 . "AcDbSymbolTableRecord") '(100 . "AcDbLayerTableRecord") '(6 . "Continuous") '(62 . 1) '(370 . 25)'(70 . 0) '(290 . 7) '(2 . "001线路-拆迁")))
;6组码4102【线型】,62组码【颜1653色】,370组码【线宽】回,70组码【可见】
;290组码【打答印】,2组码【图层名称】);autolisp建立图层
)

LISP文件 统计多段线的面积命令tjmj-并中心标注相关推荐

  1. 为什么CAD多段线没有面积属性或数值不对?快看过来!

    有些设计师小伙伴在CAD制图过程中,会遇到这样的一个问题:在CAD图纸中直接选取线条后用工具标出来的面积是实际面积的两倍,而且用CAD面积查询命令直接选择对象查不出面积,这是为什么呢?本文就和小编来给 ...

  2. DXF文件中将多段线凸度转换成圆弧

    在数控系统中,我们常常会将DXF文件转换成G代码,主要涉及到 直线.多段线.圆.圆弧.椭圆.样条曲线.点,七大类,在转换成G代码过程中,其中样条曲线和多段线中凸度问题是比较复杂一些,而样条曲线的转换网 ...

  3. 统计多段线长度命令_Auto CAD机械绘图入门教程11(编辑命令:延伸)

    1.延伸命令可以将所选的直线.射线.圆弧.椭圆弧.非封闭曲线的二维或三维多段线延伸到指定的直线.射线.圆弧.椭圆弧.圆.椭圆.二维或三维多段线.构造线和区域等的上面. 1.1.执行途径: 执行延伸的命 ...

  4. lisp读点坐标绘多义线_多段线点导出和导入点坐标成多段线(AutoLISP源码)——好用的AutoCAD点坐标导入导出工具...

    ;--------------------------------------------------------------------------------------------------- ...

  5. 检查cad检查线压盖lisp_在CAD中对多段线进行拓扑检查

    4.在弹出的提示框中,点击  确定: 检查完成后,系统会弹出错误汇总提示框,便于您统计错误数量: 注意:鼠标右键单击项目可自动定位到项目. 下面,我为大家介绍每个检查项的错误原因及修改方法: 1.不是 ...

  6. autocad.net 画多段线_解决AutoCAD2014绘制多段线的详细教程--系统之家

    AutoCAD2014如何绘制多线段?多段是由相连的直线和圆弧曲线组成的, 在直线和圆弧曲线之间可进行自由切换.用户可以设置多段线的宽度,也可以在不同的线段中设置不同的线宽.此外, 线段的始末端点也可 ...

  7. 【长度统计】多个对象长度计算,支持线段、多段线、圆弧

    长度统计zcd插件 支持线段.多段线.圆弧.圆.椭圆等长度计算 使用方法 1.下载插件到电脑任意位置 2.打开CAD输入命令AP(或菜单栏--工具--加载程序) 3.找到下载的插件统计线段长度zcd. ...

  8. AutoLISP将多段线各个端点坐标写入外部文件

    AutoLISP将多段线各个端点坐标写入外部文件,代码如下. (defun c:test()   (setvar "cmdecho" 0)   (setq ffn (getfile ...

  9. lisp 回执多段线_多段线上加点的LISP程序源码

    (defun c:jk() ;;;功能:在POLYLINE和LWPOLYLINE上增加节点 ;;;编制日期:2006-03-21 ;;;作者:冯焱 (VL-LOAD-COM) (princ " ...

最新文章

  1. php 2 往数据库添加数据
  2. linux idea 启动报错StartupAbortedException: Fatal error initializing plugin idea.plugin.protoeditor
  3. 全球计算机用户人数,NIC2019年11月:全球IPv6 用户数占比中国居43位
  4. Android开发笔记(一百零九)利用网盘实现云存储
  5. 一个老鸟眼中“IT民工”的发展方向
  6. 3.7.2 - Escape Sequences
  7. ln -s命令 linux_浅谈linux中ln命令,附带案例
  8. Android 解决双卡双待手机解析短信异常
  9. 【ICLR2020】通过强化学习和稀疏奖励进行模仿学习
  10. OTSU大津法对图像二值化
  11. 宝可梦火红存档修改器
  12. PR开场片头模板 恐怖惊悚电影侦探节目logo展示PR模板
  13. html关联程序怎么设置,Win10预览版10102系统中如何设置IE浏览器的关联程序【图文】...
  14. 聊聊软件开发的REP、CCP、CRP原则
  15. 计算机二级网页暂时无法连接,小编教你二级网页打不开怎么解决
  16. OpenCV实战2——进行颜色检测(HSV颜色空间)和分割的隐形斗篷
  17. 直男福利!手把手教你做一只口红色号识别器,秒变李佳琦
  18. Kubernetes 调度 Node污点/容忍
  19. GIS基础制图之地形图
  20. 酷派大神F2使用QPST进行nv备份恢复,解决无信号问题

热门文章

  1. wap精武堂源码php_“精武堂”火爆亮相 诱人显卡等你拿!
  2. shell中竖线的作用_Shell中符号意义
  3. 音乐与软件--我学音乐感受系列一.
  4. PFP会是数字藏品的未来吗?
  5. U盘安装XP操作系统最简单、最安全方法
  6. 数据库课设作业《公寓管理系统》
  7. 如何读取并对nii三维数据进行切片处理、转换格式保存
  8. Vue的数据绑定 事件 键盘 ,以及创建项目改端口号
  9. windows 无法安装ft232r usb uart 的解决办法
  10. nginx端口转发使用