好久之前就想开个专栏好好记录自己这四五年在cad二次开发过程中的一些心得体会啦,一直忙于考证,现在闲下来慢慢持续更新。

市面上由很多关于a/vlisp的入门教材了,我这里直接实战。以市面上插件中最常见的一个统计线段长度为例:

(defun count_length (/ ss n obj ss sumlen avelen len lenlst)(setq ss (ssget (list '(0 . "CIRCLE,ARC,ELLIPSE,LINE,*POLYLINE,SPLINE"))))
;ssget是用来在cad中选取对象的用法形如(ssget '((0 . "图元类型"))),还有很多高级用法以后再说啦
;CIRCLE圆,ARC圆弧,ELLIPSE椭圆,LINE直线,*POLYLINE多段线,SPLINE样条曲线(setq    n 0   sumlen 0maxlen 0minlen 0lenlst nil)
;(repeat 重复次数 重复操作的内容)(repeat (sslength ss)(setq obj (vlax-ename->vla-object (ssname ss n)))
;ssget函数返回值需要转换成图元名列表后才方便调用,常用vlax-ename->vla-object转换(setq len (vlax-curve-getdistatparam obj (vlax-curve-getEndParam obj)))
;(vlax-curve-getdistatparam 图元名 param)(setq lenlst (append lenlst (list len)))
;(append 列表 列表)返回列表。示例: (append '(1 2 3) '(1)) -> (1 2 3 1)(setq sumlen (+ sumlen len))(setq n (+ 1 n)))(setq avelen (/ sumlen n))
;(vl-sort 列表 排序函数)返回排序后列表 示例(vl-sort '(2 1 3) '<) -> (1 2 3)(setq   lenlst (vl-sort lenlst'(lambda (e1 e2)(< e1 e2))))
;(car 列表)列表首位元素 实例 (car '(1 2 3)) -> 1 (car (list '(1) 2 3)) -> (1)
;car可以组合最大四次 (caar (list '(1) 2 3)) -> 1 (setq  minlen (car lenlst)maxlen (last lenlst))
;(princ "需要在命令行输出的文字信息")
;(strcat 文本1 文本2 ...)返回组合文本 示例:(strcat "你" "hao" " 0") -> "你hao 0"
;(rtos 数字 模式 精度)返回文本 示例:(rtos 2.675893839 2 3) -> "2.676"(princ (strcat "n共有"(itoa (sslength ss))"条线段,总长:"(rtos sumlen 2 3)"均值"(rtos avelen 2 3)"最大值"(rtos maxlen 2 3)"最小值"(rtos minlen 2 3)))(princ)
)

是不是特别简单呀,这个程序范式自己改改还能用来统计图块数量等等。

计算多条线段总长的lisp程序_CAD二次开发-lisp篇(1)统计长度相关推荐

  1. lisp工具箱for中望_CAD二次开发LISP视频_小懒人CAD工具箱_CAD插件_CASS插件_LISP代码...

    CAD二次开发LISP视频_小懒人CAD工具箱_CAD插件_CASS插件_LISP代码 LISP教程,CADLISP开发视频,LISP视频 CAD二次开发视频 CASS开地教程 LISP视频 LISP ...

  2. 一键快速设置图层lisp程序_CAD快速切换图层LISP代码

    CAD 快速切换图层 LISP 代码 给楼主发一个图层更改的 lisp 程序,按对应数字键就可以切换到相应的图层.很方便. 0 ---- 0 1 ---- OBJ 2 ---- 6t 3 ---- S ...

  3. 一键快速设置图层lisp程序_CAD快速切换图层LISP代码 -

    CAD快速切换图层LISP代码 给楼主发一个图层更改的lisp程序,按对应数字键就可以切换到相应的图层.很方便. 0----0 1----OBJ 2----6t 3----SCETR ... 8--- ...

  4. 五边形lisp程序_CAD LISP 程序

    CAD LISP 程序 1. 计算所有线段总长度 ( 加载后只需框选所有线段便可得出这些线段的总长度 ) (defun c:LL () (setvar "cmdecho" 1) ( ...

  5. lisp调用vlx模块_CAD二次开发,lisp程序生成应用程序VLX,如何在CAD里面创建一个快捷图标,点击快捷图标就可以调用程序?...

    回答: 1.计算所有线段总长度(加载后只需框选所有线段便可得出这些线段的总长度) (defun c:LL () (setvar "cmdecho" 1) (setq en (ssg ...

  6. cad渐开线画法lisp程序_CAD插件——绘制圆的渐开线

    机械行业在使用CAD的时候,常常会需要绘制圆的渐开线.在网上找到一个画渐开线的LISP程序,不知道有没有人需要. 什么是圆的渐开线? 把一条没有弹性的细绳绕在一个定圆上,拉开绳子的一端并拉直,使绳子与 ...

  7. cad lisp程序大集,超经典CAD lisp程序集锦、CAD快捷键大全

    1.超经典CAD lisp程序集锦.CAD快捷键大全l pb.lsp - 通过给出长度将字符串分成两个串 cht.lsp - 直接修改文字内容或块属性 ct.lsp - 对数字串进行加减 chh.ls ...

  8. CAD二次开发lisp实战小项目——求和求差

    前言: 在画CAD时,很多时候需要计算标注以及数字字符之间的和与差,通过这个二次开发的小程序,最后可在CAD中通过快捷键选择对象,并直接计算结果. 如在CAD中画上一条直线,标注为112,并有字符20 ...

  9. cad渐开线画法lisp程序_CAD画齿轮的渐开线程序 (LSP)和渐开线齿轮关系

    一. CAD 中齿轮画法 有下面一段渐开线程序: ;;;begain suprgear.lsp ;************************************************* ; ...

  10. cad渐开线画法lisp程序_cad渐开线怎么画

    回答: AutoCAD绘制展开线的话,用程序绘制比较简单,程序如下:(defunC:tes(/&dis1&k1&kw1ang1objpt1pt2tc1) (vl-load-co ...

最新文章

  1. RepVGG:极简架构,SOTA性能,论文解读
  2. CCF - 201403-1 - 相反数
  3. Ajax拿取JSON格式的数据
  4. ancestral 箭头符号,译林版《牛津高中英语》模块五 高二上学期
  5. oracle表空间如何压缩,Oracle里表空间的压缩
  6. SpringBoot参数传递bean自动填充
  7. 摄像头云台的设计,组装与使用方法
  8. 91手机助手官网iPhone版 v5.3.2 官方版
  9. 官方win10安装教程,win10系统一键安装方法
  10. 为什么在不同网站查询本机的公网IP不一样?
  11. 芯片烧录器编程AT24C02
  12. Unity中的3D数学和渲染
  13. UI设计师为什么要学习字体设计?
  14. 燕山大学校园网自动登录问题解决方案
  15. 三人表决电路——Verilog HDL语言
  16. 转载:[5GC]5G LAN标准解读
  17. win2008找不到无线网络
  18. sequelize多条件_Sequelize 和 MySQL 对照
  19. 锁系列:一、悲观 / 乐观锁原理与运用
  20. 数字逻辑:常用MSI组合逻辑器件

热门文章

  1. mybatis使用generator生成器生成entity,mapper,xml模版类及自己写sql情况处理
  2. pinterest类网站差异化发展 时光轴成稀饭网突围利器
  3. 黑月MySQL_黑月编译器插件
  4. 视频截取图片帧工具(可免费使用)
  5. 【数学建模之Python】13.手撕抛物型方程的差分解法(如一维热传导方程)
  6. 神经网络的分类及其不同的应用场景
  7. matlab实现双线性插值,使用双线性插值法放大图像(matlab实现)
  8. lamp兄弟连 mysql_LAMP兄弟连原创视频教程(笔记五--文件上传下载,mysqli对象,session,cookie,date函数)...
  9. java jdom解析html_Javaweb中使用Jdom解析xml的方法
  10. android app 尺寸,Android APP标注尺寸入门教程和app标注工具