明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 1332|回复: 4

[求助]請版主修改lisp

[复制链接]
发表于 2007-1-16 14:54 | 显示全部楼层 |阅读模式

請版主代修改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)

发表于 2007-1-16 23:01 | 显示全部楼层

你看看DIMZIN及DIMAZIN系统变量

再看看rtos函数(还有ATOI,ATIF ,ITOA),希望能对你有所帮助

 楼主| 发表于 2007-1-17 09:08 | 显示全部楼层
phoenixdjq发表于2007-1-16 23:01:00你看看DIMZIN及DIMAZIN系统变量再看看rtos函数(还有ATOI,ATIF ,ITOA),希望能对你有所帮助

謝謝大俠提供dimzin我設1,dimazin我設0,結果還是從頭算起8位數砍,至於rtos如何寫放再那裡,再次向你請教謝謝

发表于 2007-1-17 12:44 | 显示全部楼层
这样行不?
  1. (defun c:lsp_49a()
  2.    (setvar "cmdecho" 0)
  3. (setq n 1)
  4.    (setq ffn (getfiled "寫出檔案"  ""  "txt" 1))
  5.    (setvar "pdmode" 34)
  6.    (setq ff (open ffn "w"))
  7.    (close ff)
  8.    (while (setq pt (getpoint "\n點位置: "))
  9.       (command "point" pt)
  10.       (setq ff (open ffn "a"))
  11.       (princ n ff)
  12.       (princ "\t" ff)
  13.       (princ (rtos (car pt) 2 3) ff)
  14.       (princ "\t" ff)
  15.       (princ (rtos (cadr pt) 2 3) ff)
  16.       (princ "\t" ff)
  17.       (princ (rtos (caddr pt) 2 3) ff)
  18.       (princ "\n" ff)
  19.       (setq n (1+ n))
  20.       (close ff)
  21.    )
  22.    (princ (strcat "\n寫出檔案:  " ffn))
  23.    (prin1)
  24. )
  25. (defun c:lsp_49b()
  26.    (setvar "cmdecho" 0)
  27.    (setvar "pdmode" 34)
  28.    (setq ffn (getfiled "選取檔案"  "" "txt" 2))
  29.    (setq ff (open ffn "r"))
  30.    (while (setq data (read-line ff))
  31.       (setq pt (read (strcat "(" data ")"))
  32.      n (car pt)
  33.      pt (cdr pt))
  34.       (command "point" pt "text" pt "" "" (itoa n))
  35.    )
  36.    (close ff)
  37. )
  38. (princ "\n----------<<C:LSP_49A 寫出座標點  C:LSP_49B 讀取座標點 >>------------")
  39. (prin1)
 楼主| 发表于 2007-1-17 14:51 | 显示全部楼层

謝謝版主解危,當解不開時的心情伍足,又求助無門真是頭痛,

             解開時一切順啦,再次謝謝版主你是好人

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|CAD论坛|CAD教程|CAD下载|联系我们|关于明经|明经通道 ( 粤ICP备05003914号 )  
©2000-2023 明经通道 版权所有 本站代码,在未取得本站及作者授权的情况下,不得用于商业用途

GMT+8, 2024-5-3 13:49 , Processed in 0.453585 second(s), 25 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表