AutoLISP
AutoLISP是由Autodesk公司开发的一种LISP程序语言,LISP是List Processor的缩写。通过autolisp编程,可以节省工程师很多时间。AutoLISP语言作为嵌入在AutoCAD内部的具有智能特点的编程语言,是开发应用AutoCAD不可缺少的工具。
测量老覃
爱好编程的测量人,高工、注册测绘师。微博/抖音:@测量老覃 电邮:qindong@email.cn
展开
-
AutoCAD下完美的测量用绘缓和曲线AutoLISP程序
网上下载的许多绘缓和曲线的程序或插件大多不可用,最近着手弄了一个AutoLISP绘缓和曲线的程序,可以两种方式绘出缓和曲线,一是在直线与圆弧间绘单一缓和曲线相连,二是在交点的两切线直线边上按平曲线半径、缓和曲线长、设计速度绘出缓、圆、缓。程序正在加紧完善中,预计在2023年12月15日前上传到百度网盘共享链接目录中,请保存关注。链接:https://pan.baidu.com/s/1YRZItKIMA8JK_vMZ_SuKdw?程序将在最近几天上传,此链接永久有效,请先保存。原创 2023-12-01 09:56:48 · 1551 阅读 · 0 评论 -
AutoLISP由多边形(矩形)顶点点表创建SSGET选择集代码
在使用SSGET创建选择集时,常需要选择指定的多边形范围内的对象,一般可使用不带参数的ssget在生成选择集时交互时输入选择范围,这种方式不够灵活,在代码执行过程中容易造成错选。通常会事先绘制一个包含需选对象的多边形,由这个多边形来创建选择集,将多边形内的对象都选进来。原创 2023-11-04 14:50:10 · 435 阅读 · 0 评论 -
AutoCAD测量工具
CASS的安装对AutoCAD版本有一定要求,对于高版本AutoCAD打开CASS地形图后,无法使用CASS自带的地形点导出工具,可使用本工具箱中。工具免费下载使用,会根据需要陆续添加。导出地形点为dat格式地形数据文件。原创 2023-10-21 20:01:41 · 381 阅读 · 1 评论 -
关于自动加载 AutoLISP 应用程序
要自动加载 AutoLISP 例程,请将它们添加到 AutoCAD,或者使用文件加载它们。原创 2023-09-14 14:07:06 · 594 阅读 · 0 评论 -
南方CASS点状地物符号代码展点程序
以下代码可将带有南方CASS点状地物符号标记符的地形数据文件进行展点。原创 2023-09-14 14:04:30 · 552 阅读 · 0 评论 -
绘坐标方格网AutoLISP程序代码
绘坐标方格网程序代码,本段代码是 AutoCAD工程测量工具集 中的一个功能的源代码,可以单独运行。原创 2023-09-14 14:01:51 · 143 阅读 · 0 评论 -
关于 AutoLISP 应用程序
当加载 AutoLISP 应用程序后,它在自己的名称空间中为每个打开的图形执行任务。名称空间是一个隔离的环境,用于避免特定于某一文档的 AutoLISP 应用程序与另一个图形中的程序在符号或变量名和值方面发生冲突。例如,当在每个打开的图形中执行代码时,如下代码行将为符号 a 设置不同的值。由于 AutoCAD 具有内置 LISP 解释器,因此用户可以在命令提示下输入 AutoLISP 代码,或从外部文件加载 AutoLISP 代码。:名称相似的 AutoLISP 应用程序文件的加载由它们的编辑时间决定。原创 2023-09-14 13:59:36 · 195 阅读 · 0 评论 -
关于加载 AutoLISP 应用程序
在安全模式下进行操作时,程序限制为从“支持文件搜索路径”中的受信任位置加载和执行包含代码的文件;如果 LSP 文件不位于“支持文件搜索路径”中,则必须在 Filename 参数中指定一个相对支持路径。该值通常是文件中定义的最后一个函数的名称,或关于新加载的函数的用法说明。注意指定目录路径时,必须用一个斜杠 (/) 或两个反斜杠 (\) 作为分隔符,因为单个反斜杠在 AutoLISP 中具有特殊意义。要加载不在库路径中的 AutoLISP 文件,必须提供完整的路径和文件名作为 filename 参数。原创 2023-09-14 13:56:11 · 208 阅读 · 0 评论 -
横断面区域面积标注AutoLISP程序
本段代码是 [AutoCAD工程测量工具集]中的一个功能的源代码,可以单独运行。zzA与zzArea:标注面积到区域中心;zzArea2Table:输出面积到AutoCAD表格;zzArea2File:输出面积到文件原创 2023-09-10 15:50:52 · 209 阅读 · 0 评论 -
CASS地形图地形点单元转换为AutoCAD实体点对象
本段代码是 [AutoCAD工程测量工具集]中的一个功能的源代码,可以单独运行。功能为将CASS地形图地形点的单元对象转换为CAD点实体对象。原创 2023-09-10 15:45:30 · 109 阅读 · 0 评论 -
南方CASS地形图地形碎部点坐标导出程序代码
工程人员收到的地形图通常都是南方CASS生成的,虽然南方CASS可以将图中地形点导出为文本格式地形数据文件,但并不是每个技术人员电脑上都装有CASS,多数只使用AutoCAD,对于只安装有AutoCAD的想将地形图中的地形点坐标导出来是比较麻烦的。将以下代码拷贝粘贴到计事本中,保存为一文本文件,扩展名为 **“.lsp”**,在AutoCAD命令行输入命令 **“Appload”**,找到这个文件加载,就可执行命令 **“zzExport2Dat”**,按提示输入导出数据点文件名保存即可。原创 2023-09-10 15:42:13 · 549 阅读 · 0 评论 -
取区域外地形点删除封闭区域内地形点AutoLISP程序源代码
在AutoCAD中用多义线绘制一封闭区域,用以下扩展命令将对应的地形数据文件(.dat)中该区域内(稍加修改可变为区域外)的点删除。原创 2023-09-10 15:27:03 · 54 阅读 · 0 评论 -
绘横断面图标尺AutoLISP程序源代码
代码最早还是在99年港口湾水库测量队处理测量内业时写的,当时使用的还是AutoCAD R14,二十多年后偶而翻网盘时找了出来,在AutoCAD 2018上运行了一下,因代码不专业和严谨,个别地方出了点小问题,但总体上还是能够把标尺绘出来。如果是VBA或C++二次开发的程序,在经历了这么多年和版本升级后,原来的程序几乎无法加载。单纯从兼容上来说,LISP小程序生命力是非常顽强的。目前直至今后的很多年,AutoCAD将继续支持LISP,因此用LISP编写工作中的一些小工具还是非常理想实用快捷的。原创 2023-09-10 15:14:10 · 139 阅读 · 0 评论 -
AutoLISP自定义通用过程函数
本段代码是 [AutoCAD工程测量工具集]中可能调用的自定义通用函数。原创 2023-09-10 14:55:20 · 420 阅读 · 0 评论 -
AutoLISP绘三维对象实体代码
使用AutoLisp代码生成三维线段、三维面和三维实体的简单代码。原创 2023-09-10 14:43:07 · 206 阅读 · 0 评论 -
AutoCAD三维建模与AutoLISP地形展点检查隧道工程开挖效果
我们把建筑设计图纸用AutoCAD三维还原后,可对现场开挖工作面测量一些坐标点展点后与三维模型对照检查开挖放样的准确性。下图是某抽水蓄能电站地下厂房部分结构的三维模型。粉色部分是开挖曲面部分。用AutoLISP写段代码将开挖面测量的坐标点展点,为了方便查看,每个点用一个小球表示,下图中为了展示效果,将小球作了放大,实际以点的密度和查看效果动态修改:(defun C:zzZd (/ ptName ptSign ptE ptN ptH) ;读取DAT数据文件生成小球体 (setq cmde原创 2020-05-30 10:14:24 · 1163 阅读 · 11 评论 -
AutoCAD工程测量工具集
源代码见:将在本博客中陆续发布。。。下载地址:即将上传。AutoLisp程序可用appload命令加载。推荐加载时加入自启动组。所有命令均以“zz”开头,程序加载后在命令行中输入“zz”就会弹出所有命令列表,用上、下键在列表中选择后按回车键执行即可。原创 2019-08-31 11:23:17 · 1326 阅读 · 0 评论 -
Visual Lisp代码片断:生成文本对象
;用法:(EntMakeText 点X 点Y 文本内容 文本高度 颜色 层名)(defun EntMakeText (px py str tHeight styleName layerName / pt) (setq pt (list px py)) (entmakeX (list '(0 . "TEXT") (cons 1 str) (cons 10 p...原创 2018-05-20 17:20:09 · 801 阅读 · 0 评论 -
点抽稀AutoLISP程序
(defun C:dcx (/ ptE ptN ptH ptName ptSign tmpSign rIndex rIndex2) (setq ptSign nil ptE nil ptN nil ptName nil tmpSign nil rIndex nil rIndex2 nil ) (setq fi "F:\\lisp\\datfile2.dat") (se...原创 2019-06-05 17:03:50 · 752 阅读 · 0 评论 -
工程测量内业中提取横断面线折点坐标数据并写入文件
在工程测量内业处理中,有时需将横断面线数据提取出来,横断面线关键点是以“偏轴距,高程”二维形式提取,使用时选择一条横断面线(多义线),指定横断面的基准点(通常是一个特别的交叉点及其在横断面中的坐标,一般选择断面轴线与某一已高程的点),程序将把断面线(多义线)的折点坐标逐点计算出对应于横断面的平面坐标写入文件。(defun c:zzDMX () (setvar "cmdecho" 0) ...原创 2019-06-05 17:14:03 · 3028 阅读 · 2 评论 -
判断点是否在多边形区域内的AutoLISP程序
本代码根据网上某网友代码稍作修改,版权归原作者所有^_^!(defun pt_inorout (regionObj pt / pt_list e1 pt n i j va va_count) (setq pt_list (mapcar 'cdr (vl-remove-if '(lambda (x) (/= 10 (car x))) (entget (car ...原创 2019-06-05 17:19:46 · 1806 阅读 · 0 评论 -
AutoLISP笔记——常用代码片断
1、字符串按指定分隔符分隔;;;功能:字符串按指定分隔符分隔;;;(split "1,,255280.791,3743764.732,2786.206" ",");;;返回:("1" "" "255280.791" "3743764.732" "2786.206")(defun split (str delim / LST POS) (while (setq pos (vl-str...原创 2019-06-06 14:43:40 · 2442 阅读 · 0 评论 -
Auto\Visual LISP代码片断
Auto\Visual LISP代码片断-创建对象创建直线对象创建多义线对象生成指定宽度的多义线创建文本对象创建点实体创建居中文本创建图层创建图层创建文本样式创建文本样式(注释性)创建直线对象;用法:(EntMakeLine 起点X 起点Y 终点X 终点Y 颜色 层名)(defun EntMakeLine (xa ya xb yb lineColor layerName / p1 p2) ...原创 2019-06-02 11:15:47 · 643 阅读 · 0 评论 -
Auto Lisp代码片断-读取CASS测量地形数据文件生成表
功能:读取CASS格式测量地形数据文件生成Lisp表用于后续处理。(defun C:readDatFile (/ ptName ptSign ptE ptN ptH) (setq fi "F:\\lisp\\datfile.dat") (setq f (open fi "r")) (setq rIndex 0) (while (setq lineStr (read-line f)...原创 2019-06-02 14:34:38 · 908 阅读 · 0 评论 -
AutoCAD Civil 3D中将CASS地形图中地形点转换成CAD点实体
使用AutoCAD Civil 3D打开CASS生成的地形图,由于CASS地形图中的地形点是以块形式存在的,虽然我们可以使用CAD的图元对象中的块进行曲面定义,但这样做的结果就是虽有曲面但没有对应的地形点。我们需要将块状地形点转换成CAD的点对象,再在AutoCAD Civil 3D里根据CAD点生成Civil 3D格式的点对象,并加入点编组用于后组定义曲面或导出等操作。以下代码的使用方法是,用...原创 2019-06-02 16:36:46 · 5096 阅读 · 0 评论 -
AutoLisp编程笔记
1、选择实体并提取指定数据如坐标在下列代码块中:(defun C:CASS2POINT (); (setq ss (ssget "X" '((0 . "insert") (8 . "GCD")))) (setq ss (ssget "X" '((0 . "insert") (2 . "GC*")))) (setq i 0) (repeat (sslength ss) (...原创 2019-07-13 08:17:55 · 1208 阅读 · 0 评论 -
AutoLisp——选择对象函数ssget用法
语法:(ssget [sel-method] [pt1 [pt2]] [pt-list] [filter-list])ssget 的参数均为可选参数,需要注意的是可选参数之间的组合条件。以下语法表示中 尖括号代表必选,[parameter] 方括号代表可选。一、选择集的窗口参数[sel-method] 字符串类型,不区分大小写,指定一个选择方法。[pt1 [pt2]] 表类型,由...转载 2019-06-03 16:06:59 · 15752 阅读 · 1 评论 -
AutoLisp编程笔记——选择集方法集锦
(setq ss (ssget '((0 . "insert")))) ;提交交互选择(setq ss (ssget "X" '((0 . "insert") (8 . "GCD")))) ;加"X"不提示直接选择(setq ss (ssget ":S" '((0 . "LINE")))) ;只选取一次直线(省约回车) (setq ss (ssget "X" '((0 . "LINE"...转载 2019-07-13 08:24:47 · 5843 阅读 · 1 评论 -
AutoCAD实体添加和读取扩展信息的AutoLISP函数
这是以前编写断面绘图程序时写的两个函数,一是给AutoCAD实体(可见对象)添加扩展信息的代码,另一个是从实体读取扩展信息的代码。本意是用此程序绘出的断面线在绘图时将该横断面的参数以扩展信息添加到多义线上,后续处理时可判断断面线是否是程序所绘并从断面线上提取断面线所在横断面的参数,如断面基准点坐标信息等。一、给AutoCAD实体添加扩展信息的函数代码:(defun AddXdata()...原创 2019-06-10 17:05:02 · 2514 阅读 · 0 评论 -
AutoCAD中删除封闭多义线区域外(内)的点
在AutoCAD中用多义线绘制一封闭区域,用以下扩展命令将对应的地形数据文件(.dat)中该区域外(稍加修改可变为区域内)的点删除。后续将改进为只对图面点进行处理。(defun C:zzQydx (/ ptName ptSign ptE ptN ptH ptCount filename1 filename2) (princ "功能:删除指定区域外的点。(C)QinDong 201...原创 2019-06-10 17:15:26 · 4925 阅读 · 1 评论 -
AutoLISP-快速更正等高线高程
密瓦IX标县道工程共11公里余。目前获得前期带状地形图为多幅拼接,DWG格式。图中等高线属性标高与等高线值不相符合,经检查,每幅图中在出图时将所有等高线作了升高或降低处理。但在同一幅图内,差值是常数。前几日在处理第一段时手工操作,费时费力,且容易出错。在生成曲面时才发现有极个别很小的等高线未更正,导致曲面生成后出现极高、极低点。因后续尚有9公里的带状地形等高线需要更正,工作量巨大,必须借用LISP...原创 2019-07-31 16:06:29 · 1458 阅读 · 0 评论 -
Visual Lisp代码片断:生成直线对象
;用法:(EntMakeLine 起点X 起点Y 终点X 终点Y 颜色 层名)(defun EntMakeLine (xa ya xb yb lineColor layerName / p1 p2) (setq p1 (list xa ya) p2 (list xb yb)) (entmakeX (list '(0 . "LINE") (cons 10 p1) (cons 11 ...原创 2018-05-20 17:18:03 · 837 阅读 · 0 评论