当前位置: 首页 > news >正文

AutoLISP 演练(一)

一、输入左下角点、矩形宽、矩形高后,自动的将图形依所给的条件画出

二、变量约定

  1. 本程序所需的AutoLisp功能函数

(setq 变量名 变量值) ⬅ 设定变量值

(getpoint [基点] [提示]) ⬅ 请求参考基点输入一个点坐标

(getreal [提示]) ⬅ 请求输入一个实数

(polar 基点 弧度 距离)⬅按照极坐标方法取得另一坐标点

(command “AutoCAD命令”......)⬅调用执行AutoCAD命令

(getdist[基点] [提示]) ⬅请求输入一段距离

(getint[提示]) ⬅请求输入一个整数值

(getcorner 基点 [提示]) ⬅请求输入另一个矩形框对角点坐标

(car 列表) 返回列表中第一个元素,通常用来求x坐标

(cadr 列表) 返回列表中第二个元素,通常用来求y坐标

(caddr 列表) 返回列表中第三个元素,通常用来求z坐标

三、代码实现

(defun c:pbox (/ pa pb pc pd ww hh mp1 mp2 mp3 mp4) ;定义所需要得局部变量,减少内存占用

(setvar "cmdecho" 0) ;设定变量cmdecho=0 关闭命令响应

(setvar "blipmode" 0)

;;;以下pa、ww、hh值须由用户输入

(setq pa (getpoint "左下角点: "))

(setq ww (getdist pa "\n宽度:")) ;给定宽度时在屏幕上拉取一段距离代替

(setq hh (getdist pa "\n高度:")) ;给定高度时在屏幕上拉取一段距离代替

;;;以下pb、pc、pd值须由程序依据pa、ww、hh计算

(setq pb (polar pa 0 ww))

(setq pc (polar pb (/ pi 2) hh))

(setq pd (polar pc pi ww))

;;;以下依据pa、pb、pc、pd点画矩形

(command "pline" pa pb pc pd "c")

;;;以下mp1、mp2、mp3、mp4值须由程序依据pa、ww、hh计算得到

;;;&pb、pc、pd值计算得出

(setq mp1 (polar pa 0 (/ ww 2)))

(setq mp2 (polar pb (/ pi 2)(/ hh 2)))

(setq mp3 (polar pd 0 (/ ww 2)))

(setq mp4 (polar pa (/ pi 2)(/ hh 2)))

;;;以下依据mp1、mp2、mp3、mp4点画出两条线

(command "line" mp1 mp3 "")

(command "line" mp2 mp4 "")

(prin1);避免出现空响应nil

)

(prompt " \n<<C:PBOX>> 程序设计,作者:Talor") ;丰富程序界面内容

(prompt " \n这是我的第一个正式的AutoLISP程序")

(prin1) ;避免出现空响应nil

四、结束

通过梳理程序流程,优化程序结构,确能减少繁杂手工作业时间

相关文章:

  • feign漫谈
  • 1.浮动float
  • hud 1846巴什博弈(简单的解法 或 Sprague-Grundy解法)
  • Pytorch深度学习【十四】
  • CodeForces 438D The Child and Sequence(线段树区间取模)
  • Linux——系统管理篇
  • 【Java】面向对象笔记(中)(二)
  • 注册中心和负载均衡(黑马SpringCloud笔记)
  • DSPE-PEG-Silane,磷脂-聚乙二醇-硅烷,简介。可用于修饰玻璃、二氧化硅颗粒和许多其他材料表面
  • Acwing---1229.日期问题
  • 01.数据的存储.练习题
  • 1.6 阿达马积
  • verilog学习笔记- 14)静态数码管显示实验
  • Web测试的各个测试点
  • 好家伙,这几个隐藏功能,太香了
  • Android View类
  • 算法训练营 day20 二叉树 最大二叉树 合并二叉树 二叉搜索树中的搜索 验证二叉树
  • 系分 - 案例分析 - 架构设计(Web架构)
  • Allegro如何更改钻孔孔符以及大小操作指导
  • Java基础篇01-运算符的使用