請版主代修改lisp 程式寫出txt時只有8位數希望能修改成,點號(4個欄位),x座標(12欄位小數3位數),y座標(12欄位小數3位數),小弟才初學lisp, (defun c:lsp_49a() (setvar "cmdecho" 0) (setq ffn (getfiled "寫出檔案" "" "txt" 1)) (setvar "pdmode" 34) (setq ff (open ffn "w")) (close ff) (setq pt (getpoint "\n點位置: ")) (while (/= pt nil) (command "point" pt) (setq ff (open ffn "a")) (princ (car pt) ff) (princ " " ff) (princ (cadr pt) ff) (princ " " ff) (princ (caddr pt) ff) (princ "\n" ff) (close ff) (setq pt (getpoint "\n點位置: ")) ) (princ (strcat "\n寫出檔案: " ffn)) (prin1) ) (defun c:lsp_49b() (setvar "cmdecho" 0) (setvar "pdmode" 34) (setq ffn (getfiled "選取檔案" "" "txt" 2)) (setq ff (open ffn "r")) (setq data (read-line ff)) (while data (setq p "" pp "" ppp '() i 1) (setq nn (strlen data)) (repeat nn (setq p (substr data i 1)) (if (/= p " ") (setq pp (strcat pp p)) (setq ppp (cons pp ppp) pp "") ) (setq i (1+ i)) ) (setq ppp (cons pp ppp)) (setq ppp (reverse ppp)) (draw_pt) (setq data (read-line ff)) ) (close ff) ) (defun draw_pt() (setq x (atof (car ppp))) (setq y (atof (cadr ppp))) (setq z (atof (caddr ppp))) (setq pt (list x y z)) (command "point" pt) ) (princ "\n----------<<CSP_49A 寫出座標點 CSP_49B 讀取座標點 >>------------") (prin1) |