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. SAP QM 质量检验特殊业务需求之方案漫谈
  2. 9. Leetcode 27. 移除元素 (数组-同向双指针-快慢指针)
  3. 【转】子网划分实例与讲解
  4. 将harbor仓库镜像迁移至另一台harbor仓库服务器
  5. PHP下用正则表达式分割preg_split、替换reg_replace、匹配preg_match_all等出现乱码的解决方法...
  6. TensorFlow8-mnist手写数字识别入门
  7. 【kubernetes / k8s 踩坑记录】一定要关闭SWAP
  8. C#LeetCode刷题-数组
  9. redis主线程阻塞的情形
  10. C#图解教程读书笔记(结构)
  11. 计算机是uefi启动 不能装win7,UEFI模式安装Win7系统方法_Win7 Uefi下安装详细教程
  12. mysql提现_MYSQL事务教程之Yii2.0商户提现功能
  13. 如何在学习中找到乐趣?怎样才能找到学习的乐趣
  14. matlab 拟合曲线 预测,matlab曲线拟合和预测
  15. 随身WIFI安装Debian流程记录
  16. 去中心化云图床搭建建议:Cyberduck+4everland bucket
  17. 自学编程的30岁男人,能按应届生那样找工作吗?
  18. tkinter 动态显示时间的方法
  19. 接口测试、接口协议以及常用接口测试工具介绍
  20. 什么是memcache,常见的memcache方法

热门文章

  1. python判断sqlite数据库是否存在_sqlite3 判断数据库是否存在
  2. 道路车辆 盲区监测(bsd)系统性能要求及试验方法_让你的爱车“多一双眼睛”——BSD盲点监测系统...
  3. jdk卸载(Jdk卸载不干净的影响)
  4. 联合办公格局已定?氪空间优客工场双雄争霸
  5. java 重定向端口_java – 重定向到另一个端口,保留所有其余的端口
  6. js拆字_分图程序 _制作个人字体_手写字制作ttf字体方法
  7. windows当前使用壁纸路径
  8. Fiddler Classic
  9. python turtle绘图-案例集锦(小猪佩奇、哆啦A梦、小黄人、樱花树、皮卡丘、汉诺塔、高达、星空等)
  10. 主板上Usb线序规则