中易网

有几个CAD中的LISP语言怎么编程

答案:1  悬赏:40  
解决时间 2021-01-04 21:05
有几个CAD中的LISP语言怎么编程
最佳答案
AutoLISP语言是在普通的LISP语言基础上,又扩充了许多适用于CAD应用的功能而形成的一种程序设计语言。它是一种解释性求值语言,速度较慢,难以保密,可用任何文字编辑软件编辑,用纯文本的格式保存。例如:
(setq i 1);就是代码i值是1
(command "CIRCLE" '(0 0) 100);命令在坐标原点绘制半径100的圆。
AutoLISP语言中的一切成分都是以函数形式给出的,它没有语句概念或其他语法结构。执行AutoLISP程序就是执行一些函数,再调用其它函数。例如:
(setq pt1 (getpoint "\n请选择圆心插入点"))
(command "CIRCLE" pt1 100);命令这个插入点绘制圆,半径为100

AutoLISP把数据和程序统一表达为表结构,故可把程序当作数据来处理,也可把数据当作程序来执行。
例如:一条直线,起点坐标'(0 0),端点坐标'(1000 0),图层为0层,颜色为1【红色】这个是一条直线的一些数据,怎么执行变为程序代码如下:
(entmake (list '(0 . "LINE") '(8 . "0") '(62 . 1) '(10 0 0) '(11 1000 0)))
以上可以直观的看数据,也可以粘贴到AutoCAD的命令行,就绘制出以上要求的直线。
AutoLISP语言中程序运行过程就是对函数求值的过程,是在对函数求值的过程中实现函数的功能。在AutoCAD里面,所有的对象可以看成是由无数的点构成,每个点都有自己的坐标,函数的运行就是计算出这些点的数值,根据得到的数值进行判断。
AutoLISP语言的主要控制结构是采用递归方式。递归方式的使用,使得程序设计简单易懂。例如:
(setq &k1 (entsel));选择对象
(setq &k1 (car &k1));提取图元
(setq #g1 (entget &k1));取得属性列表
(setq c0 (cdr (assoc 0 #g1)));取得图元名称
以上是一个个的写下来,可以写成以下:
(setq c0 (cdr (assoc 0 (entget (car (entsel))))));简单易懂
由于autolisp简单,容易,所以上手很快。编写程序后,可以大大的提高绘图效率,有名的【天正】插件,就是绘图的好帮手。
autolisp程序也有不足的地方,如提取坐标,这个只能在图元属性里面提取,这样的话会有局限性,法向坐标1与-1的坐标值相同,但是图形的位置不同,造成计算坐标的困难,所以提取坐标值,最好使用VLAX函数来提取。
我要举报
如以上问答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
实逼处此的意思是什么啊?请解释下!
cs1.6EXE安装启动后出现Access Denied Please
什么加什么减9等于4
构哄的意思是什么?构哄的释义是什么啊?
健身房减肥瘦腿计划
肥东六中小学教学怎么样
回顾历史,放眼当下,实现中国梦应该警惕什么
有谁知道九制陈皮干怎么做?
雷诺阿的艺术评价
關照的意思是什么?關照的释义是什么啊?
北林的意思是什么啊?请解释下!
机场引导员工资多少,上班时间怎么安排的
基金的钱怎么算的?和余额宝不一样吗?
朋友圈很多人卖丰胸产品,有效果吗?
蜀山传奇妖王再现怎么玩 妖王再现副本玩法及
推荐资讯
Olá求翻译
治统的意思是什么啊?请解释下!
为什么人站久脚腿皮肤部分发白
1999年7月18号是西历什么时候
同心社进行实名认证后填写的真实信息安全吗?
106期会开几号
西安清松路到木踏寨公交车
美丽人生酵素果冻效果怎样
股市中 债券 怎么样划分级别?
GPS信号弱,怎么处理
兵役登记在网上进行就好了吗?求解急!!!!
君子将来,素帛戋戋.他年六礼既成,白头之约
手机登qq时,显示手机磁盘不足,清理后重新登
刺客的套装怎么选啊?