在建筑与设计行业中,CAD有着非常广泛的应用,而其中的很多基本操作无法满足实际需求,容易产生大量的重复性的操作,这种重复性的操作违背了程序设计的思维,因此诞生了入门CAD二次开发的想法。
跟大多数程序设计语言一样,在了解CAD二次开发所应用的语言、开发环境后,购买了一本《AutoCAD二次开发实用教程》,也将基于这本书记录自己的入门过程。
CAD二次开发所应用的是Visual LISP的编译环境,是CAD自带的开发工具,这种语言也是比较古老的高级编程语言,曾经在网上见过一个大神的代码,用于计算多条直线长度求和的问题,这个lsp文件应该也是基于LISP语言的,大概长这个样子:
(princ "\n程序:统计线段长度 命令:te")(defun C:TE (/ CURVE TLEN SS N SUMLEN) (vl-load-com) (setq SUMLEN 0) (setq SS (ssget '((0 . "CIRCLE,ELLIPSE,LINE,*POLYLINE,SPLINE,ARC")))) (setq N 0) (repeat (sslength SS) (setq CURVE (vlax-ename->vla-object (ssname SS N))) (setq TLEN (vlax-curve-getdistatparam CURVE (vlax-curve-getendparam CURVE))) (setq SUMLEN (+ SUMLEN TLEN)) (setq N (1+ N))) (setq sumlen(/ sumlen 1000))(princ (strcat "\n共选择 " (itoa (sslength SS)) " 条线段. 线段总长: "(rtos SUMLEN 2 3) "米."))(princ) )
数据类型·表
AutoLISP语言的数据类型看起来比较笨重,没有Python那种直观的感觉,倒是有一种VB语言的风格在里面:
- INT 整数
- REAL 实数
- SYM 符号
- STR 字符串
- LIST 表
- FILE 文件描述符
- SUBR AutoLISP内部函数
- PICKSET AutoCAD选择集
- ENAME AutoCAD实体名
- PAGETB 函数分页表
待更新……