美文网首页autolisp&visuallisp
奥托李斯普——第一回

奥托李斯普——第一回

作者: CWYAC | 来源:发表于2019-04-01 09:34 被阅读0次

特点:方言,动态类型,函数式...

基本数据容器:

(1.2 -3.4 0.5)     ("P13" "P13M" "P13SH")

((-1 . "T-2")(0 . "P13")(1 . "GSt12")(2 . "AIR COND COMP"))

(assoc -1 above_chain) ---> ((-1 . "T-2"))

(> (- 300 (1+ a)) 60)

所有语句都用圆括号,而且圆括号中第一个元素如果是关键词,那么此圆括号

就构成了一个函数表达式。


lisp基础函数

操作用函数:(setq car cdr caaddr list append ...)

判断用函数:(null and or )

控制用函数:(if cond listp null ...)

例子:行向量运算

如何实现(7 8 9) - (4 5 6) - (1 2 3)

(defun rec_- (lst_1 lst_2 lst_3)

      (if (and lst_1 lst_2 lst_3)

          (cons (- (car lst_1) (car lst_2) (car lst_3))

              (rec_- (cdr lst_1) (cdr lst_2) (cdr lst_3))

          )

      )

)

实际上autolisp有mapcar可以实现上述功能:

(mapcar '- lst_1 lst_2 lst_3)


autolisp基础函数

entsel,entmod,entmake,entget,entnext,entlast,subst,handent...

ssget,ssname,sslength,ssadd,ssdel,ssgetfirst...

strlen,substr,strcat,strcase...

distance,inters,trans,textbox,wcmatch...

grread,grdraw,command...


以2018年3月的日常改善来说明,如何使用autolisp的数据结构来实现期望的功能

一般程序框架结构,可参考PPT,AutoLisp基础讲解,再结合此案例说明

先配置系统变量,引入VLA(若需要),引入DCL,引入子函数,最后主函数过程

子函数可以不断总结归纳,减小开发时间

以SELENASBASE(select entity as base)函数为例,说明autolisp基础函数,ent类,ss类的

使用。其中:

pgfenlst:print图框(page frame entity list)

pgnenlst:print图框对应的PAGENO(page no entity lsit)

pgbplst:图框基点(page base point list)

有时间则可以讲解一下ESTI_LIN_PTS函数,功能:

判断一系列点是否在某条线段附近的某个范围之内。

linptpr:线段两个端点构成的列表

ptlist:点集

此功能涉及trans函数的活用。


可以思考一下,如何实现将多层嵌套的列表展开成一级列表,如:

((1.3 2.3 -2.1) "P13SH" ("GSt11" "AIR COND") 14.34)变成

(1.3 2.3 -2.1 "P13SH" "GSt11" "AIR COND" 14.34)

提醒:利用递归其实只要5,6行代码


下回:DCL

相关文章

  • 奥托李斯普——第一回

    特点:方言,动态类型,函数式... 基本数据容器:表 (1.2 -3.4 0.5) ("P13" "P13M" ...

  • 奥托李斯普——第三回

    开始训练! ;(setq pt (getpoint "\n请输入一个点")) ;(setq num (getrea...

  • 奥托李斯普——第二回

    上一回谈及的基础概念太多,不够务实,本次开始直奔主题, 用到什么学什么。 介绍上一回末尾的小问题,来讲解car,c...

  • 汤姆叔叔的小屋

    好句:圣克莱尔先生死后,奥菲利亚小姐便带着托普西回到了故乡佛蒙特州。在奥菲利亚小姐的尽力教导下,托普西进步很快,成...

  • 这个会充电的女士包包怎么样?

    (普莱奥充电钱包) (普莱奥充电钱包) (普莱奥充电钱包) (普莱奥充电钱包) (普莱奥充电钱包) 怎么样?这个能...

  • 国内常见钢琴厂家及其生产品牌

    北京市 北京星海钢琴集团有限公司(星海,卡哇伊,海资曼,奥托麦斯特尔,海乐尔,舒伯特,巴赫多夫,卡利西亚,李斯特,...

  • 德意志风云第14章:少年皇帝

    奥托三世的童年可谓命途多舛。三岁的时候,父亲奥托二世在意大利遭遇重大失败,诸侯为了架空奥托二世,便召开会议立奥托三...

  • 托普朗宁iEnglish英语平板多少钱?

    托普朗宁iEnglish英语平板 托普朗宁(北京)教育科技有限公司(下称“托普朗宁”)成立于2009年6月,公司总...

  • 普里奥拉托,创业成功的地方

    ​ 普里奥拉托产区位于西班牙东北部的加泰罗尼亚地区,距巴塞罗那约 120 公里,虽然离地中海不远,但四面环山,景致...

  • 《印象之托普卡帕》

    《印象之托普卡帕》 托普卡帕是什么,在哪?可能很少有人会知道,那为什么有许多人对托普卡帕魂牵梦绕,相信知道...

网友评论

    本文标题:奥托李斯普——第一回

    本文链接:https://www.haomeiwen.com/subject/gesjbqtx.html