1 / 13
文档名称:

Autolisp编程心得.doc

格式:doc   大小:4,537KB   页数:13页
下载后只包含 1 个 DOC 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

Autolisp编程心得.doc

上传人:lu2yuwb 2021/8/21 文件大小:4.43 MB

下载得到文件列表

Autolisp编程心得.doc

相关文档

文档介绍

文档介绍:Autolisp编程心得
D
(/= a 11) ;鼠标右键(SHORTCUTMENU=0)
(/= a 25) ;鼠标右键(SHORTCUTMENU≠0)
)
)
*******************

Lisp语言中输入距离的函数为getdist,但我们有时需要输入负值,有时需要在输入距离的
同时得到角度,使用getdist函数就显得无能为力,这时,我们可以灵活使用其它交互输入函数
如getpoint、getcorner等,通过计算得到我们所需要的值。
例二是一段输入长度的同时得到默认角度的代码,使用getpoint函数。
************************************************
;;例二
(setq pt0 (getpoint "\n直线基点: ")
pt1 (getpoint pt0 "\n直线长度: ") ;长度及角度可用键盘或鼠标定位
dst (distance pt0 pt1) ;计算长度
ang (angle pt0 pt1) ;计算默认角度
ang1 (getangle pt0 (strcat "\n直线方向<" (angtos ang 1) ">: "))
)
************************************************
例三是可以按阵列方式输入行列间距的代码,输入距离为正值,修改部分代码可输入负值,
使用getcorner函数,同时使用initget的控制位128。
************************************************
;;例三
(defun lc_dist ()
(initget 128) ;允许任意输入
(setq disr (getpoint "\n指定单位单元或输入行间距: "))
(if (= (type disr) 'LIST) ;鼠标输入
(progn
(initget 1)
(setq dis (getcorner disr "\n指定对角点: ") ;鼠标输入对角
disc (abs (- (car dis) (car disr))) ;正值行距
disr (abs (- (cadr dis) (cadr disr))) ;正值列距
) ;计算行列间距
)
(if (= (type disr) 'STR) ;键盘输入行距
(if (setq dis (distof disr)) ;判断输入的是否距离
(progn
(initget 6)
(setq disc (getdist "\n输入列间距: ")) ;输入列距
)
(progn ;键盘输入格式不符返回
(princ "\n需要正数值或两个二维角点。")
(lc_dist)
)
)
(progn ;空输入返回
(princ "\n需要正数值或两个二维角点。")
(lc

最近更新