lisp语言画地物符号_LISP语言在CAD工程制图中的应用_谢威
科技信息
一
、
引言
LISP
(
List
Processor
)
程序语言是由
Autodesk
公司开发的一种程序
语言
。
AutoCAD
软件包中包含大多数用于产生图形
、
处理图形的命令,
但仍有某些命令末被提供
。
通过
AutoLISP,
可以使用
AutoLISP
程序语
言编制能够在图形文本对象内编写工具或作全局选择性改变程序
。
在工程测量中,
内业资料计算占有很重要的比重,
内业资料计算的
速度直接决定了测量工作的快速
、
顺利地完成
。
计算机辅助设计
(
Computer
Aid
Design
简写
CAD,
常称
AutoCAD
)
是
20
世纪
80
年代初
发展起来的一门新兴技术型应用软件
。
如今在各个领域均得到了普遍
的应用
。
而
AutoCAD
配合
AutoLISP
语言编制出的程序,
使测量内业资
料整理更加有效的顺利进行,
从而大大减少内业工作量
。
以下通过编写
“
图块过滤
”
的
LISP
程序工具来说明程序在制图中的应用
。
二
、
工程制图
LISP
实用程序
1
、
主程序
(defun
c:gltk
()
(princ
"**
使用此程序时必须全图显示
**")
(setvar
"cmdecho"
0)
(SETVAR
"pickstyle"
0)
(setq
B
(assoc
2
(entget
(car
(entsel
"<
请选择需要过滤图块:>")))))
(setq
xisijl
(/
(*
(getdist
"<
请输入新距离
*
在屏幕上定点:>")
2)
(SQRT
2))
)
(setq
A
(ssget
"x"
(list
B)))
(setq
C
(SSLENGTH
A))
(setq
C
(1-
C))
(while
(>=
C
0)
(setq
D
(cdr
(assoc
10
(entget
(SSNAME
A
0)))))
(setq
E
(ssname
A
0))
(setq
POINT1
(POLAR
D
(/
pi
4)
xisijl))
(setq
POINT2
(POLAR
D
(*
(/
pi
4)
3)
xisijl))
(setq
POINT3
(POLAR
D
(/
pi
4)
(*
-1
xisijl)))
(setq
POINT4
(POLAR
D
(*
3
(/
pi
4))
(*
-1
xisijl)));
(command
"pline"
POINT1
POINT2
POINT3
POINT4
"c")
(setq
F
(ssget
"wp"
(list
POINT1
POINT2
POINT3
POINT4)
(list
B))
)
(if
(/=
F
nil)
(progn
(setq
nember
(SSLENGTH
F))
(setq
dd
0)
(REPEAT
nember
(setq
shushu1
(SSNAME
F
dd))
(setq
hhh
(ssdel
(ssname
F
dd)
A))
(entdel
shushu1)
(if
(/=
hhh
nil)
(setq
A
hhh)
)
(setq
dd
(+
dd
1))
)
)
)
(entdel
E)
(setq
C
(-
C
nember))
)
(SETVAR
"pickstyle"
1)
)
2
、
函数说明
(
1
)
setvar
函数用于给
AutoCAD
系统变量赋值
。
系统变量名必须置
于双引号中
。
setvar
函数格式为:
(
setvar
variable-name
value
)
其中
variable
name
…………
AutoCAD
系统变量
value
……………………
赋予系统变量的值
(
2
)
cmdecho
系统变量:
控制
AutoLISP
的
command
函数运行时
Au-
toCAD
是否回显提示和输入
。
(
3
)
setq
函数用于给变量赋值,
其格式如下:
(
setq
name
value
[
Name
value
]
…
)
其中
Name
…………………
变量名
value
…………………
赋予变量的值
(
4
)
getdist
函数暂停程序的运行,
等候用户输入距离,
随后以实数
形式返回该距离
。
getdist
函数格式为:
(
getdist
[
Point
]
[
Prompt
]
)
其中
Point
…………………
距离的第一点坐标
Prompt
………………
须在屏幕上显示的提示信息
(
5
)
progn
函数用于与
if
函数搭配,
以求解多个表达式
。
其格式为:
(
progn
表达式
)
当测试条件返回
“
真
”
时,
证函数只能求解一个表达式
。
progn
函数
可用于与
if
函数搭配以求解多个表达式
。
3
、
程序使用方法
假设有一片果园,
填充符号过密,
通过使用本程序实现以
30
米间
距填充
。
(
1
)
打开基于
CAD
基础开发的
CASS
软件,
绘制一片果园,
图
1
所
示
。
图
1
图
2
(
2
)
加载本程序
。
(
3
)
在命令提示栏键入
GLTK,
在命令栏提示
“
请选择需要过滤图
块
”
时,
选择任一果园符号;
提示
“
<
请输入新距离
*
在屏幕上定点:>
”
时,
输入间距
30
米并确定,
最后成果如图
2
所示
。
三
、
总结
AutoCAD
二
次
开
发
的
主
要
工
具
有
LISP
、
VB/VBA
的
ActiveX
及
C/C++
的
ObjectARX
。
这里推荐使用
LISP
语言是因为在
AutoCAD
中集
成了两种语言的开发环境,
并且有详细的帮助文件
。
LISP
语言是人工智
能学科领域中广泛采用的一种程序设计符号语言
。
这种语言在参数化
绘图中有很大的灵活性,
并且可以实现一定的人工智能
。
LISP
开发出的
程序可以像运行
CAD
普通命令一样在命令行中直接键入自己定义的
命令运行,
保持了用户的绘图习惯
。
工程制图人员采用
LISP
语言编写出适合工作需要的工具,
使工程制
图人员如虎添翼,大大提高了工作效率,
在更加广阔的天地里施展才华
。
参考文献
[
1]
《
AutoLISP
程序员参考手册
》
[
2]
《
AUTOCAD
使用手册
》
[
3]
《
南方
CASS
使用手册
》
LISP
语言在
CAD
工程制图中的应用
辽宁省第六地质大队
谢
威
辽宁省第二水文地质工程地质大队
杨
娇
[
摘
要
]
针对
CAD
技术在测量制图工作中的重要性,
而
LISP
程序是
CAD
技术的重要拓展,
结合自已的工作体会,
提出一种工具
程序设计,
并用
LISP
语言编程,
实现计算机的自动设计
、
计算
、
制图功能,
使工程制图工作更有效的顺利进行
。
[
关键词
]
LISP
工程制图
CAD
lisp语言画地物符号_LISP语言在CAD工程制图中的应用_谢威相关推荐
- lisp语言画地物符号_地物符号
地形是地物和地貌的总称.地物是地面上天然或人工形成的物体,如湖泊.河流.房屋.道路等.地面上的地物和地貌,应按国家测绘总局颁发的<地形图图式>中规定的符号表示于图上.其中地物符号有下列几种 ...
- lisp语言画地物符号_地图符号分为地物符号和特殊符号。
汉语真正作为外语学习,从东汉时期开始.目的主要是 . . . 椭圆 的焦点坐标是 常见的视频处理功能包括( ). 形序法不包括(). 椭圆 的焦点坐标是 工程量清单作为招标文件的组成部分,它是-- 抹 ...
- lisp不是函授型语言_LISP语言
[拼音]:LISP yuyan [外文]:LISP 为非数值符号运算而设计的表处理语言.LISP是英文LIST PROCESSING(表处理)的缩写. LISP语言是1960年J.麦卡锡在递归函数论基 ...
- 怎么用c语言画出坐标曲线,c语言打印贝塞尔曲线坐标(三阶)
贝塞尔曲线 贝塞尔曲线(Bézier curve),是应用于二维图形应用程序的数学曲线.一般的矢量图形软件通过它来精确画出曲线,贝赛尔曲线由线段与节点组成,节点是可拖动的支点,线段像可伸缩的皮筋,我们 ...
- c语言画猪程序,C语言画小猪佩奇(转载)
C语言画小猪佩奇 分享下如何用 C 语言画小猪佩奇 使用带符号距离场(signed distance field, SDF)表示圆形: 沿用这个方法表示形状,但这次我们想利用 ASCII 字符|/=\ ...
- lisp语言怎么获取简码_Lisp语言到底神奇在哪里?
前言 在浏览各种技术文章的过程中,经常会看到Lisp这门程序语言. 不过,我一直都不是很在意. 我热爱编程,我的目标是"有能力完成一款游戏的所有程序开发工作". 在我追求这个目标而 ...
- lisp不是函授型语言_lisp语言的定义
展开全部 约翰麦卡锡定义lisp 当然早已有了各种计算模型--最著名的是图32313133353236313431303231363533e4b893e5b19e31333361303032灵机. 但 ...
- lisp代码编写地物符号_工程图中标注序号的LISP程序
工程图中标注序号的LISP程序 (2007-04-03 17:11:45) 在工程设计工作中,经常要对设备.零件等标注序号.根据标准化要求,在标注点处要加上实心小圆点,然后引出直线 ;在另一端画出一个 ...
- lisp代码编写地物符号_Aroma:通过结构代码搜索推荐代码
1 引用 Sifei Luan and Di Yang and Celeste Barnaby and Koushik Sen and Satish Chandra. Aroma: code reco ...
最新文章
- XML和JSON数据格式对比
- 31天重构学习笔记重新整理下载
- 查看控制文件的内容(oracle)
- 消防信号二总线有没电压_消防的电源总线和二总线的区别,二总线是不是信号..._消防考试_帮考网...
- Android开发自学笔记(基于Android Studio1.3.1)—1.环境搭建(转)
- CTS(16 )---Android 兼容性定义文档
- 编写高质量JS代码上
- 记一次js调试(attachEvent, onchange, onpropertychange)
- 小米手机android9换字体,教你免费修改小米手机字体
- 现代软件工程-构建之法---第一章 练习与讨论
- 苹果手机电池保养再用两年!
- oppo手机怎么查计算机记录,oppo怎样查通话记录(oppo手机怎么查以前的通话记录)...
- 【Java】练习题库 单选题
- XX健康:移动端开发-体检预约验证码30秒倒计时短信验证码获取与验证DatePicker日历展示提交预约复杂流程阿里短信工具类
- django天天生鲜项目
- 高薪程序员面试题精讲系列60之进程与线程的区别有哪些?
- 品牌策划的驱动内核,营销美学战略和视觉营销策略
- Python创建excel,并写入数据
- Netattest EPS-ST05身份验证平台
- 电工学复习【6】-- 基本放大电路