ccshappy 发表于 2008-11-5 16:47:00

LISP 求助!求助 修改的高手

本帖最后由 作者 于 2008-11-6 0:19:41 编辑 <br /><br /> <p>改LISP源文件</p><p>这是个可以一次选多个对像(PLINE线)输出顶点坐标(保存为一个文件)</p><p>修改要求</p><p>1去掉生成文件的第一行</p><p>2将X和Y坐标位置交换</p><p>3加入顶点的Z坐标</p><p>4每条线生成一个文本文件,文件名为输入的第一个文件名数字累加</p><p>5输出的坐标小数位补齐为三位</p><p>谢谢!路过的大虾们</p><p>原码:</p><p>(defun c:zbb()<br/>(setq ffn (getfiled "坐标写入文本文件" "d:\" "txt" 1))<br/>(setq opf (open ffn "w"))<br/>(setq ss (ssget '((0 . "*LINE"))))<br/>(setq kg " ")<br/>(setq txt (strcat "角点" kg "X坐标" kg "Y坐标"))<br/>(write-line txt opf)<br/>;(princ (strcat "角点" kg "X坐标" kg "Y坐标") opf)<br/>(setq i -1)<br/>(setq key 10)<br/>(repeat (sslength ss)<br/>(setq ent (entget (ssname ss (setq i (1+ i)))))<br/>(setq count 1)<br/>(foreach xy ent<br/>(if (eq (car xy) key)<br/>(progn<br/>(setq pe (cdr xy))<br/>(setq x (rtos(cadr pe)2 3))<br/>(setq y (rtos(car pe)2 3))<br/>(write-line (strcat (itoa count) kg x kg y) opf)<br/>;(princ "\n" opf)<br/>;(princ (strcat (itoa count) kg x kg y) opf)<br/>(setq count (1+ count))<br/>)<br/>)<br/>)<br/>)</p><p>(close opf)<br/>(princ(strcat "\n坐标已写入文本: " ffn))<br/>(princ)<br/>)</p>

Andyhon 发表于 2008-11-5 17:42:00

<p>(setq ffn (getfiled "坐标写入文本文件" "d:\" "txt" 1))</p><p>===&gt;<br/>(setq ffn (getfiled "坐标写入文本文件" "d:\镇" "txt" 1))</p><p>其余未Check</p><p>感觉您应上传完工后的 文件样本 作为参考</p>
页: [1]
查看完整版本: LISP 求助!求助 修改的高手