elitefish 发表于 2008-12-26 02:36:00

[原创] 一个附带轨迹的 多点获取函数

本帖最后由 作者 于 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

gisshow 发表于 2008-12-26 17:41:00

恰好对我手头上的一个问题有参考作用,保存了 .

llc1968 发表于 2008-12-26 22:38:00

<p>多谢,收藏备用!!!</p>
页: [1]
查看完整版本: [原创] 一个附带轨迹的 多点获取函数