AutoCAD顧問
還沒有註冊嗎...即日起免費註冊,所有最完整的AutoCAD討論、教學及資源都在論壇裡喔~

Join the forum, it's quick and easy

AutoCAD顧問
還沒有註冊嗎...即日起免費註冊,所有最完整的AutoCAD討論、教學及資源都在論壇裡喔~
AutoCAD顧問
Would you like to react to this message? Create an account in a few clicks or log in to continue.
[已解決]如何把AUTO CAD裡的文字匯出到固定的XX.TXT文字檔 Io15011 [已解決]如何把AUTO CAD裡的文字匯出到固定的XX.TXT文字檔 2020-310 [已解決]如何把AUTO CAD裡的文字匯出到固定的XX.TXT文字檔 Oiu15010 [已解決]如何把AUTO CAD裡的文字匯出到固定的XX.TXT文字檔 2020-211 [已解決]如何把AUTO CAD裡的文字匯出到固定的XX.TXT文字檔 Oo-2-110 [已解決]如何把AUTO CAD裡的文字匯出到固定的XX.TXT文字檔 BPl3tjj

[已解決]如何把AUTO CAD裡的文字匯出到固定的XX.TXT文字檔

+3
jassica123
vl7120
aaronchung.tw
7 posters

向下

[已解決]如何把AUTO CAD裡的文字匯出到固定的XX.TXT文字檔 Empty [已解決]如何把AUTO CAD裡的文字匯出到固定的XX.TXT文字檔

發表 由 aaronchung.tw 2011-12-05, 14:12

[問題]我想要把AUTO CAD裡的文字匯出到XX.TXT的文字檔裡,我搜尋文章發現以下兩種方法可以實現:

方法一:用AutoCAD 2008「資料萃取」精靈 dataextraction指令,這個有符合我所要的功能,但匯出步驟不夠精簡。
               優點是匯出的文字會依序排列(依照數字英文順序排列)。

方法二:使用以下這個LISP,可以很快速的匯出*.TXT,但匯出的文字不會依照數字英文順序排列。
               還有匯出的檔名是否可以給個固定的儲存路徑及檔名(如:固定匯出後儲存為D:\abc\abc.txt)

我搜尋到的LISP程式如下:請問要如何修改:(順帶附加程式解釋,方便的話,謝謝)

(defun c:TEXTEX()
  (setq ffn (getfiled "寫出檔案" "" "" 1))
  (princ "\n選取文字...")
  (setq ss (ssget))
  (setq ff (open ffn "w"))
  (setq i 0)
  (repeat (sslength ss)
     (setq ssn (ssname ss i))
     (setq ssdata (entget ssn))
     (setq sstyp (cdr (assoc 0 ssdata)))
     (if (= sstyp "TEXT")
        (progn
    (setq txt (cdr (assoc 1 ssdata)))
         (princ txt ff)
           (princ "\n" ff)
         )
     )
     (setq i (1+ i))        
  )
  (close ff)
  (princ (strcat "\n寫出檔案: " ffn))
  (prin1)
)  

對於回覆者由衷感謝,感激不盡。

程式原始文章:AutoCAD 2008「資料萃取」精靈 dataextraction指令
http://kv1012tiger.pixnet.net/blog/post/102358957
aaronchung.tw
aaronchung.tw
初級會員
初級會員

文章總數 : 85
年齡 : 42
來自 : Taipei
職業 : 繪圖
愛好 : 電腦網路,閑逛
個性 : 隨和
使用年資 : 8年
使用版本 : 2008
積分 : 1
經驗值 : 4007
威望值 : 24
注冊日期 : 2011-12-03
藍鵲198號
男 射手座 馬

回頂端 向下

[已解決]如何把AUTO CAD裡的文字匯出到固定的XX.TXT文字檔 Empty 回復: [已解決]如何把AUTO CAD裡的文字匯出到固定的XX.TXT文字檔

發表 由 aaronchung.tw 2011-12-08, 17:05

是不是很難的問題,請求會的高手幫幫忙。謝謝您!
aaronchung.tw
aaronchung.tw
初級會員
初級會員

文章總數 : 85
年齡 : 42
來自 : Taipei
職業 : 繪圖
愛好 : 電腦網路,閑逛
個性 : 隨和
使用年資 : 8年
使用版本 : 2008
積分 : 1
經驗值 : 4007
威望值 : 24
注冊日期 : 2011-12-03
藍鵲198號
男 射手座 馬

回頂端 向下

[已解決]如何把AUTO CAD裡的文字匯出到固定的XX.TXT文字檔 Empty 回復: [已解決]如何把AUTO CAD裡的文字匯出到固定的XX.TXT文字檔

發表 由 vl7120 2011-12-18, 17:37

這個LISP匯出的文字是依照選取順序排列。
若要固定匯出後儲存為D:\abc\abc.txt
D槽需有abc這個子目錄
則修改為(setq ffn (getfiled "寫出檔案" "D:\\abc\\abc.txt" "" 1))
vl7120
vl7120
初級會員
初級會員

文章總數 : 90
年齡 : 51
來自 : 高雄
職業 : 待業
愛好 : 旅遊
個性 : 木訥
使用年資 : 新手初學
使用版本 : 2000
積分 : 1
經驗值 : 4124
威望值 : 45
注冊日期 : 2011-07-02
藍鵲215號
女 天秤座 雞

回頂端 向下

[已解決]如何把AUTO CAD裡的文字匯出到固定的XX.TXT文字檔 Empty 回復: [已解決]如何把AUTO CAD裡的文字匯出到固定的XX.TXT文字檔

發表 由 aaronchung.tw 2011-12-20, 08:41

vl7120 寫到:這個LISP匯出的文字是依照選取順序排列。
若要固定匯出後儲存為D:\abc\abc.txt
D槽需有abc這個子目錄
則修改為(setq ffn (getfiled "寫出檔案" "D:\\abc\\abc.txt" "" 1))

我試了用可以儲存在自己設定固定的檔名了,感謝您的回覆與指導。

至於以選取順序這個部份要是想要用框選多個的方法選取,
然後匯出的文字會依照數字英文順序排列,要怎麼改寫呢?懇請賜教。謝謝!
aaronchung.tw
aaronchung.tw
初級會員
初級會員

文章總數 : 85
年齡 : 42
來自 : Taipei
職業 : 繪圖
愛好 : 電腦網路,閑逛
個性 : 隨和
使用年資 : 8年
使用版本 : 2008
積分 : 1
經驗值 : 4007
威望值 : 24
注冊日期 : 2011-12-03
藍鵲198號
男 射手座 馬

回頂端 向下

[已解決]如何把AUTO CAD裡的文字匯出到固定的XX.TXT文字檔 Empty 回復: [已解決]如何把AUTO CAD裡的文字匯出到固定的XX.TXT文字檔

發表 由 jassica123 2011-12-30, 12:40

一定要排序匯出嗎?
或許你可以利用 excel 開啟 .txt 的檔案再去排序可以嗎?
jassica123
jassica123
初級會員
初級會員

文章總數 : 67
年齡 : 35
來自 : 台南
職業 : 行政
愛好 : 研究
個性 : 安靜
使用年資 : 7年
使用版本 : 2015
積分 : 2
經驗值 : 4612
威望值 : 60
注冊日期 : 2010-01-11
藍鵲110號
女 摩羯座 牛

回頂端 向下

[已解決]如何把AUTO CAD裡的文字匯出到固定的XX.TXT文字檔 Empty 回復: [已解決]如何把AUTO CAD裡的文字匯出到固定的XX.TXT文字檔

發表 由 aaronchung.tw 2012-01-04, 15:53

jassica123 寫到:一定要排序匯出嗎?
或許你可以利用 excel 開啟 .txt 的檔案再去排序可以嗎?

想要省下煩覆的步驟,所以才有這樣的需求。謝謝!
aaronchung.tw
aaronchung.tw
初級會員
初級會員

文章總數 : 85
年齡 : 42
來自 : Taipei
職業 : 繪圖
愛好 : 電腦網路,閑逛
個性 : 隨和
使用年資 : 8年
使用版本 : 2008
積分 : 1
經驗值 : 4007
威望值 : 24
注冊日期 : 2011-12-03
藍鵲198號
男 射手座 馬

回頂端 向下

[已解決]如何把AUTO CAD裡的文字匯出到固定的XX.TXT文字檔 Empty 回復: [已解決]如何把AUTO CAD裡的文字匯出到固定的XX.TXT文字檔

發表 由 835 2012-01-10, 09:56

個人淺見如下:
原則上字串本身無法做排序,但串列可以....
所以只要將圖面上之字串逐一加入至某一串列中,
即可運用 acad_strlsort 函數對其做排列了
修改後之程式如下:
代碼:
(defun c:textex ()
  (setq ffn (getfiled "寫出檔案" "" "txt" 1))  ;;直接指定匯出檔案之附檔名為 .txt
  (princ "\n選取文字...")
  (setq ss (ssget (list (cons 0 "text"))))  ;;直接令選集 ss 只會選擇文字
  (setq ff (open ffn "w"))

  (setq txt-list '()) ;;先令字串的串列集合為空串列,如此才能運用 cons 的函數將字串逐一加入其中

  (setq i 0)
  (repeat (sslength ss)
    (setq ssn (ssname ss i))
    (setq ssdata (entget ssn))
;;;    (setq sstyp (cdr (assoc 0 ssdata)))
;;;    (if   (= sstyp "TEXT")
;;;      (progn
    (setq txt (cdr (assoc 1 ssdata)))
    (setq txt-list (cons txt txt-list)) ;;將圖面上之字串逐一加入串列集合(txt-list)中

;;;    (princ txt ff)
;;;    (princ "\n" ff)
;;;      )
;;;    )
    (setq i (1+ i))
  )

  (setq txt-list-ok (acad_strlsort txt-list)) ;;運用函數 acad_strlsort 做排序

  (foreach pp2 txt-list-ok
    (princ pp2 ff)         
    (princ "\n" ff)
  ) ;;逐一將字串集合中的字串寫出

  (close ff)
  (princ (strcat "\n寫出檔案: " ffn))
  (command "notepad" ffn) ;;直接開啟本程式所匯出之文字檔
  (prin1)
)
不知這樣是否符合樓主的需求?
亦請版上高手不吝指正,
謝謝

Tiger&蘋果爸 寫到:讚啦!! 謝謝熱心程式分享~< 積分 +1>
[公告]關於團隊成員的回文及貢獻


835 在 2012-01-10, 19:02 作了第 2 次修改 (原因 : 非常專業~)
835
835
初級會員
初級會員

文章總數 : 36
年齡 : 43
來自 : 台中
職業 : 工程
愛好 : 打球
個性 : 沈靜
使用年資 : 6
使用版本 : 2008
積分 : 2
經驗值 : 3775
威望值 : 59
注冊日期 : 2012-01-02
藍鵲272號
男 處女座 馬

回頂端 向下

[已解決]如何把AUTO CAD裡的文字匯出到固定的XX.TXT文字檔 Empty 回復: [已解決]如何把AUTO CAD裡的文字匯出到固定的XX.TXT文字檔

發表 由 Tiger&蘋果爸 2012-01-10, 11:35

835 寫到:個人淺見如下:
原則上字串本身無法做排序,但串列可以....
所以只要將圖面上之字串逐一加入至某一串列中,
即可運用 acad_strlsort 函數對其做排列了
讚啦!! 試用過後真的可做排列~