[原创] 一个附带轨迹的 多点获取函数
本帖最后由 作者 于 2008-12-26 2:39:04 编辑( EF:GetNPointWithLinen b lstPrompt) ;带连线获取n点坐标
;n 需要获取的点数目
;lstPrompt 获取每个点前提示列表 如 ("获取第1点" "获取第2点" "获取第3点" "结束点")
;b 是否立即清除临时线段 T 每获取一个点立即删除之前绘制的临时线段 F 获取所有点后删除临时线段
;带连线获取n点坐标
;n 需要获取的点数目
;lstPrompt 获取每个点前提示列表 如 ("获取第1点" "获取第2点" "获取第3点" "结束点")
;b 是否立即清除临时线段 T 每获取一个点立即删除之前绘制的临时线段 F 获取所有点后删除临时线段
(defun EF:GetNPointWithLine ( n b lstPrompt / PtList i ss )
(setvar "CMDECHO" 0)
(setq
lastent (entlast)
PtList nil
PtList (cons (getpoint (if (car lstPrompt) (car lstPrompt) "获取第一点:")) PtList)
i 2
ss (ssadd)
lstPrompt (cdr lstPrompt)
)
(while (<= i n)
(if (car lstPrompt)
(progn
(prompt (car lstPrompt))
(setq lstPrompt (cdr lstPrompt))
)
(prompt "\n点选下一点")
)
(command "line" (car PtList) pause "")
(while (eq lastent (entlast))
(command "line" (car PtList) pause "")
)
(setq
Ptlist (cons (cdr (assoc 11 (entget (entlast)))) PtList)
i (1+ i)
)
(if b (entdel (entlast)) (setq ss (ssadd (entlast) ss)))
)
(if (not b) (command "erase" ss ""))
PtList
); end EF:GetNPointWithLine
恰好对我手头上的一个问题有参考作用,保存了 . <p>多谢,收藏备用!!!</p>
页:
[1]