发布于:2011-04-22 12:52:22
来自:建筑设计/CAD下载及教程
[复制转发]
我这个lsp是读cad地形图上一条线的XYZ坐标的,其中Z坐标可以交互输入,但是数据格式的精度只有单精度,我怎么样才能修改成双精度的,看了好几天了,也不知道怎么下手,是不是lsp里面数据格式最多是单精度?因为以前没接触过,请高手帮忙看下,万分感谢!
;本程序可以在图形上读取XYZ坐标,生成空格分隔的二维数据文件(SDF式);起始行为总点数,接着为X,Y,Z坐标;
(defun c:BJ (/ FNAME N P BI PX PY fpf CC ZZ)
(setq fname (getfiled "新建数据文件" " " "" 1))
(setq fpf (open fname "w"))
(setq N 1)
(SETQ BI '())
(initget "u U")
(setq cc "\n (选择第一点) ")
(while (setq P (GETPOINT cc))
(if (OR (= P "U") (= P "u"))
(progn
(setq BI (REVERSE BI)
BI (CDR BI)
BI (CDR BI)
BI (REVERSE BI)
N (- N 1)
)
)
(progn
(setq PX (car P)
PY (CADR P)
PZ (CADDR P)
)
(IF (SETQ ZZ (GETREAL "输入高程(若本就是三维坐标则回车即可)"))
(SETQ PZ ZZ)
)
(SETQ BI (APPEND BI (LIST PX PY PZ))
N (+ N 1)
)
)
)
(if (> N 1)
(setq CC "\n (选择下一点/取消U) ")
)
(initget "u U")
)
(SETQ L (/ (LENGTH BI) 3))
(PRINC L fpf)
(setq M 0)
(while (<= M (- L 1))
(setq PX (NTH (* M 3) BI))
(setq PY (NTH (+ (* M 3) 1) BI))
(setq PZ (NTH (+ (* M 3) 2) BI))
(PRINT PX fpf)
(PRINC " " fpf)
(PRINC PY fpf)
(PRINC " " fpf)
(PRINC PZ fpf)
(setq M (+ M 1))
)
(close fpf)
)
全部回复(1 )
只看楼主 我来说两句 抢板凳回复 举报