AutoLISP基本语法结构、语法

  1. 以括号组成表达式,左右括号一定要成对,单、双引号也要成对,例如:
(defun c:hello()(princ "\nHello world!")(prin1))
  1. 表达式格式:(函数名 操作数 操作数 …),例如:
(setq p1 (list 0 0))
(setq p2 (list 10 10))
(setq p3 (list 20 20))
;;; CAD中画直线,经过p1 p2 p3
(command "LINE" p1 p2 p3 "")
;;; 相当于 2+ (4×(2/4))
(setq sum (+ 2 (* 4 (/ 2 4))))
  • 函数包含功能函数和(defun)自定函数
  • 操作数(自变量)包括:整数(Integer)、实数(Real)、字符串(String)、列表(List)、对象名称代码(如<对象名称:634695>)、文件代码(如<文件:#+6363ea0>)、选择集代码(如<选集:3>)等等
  1. 表达式中的“操作数”,可以是标准AutoLISP函数或另一“表达式”或“子程序”。
  2. 多重括号表达式,运算原则是“先内后外、由左而右”。
  3. 使用defun功能函数定义新的命令或新的函数。
  4. 新定义的函数名称,若以“C:函数名”,则此函数可作为AutoCAD的新命令。
(defun c:zg ()              ;CAD中加载lisp文件后可直接用“zg”命令实现(setq zg (getint "\n输入字高:"))(prompt "\n选择需要修改的文字:")(setq ss (ssget))(setq n 0)(repeat (sslength ss)(setq en(ssname ss n))(setq ssdata (entget en))(setq sstype (cdr (assoc 0 ssdata)))(if    (= sstype "TEXT")(zgupdata))(setq n (1+ n)))(princ(strcat "/n已将" (itoa n) "个文字字高更改为:" (itoa zg)))(princ)
)
;;;修改图元属性并更新以显示更改后的结果
(defun zgupdata()(setq oldzglist(assoc 40 ssdata))(setq newzglist(cons 40 zg))(setq ssdata(subst newzglist oldzglist ssdata))(entmod ssdata)       ;属性更新)
(prompt "\n***************<zg>****************")
(princ)
  1. 变量类型依据设定值而在声明时自动定义,无需手动定义类型。声明后变量会一直储存该值,直到被重新定义或绘图结束后自动消失在AutoLISP程序中。最常用的变量类型有:
  • 整数:Integer (setq a 0)
  • 实数:Real (setq b 0.555) (setq c (/ 3 4))
  • 列表:List '(0 0 0) (list “abc” 100)
  • 字符串:String (setq str “hello world!”)
  1. 在CAD环境中查看变量值 或命令行中引用变量可用“!变量名”的方式。
    如:

  2. 定义函数语名中,/ 后的变量称为局部变量,否则为全局变量。
 (defun c:函数名(自变量 / 局部变量 ......)..............)
  1. AutoLISP中 “真” 为“T” ,空值为“nil”。不要用“Null”做为空值判断,因为Null是一个函数,作用是判断表达式是否为空:

AutoLISP 学习 (一)相关推荐

  1. AutoLisp学习笔记

    [前言] 最近发现,做CAD二次开发的,要么是计算机相关专业的,没有CAD基础:要么是工程制图出身,不会编程.所以写了这篇博客,AutoLisp学习笔记,根据我的学习经验,旨在给没有基础的你指明学习的 ...

  2. 木纹标识lisp_AutoLisp学习笔记:变量类型

    关于变量的几个概念: 1.符号 符号(SYMBOL)可以理解为标识,用来作为变量.函数的名字.它的命名规则是不能只含数字,可以由下列字符以外的任何可打印的字符所组成: "(".&q ...

  3. 吴永进lisp_AutoLISP$DCL基础篇

    内容概要 二位AutoCAD高手震撼年度精心巨作 最震撼的AutoCAD专业工程师必修宝典 一贯原则 篇篇精彩,句句重点 二位高手 力求完美, 漂亮出击 三个坚持 丰富专业.详实完整.不拖泥带水 四项 ...

  4. 角度转度分秒lisp函数_AutoLISP在尼康全站仪原始数据重新计算中的应用:尼康全站仪...

    摘 要:AutoLISP是针对AutoCAD系统的开发工具之一,也是开发AutoCAD图形软件的强有力工具,在很大程度上减轻了作业人员的工作强度.本文作者在研究AutoLISP与尼康全站仪原始数据结构 ...

  5. autolisp统计相同元素个数_统计学习基础知识

    统计:广义上讲,统计是一门"收集.整理.分析和解释数据或信息的科学".统计是有关数据的科学,设计数据的收集.分类.汇总.分析以及数字信息的解释. 统计方法是一种用于研究.分析和学习 ...

  6. pline加点lisp_用Autolisp 在AutoCAD中实现多种曲线的绘制

    用Autolisp 在AutoCAD中实现多种曲线的绘制 一.引言: AutoCAD自1982年由Autodesk公司推出以来,经历了20年的发展更新,目前,已深入到包括机械.建筑.服装.航天航空.地 ...

  7. 如何用lisp画蔓叶线_用Autolisp 在AutoCAD中实现多种曲线的绘制

    用 Autolisp 在 AutoCAD 中实现多种曲线的绘制 一.引言: AutoCAD 自 1982 年由 Autodesk 公司推出以来, 经历了 20 年的发展更 新,目前,已深入到包括机械. ...

  8. AutoLisp从入门到放弃(十七)

    经过之前的介绍,我们基本可以了解所有Autolisp的常用函数了.但是,从一开始到现在,我们几乎很少完整的实现一个功能.所以,从这一节开始,我们将通过一系列的实际绘图实例来进一步熟悉和巩固之前学习到的 ...

  9. lisp 设计盘形齿轮铣刀_用autolisp设计盘形齿轮铣刀渐开线齿形.doc

    用autolisp设计盘形齿轮铣刀渐开线齿形.doc  用 AutoLISP 设计盘形齿轮铣刀渐开线齿形  2008-4-29 18:57:00 来源:中国自动化网 浏览:253 网友评论 条 点 ...

最新文章

  1. PHP shell模式下执行PHP文件报错
  2. miRNA实验与荧光素酶
  3. reddit_如何将多个子Reddit与多个Reddit合并
  4. python 创建一个空向量_Python之Django系列-创建第一个应用-5
  5. 移动端UL列表无法平滑向下滚动问题
  6. 数据挖掘:围绕 统计与概率、分类与聚类、检索方法 ,原理演示或应用程序
  7. Android 车联网天气
  8. PAT1008数组元素循环右移问题(2,3测试点不过的解决办法)
  9. [剑指offer] 42. 和为S的两个数字
  10. 开源加速器Gemmini代码解析(一):脉动阵列
  11. 一个在线五笔的例子的代码,很不错,转载过来共享
  12. 整理归纳:《一课经济学》—— 只见树木不见森林
  13. 打砖块android代码,打砖块游戏的源代码
  14. macOS、Shimo下载使用及路由配置
  15. vue实现当前组件重新加载
  16. B. Cat Cycle
  17. 【游戏行业观察】篇1:成龙与《传奇》:传统网游营销模式的变迁
  18. java毕业生设计新能源汽车租赁管理系统计算机源码+系统+mysql+调试部署+lw
  19. 英文金曲大赛c语言,英文歌曲_最激情!佐治亚理工开学典礼欢迎辞_沪江英语
  20. 江苏学生考计算机要多少分录取,江苏高考多少名可以上211 最低要考多少分

热门文章

  1. 雷达图像中地物目标的极化信息
  2. vuecli2升级至vuecli3
  3. MyCat 之路 | 配置 Mysql 读写分离+强制走写节点+根据主从延时的读写分离
  4. BetaFlight开源工程结构简明介绍
  5. 用ScreenToGif录屏并生成gif动图
  6. 重庆智博会|2022智博会到底有哪些看点?拭目以待
  7. 视频MD5修改工具(短视频去重) 自媒体如何解决视频重复问题头条视频去重 今日头条视频消重去...
  8. 人工蜂群算法(ABC算法)Java实现
  9. 查看linux系统常用命令
  10. PHP 页面跳转到另一个页面的多种方法方法总结