作者Egriawei (扭曲吧!)
站内Cad_Cae
标题[lisp] 取得每行首串列(应为点资料)并一一画点於图面上
时间Sun Aug 17 14:31:20 2008
这是上一次回答版友以数据输出"点"问题时
修改既有程式後的副产品
希望可以给部分版友对IO的参考
本程式是读取.txt档中
每行的第一个串列资料
当做点资料蒐集起来
之後以点的方式输出(当然依需要可以连线等等)
另外仍可使用';'作为txt档中注解符号
例如这样
;这是平面点资料
;x座标 y座摽
(1.02 3.22)
(5.12 1.67)
(3.66 12.56)
下面lisp出现的函数如有不熟
请先以F1查询
程式很短也有排版我想并不难看懂
请将以下文字copy到纯文字档案并另存成putpt.lsp
;putpt.lsp
;==========================
;putpt
;取得每行首串列(应为点资料)并一一画点於图面上
(defun putpt (fn / fp dat d char ptlist)
(setq fp (open fn "r"))
(while (and
(setq dat (read-line fp))
(setq char (substr dat 1 1))
(if (= char ";")
t
(progn
(setq dat (read dat)
ptlist (cons dat ptlist)
)
)
);end-if
);end-while-test
);end-while
(close fp)
;画点
;(setq ptlist (reverse ptlist));反转串列
(foreach dat ptlist (command "point" dat))
)
;=======================
(princ "本程式可将点数据分别以点图元形式一个个呈现於图面上")
(princ "\n请确认档案每行皆为2d,3d点资料形式的串列")
(princ "\n仅会读取每行第一个数据,故每个点资料请各列一行\n")
(princ "请於指令航键入如右指示之函数 (putpt \"dataname.datatype\")")
(princ)
;======How To Use========
;使用方法皆为键入(函数名称 "档案名称.副档名")
;如(putpt "data.txt")
;则可将各数据分别以点的形式呈现於图面上
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 118.168.192.118
※ 编辑: Egriawei 来自: 118.168.192.159 (08/19 23:47)