语法
(getpoint [pt] [prompt])
功能及参数
此函数将暂停以等待用户输入一点, pt 点为在目前UCS下的 2D 或 3D 基准点。Prompt 是一任意字符串, 用来提示用户输入一点。用户则可使用鼠标指定一点, 或由键盘输入目前单位格式的坐标, 来回答此点的位置。假如您设定了 pt这个参数, 则AutoCAD会从这个基准点拉一条橡皮筋到鼠标目前所在的位置。
范例
(setq p (getpoint))
(setq p (getpoint "Where "))
(setq p (getpoint '(15 20) "Second point:"))
此一返回值将表示成目前 UCS 坐标的 3D 点。
注意您不能在回应一个 getpoint 要求时, 再输入其他的 LISP表达式。
相关函数:getcorner 与 initget 函数。
(defun C:sx3 ( / n ss &kw L ff &k1 %k1 %k2);批量选择圆心坐标到记事本
(setvar "cmdecho" 0) ;;关闭变量
(setvar "blipmode" 0);;关闭控制点
(setvar "dimzin" 0)
(vl-load-com) ;;加载vlax扩展函数
(setq n 0 ss '()) ;;取得一个空表
(princ "\n请选择文字")
(setq &kw (ssget '((0 "CIRCLE"))));选择圆
(if (/= &kw nil);;如果有选择了圆
(progn
(setq L (sslength &kw)
ff (open "d://圆心到TXTtxt" "w");在D盘建立文本<圆心到TXT>
);;
(repeat L
(setq &k1 (entget (ssname &kw n))
%k1 (cdr (assoc 10 &k1)) ;;取得圆心坐标
ss (cons %k1 ss) ;;加入选择集
n (+ n 1)
)
)
(setq ss (vl-sort ss (function (lambda (x y)(< (fix (car x)) (fix (car y)))))));;X排序从左到右
(setq ss (vl-sort ss (function (lambda (x y)(> (fix (cadr x)) (fix (cadr y)))))));;Y排序从上到下
(setq n 0)
(repeat L
(setq &k1 (nth n ss)
%k1 (rtos (car &k1) 2 3) ;;取得X坐标,小数点后三位
%k2 (rtos (cadr &k1) 2 3);;取得Y坐标,小数点后三位
n (+ n 1)
)
(princ "X=" ff) ;;先输入X=(自己决定是否输入,不输入这句话删除)
(princ %k1 ff) ;;然后输入X坐标
(princ " " ff) ;;一个空格分开
(princ "Y=" ff) ;;然后输入Y=(自己决定是否输入,不输入这句话删除)
(princ %k2 ff) ;;然后输入Y坐标
(princ "\n" ff) ;;换一行计算
)
(close ff);;关闭文本
)
)
(prin1);;结束;;(记事本里面的数据可以导入表格)
)
(prompt "\n《C:SX3》坐标写入记事本")
(prin1)
加循环
(setq el (car (entsel)))
(foreach n (entget el)
(if (= 10 (car n))
(setq ptlist (cons (cdr n) ptlist)) )
)
以上就是关于LISP程序中如何输入点的三维坐标全部的内容,包括:LISP程序中如何输入点的三维坐标、如何用lisp框选一些圆,然后输出圆心坐标到TEXT文件、请问怎么用LISP语言,提取多段线的端点坐标,在获得属性列表后,我只能通过assoc判断出第一个端点坐标等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)