计算多条线段总长的lisp程序_CAD二次开发-lisp篇(1)统计长度
好久之前就想开个专栏好好记录自己这四五年在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)统计长度相关推荐
- lisp工具箱for中望_CAD二次开发LISP视频_小懒人CAD工具箱_CAD插件_CASS插件_LISP代码...
CAD二次开发LISP视频_小懒人CAD工具箱_CAD插件_CASS插件_LISP代码 LISP教程,CADLISP开发视频,LISP视频 CAD二次开发视频 CASS开地教程 LISP视频 LISP ...
- 一键快速设置图层lisp程序_CAD快速切换图层LISP代码
CAD 快速切换图层 LISP 代码 给楼主发一个图层更改的 lisp 程序,按对应数字键就可以切换到相应的图层.很方便. 0 ---- 0 1 ---- OBJ 2 ---- 6t 3 ---- S ...
- 一键快速设置图层lisp程序_CAD快速切换图层LISP代码 -
CAD快速切换图层LISP代码 给楼主发一个图层更改的lisp程序,按对应数字键就可以切换到相应的图层.很方便. 0----0 1----OBJ 2----6t 3----SCETR ... 8--- ...
- 五边形lisp程序_CAD LISP 程序
CAD LISP 程序 1. 计算所有线段总长度 ( 加载后只需框选所有线段便可得出这些线段的总长度 ) (defun c:LL () (setvar "cmdecho" 1) ( ...
- lisp调用vlx模块_CAD二次开发,lisp程序生成应用程序VLX,如何在CAD里面创建一个快捷图标,点击快捷图标就可以调用程序?...
回答: 1.计算所有线段总长度(加载后只需框选所有线段便可得出这些线段的总长度) (defun c:LL () (setvar "cmdecho" 1) (setq en (ssg ...
- cad渐开线画法lisp程序_CAD插件——绘制圆的渐开线
机械行业在使用CAD的时候,常常会需要绘制圆的渐开线.在网上找到一个画渐开线的LISP程序,不知道有没有人需要. 什么是圆的渐开线? 把一条没有弹性的细绳绕在一个定圆上,拉开绳子的一端并拉直,使绳子与 ...
- cad lisp程序大集,超经典CAD lisp程序集锦、CAD快捷键大全
1.超经典CAD lisp程序集锦.CAD快捷键大全l pb.lsp - 通过给出长度将字符串分成两个串 cht.lsp - 直接修改文字内容或块属性 ct.lsp - 对数字串进行加减 chh.ls ...
- CAD二次开发lisp实战小项目——求和求差
前言: 在画CAD时,很多时候需要计算标注以及数字字符之间的和与差,通过这个二次开发的小程序,最后可在CAD中通过快捷键选择对象,并直接计算结果. 如在CAD中画上一条直线,标注为112,并有字符20 ...
- cad渐开线画法lisp程序_CAD画齿轮的渐开线程序 (LSP)和渐开线齿轮关系
一. CAD 中齿轮画法 有下面一段渐开线程序: ;;;begain suprgear.lsp ;************************************************* ; ...
- cad渐开线画法lisp程序_cad渐开线怎么画
回答: AutoCAD绘制展开线的话,用程序绘制比较简单,程序如下:(defunC:tes(/&dis1&k1&kw1ang1objpt1pt2tc1) (vl-load-co ...
最新文章
- RepVGG:极简架构,SOTA性能,论文解读
- CCF - 201403-1 - 相反数
- Ajax拿取JSON格式的数据
- ancestral 箭头符号,译林版《牛津高中英语》模块五 高二上学期
- oracle表空间如何压缩,Oracle里表空间的压缩
- SpringBoot参数传递bean自动填充
- 摄像头云台的设计,组装与使用方法
- 91手机助手官网iPhone版 v5.3.2 官方版
- 官方win10安装教程,win10系统一键安装方法
- 为什么在不同网站查询本机的公网IP不一样?
- 芯片烧录器编程AT24C02
- Unity中的3D数学和渲染
- UI设计师为什么要学习字体设计?
- 燕山大学校园网自动登录问题解决方案
- 三人表决电路——Verilog HDL语言
- 转载:[5GC]5G LAN标准解读
- win2008找不到无线网络
- sequelize多条件_Sequelize 和 MySQL 对照
- 锁系列:一、悲观 / 乐观锁原理与运用
- 数字逻辑:常用MSI组合逻辑器件
热门文章
- mybatis使用generator生成器生成entity,mapper,xml模版类及自己写sql情况处理
- pinterest类网站差异化发展 时光轴成稀饭网突围利器
- 黑月MySQL_黑月编译器插件
- 视频截取图片帧工具(可免费使用)
- 【数学建模之Python】13.手撕抛物型方程的差分解法(如一维热传导方程)
- 神经网络的分类及其不同的应用场景
- matlab实现双线性插值,使用双线性插值法放大图像(matlab实现)
- lamp兄弟连 mysql_LAMP兄弟连原创视频教程(笔记五--文件上传下载,mysqli对象,session,cookie,date函数)...
- java jdom解析html_Javaweb中使用Jdom解析xml的方法
- android app 尺寸,Android APP标注尺寸入门教程和app标注工具