需要3d Line Lisp
您好,我需要一个LISP例程,它将允许我用“Z”坐标绘制一条线。我想单击当前x、y平面中的一个点,然后提示输入“Z”或标高作为线的起点,然后单击线的终点,再次提示输入“Z”坐标。这条线的终点将是下一条线的起点,然后继续拾取并输入“Z”坐标,形成一系列3D线,每个线在其交点处具有相同的“Z”坐标。任何帮助都将不胜感激,谢谢! 简单介绍一下:(defun c:lz (/ pt1 z1 pt2 z2)
(while
(and
(setq pt1 (getpoint "\nSpecify First Point: "))
(or (setq z1 (getdist "\nSpecify Z <0.0>: ")) (setq z1 0.0))
(setq pt2 (getpoint pt1 "\nSpecify Next Point: "))
(or (setq z2 (getdist "\nSpecify Z <0.0>: ")) (setq z2 0.0)))
(command "_.line" "_non"
(list (car pt1) (cadr pt1) z1) "_non"
(list (car pt2) (cadr pt2) z2) ""))
(princ)) 为什么不直接使用点过滤器呢。xy-大卫
谢谢David和Lee,这两种方法都比我之前做的要好得多。
李,可以了。修改lsp以继续该线,使用前一条线的端点坐标制作一条三维多线,以开始下一条线? 也许:
(defun c:lz(/ pt1 z1 pt2 z2 pt3 z3)
(if (and (setq pt1 (getpoint "\nSpecify First Point: "))
(or (setq z1 (getdist "\nSpecify Z <0.0>: ")) (setq z1 0.0))
(setq pt2 (getpoint (if pt2 pt2 pt1) "\nSpecify Next Point: "))
(or (setq z2 (getdist "\nSpecify Z <0.0>: ")) (setq z2 0.0)))
(progn
(command "_.line""_non"
(list (car pt1) (cadr pt1) z1) "_non"
(list (car pt2) (cadr pt2) z2) "")
(while (and (setq pt3 (getpoint pt2 "\nSpecify Next Point: "))
(or (setq z3 (getdist "\nSpecify Z <0.0>: ")) (setq z3 0.0)))
(command "_.line" "_non"
(list (car pt2) (cadr pt2) z2)
(list (car pt3) (cadr pt3) z3) "")
(setq z2 z3 pt2 pt3))))
(princ))
李,
非常感谢。我刚刚加载了文件,它工作得很好。如果我能为你做点什么,请告诉我。
托德·莫尔 很乐意帮忙
页:
[1]