Board logo

標題: 批次填入autocad檔名 [打印本頁]

作者: carzyindex    時間: 2011-5-25 18:30     標題: 批次填入autocad檔名

本帖最後由 carzyindex 於 2011-5-26 15:26 編輯

因工作需要

希望cad檔檔名填入圖畫某位置

(defun c:ppp(/)
  (command ".style" "htx1" "" "" "" "" "" "" "")
  (setq p1(getvar"dwgname"))
  (setq p2 (substr p1 1 (- (strlen p1) 4)))
  (command "Text" '(345 7) 2.3 0 p2)
)
-----------------------------------------------------------------
.style是字型

但是不曉得怎樣和excel檔結合

補充說明
將ppp.txt放入 c:

開啟autocad    在下方指令輸入
(load"c:\\ppp.txt")

匯入成功後   再輸入

(c:ppp)

就能將檔案名稱放在cad裡特定的位置

但是檔案很多希望可用excel批次完成
作者: luhpro    時間: 2011-5-25 22:55

可能要麻煩你提供接近實際情形的範例檔案,
不然不知你要抓什麼資料要到底是要放到哪裡去?
上面那些程式指令不是 Excel VBA 的嗎?
好像不曾看過呢.
作者: carzyindex    時間: 2011-5-26 08:45

回復 2# luhpro


    上面指令是autolisp
作者: GBKEE    時間: 2011-5-26 09:39

回復 carzyindex
希望cad檔檔名填入圖畫某位置
VBA好像沒這功能
作者: carzyindex    時間: 2011-5-26 10:39

本帖最後由 carzyindex 於 2011-5-26 10:44 編輯

回復 4# GBKEE


    vba可以開啟autocad不是嗎
http://blog.xuite.net/pertonchang/prog/14795319

批次開啟清單中cad檔   再用cad裡面的功能動作
例如
9164ARP0-0012.dwg        OCTPA-LCX66005A-001-00.dwg
9164ARP0-0013.dwg        OCTPA-LCX66005A-002-00.dwg
9164ARP0-0014.dwg        OCTPA-LCX66005A-003-00.dwg

cad裡面有很多輔助程式不知該如何完成動作
作者: GBKEE    時間: 2011-5-26 11:08

回復 5# carzyindex
那就要請有AutoCad的來回答了.
我對AutoCad完全是門外漢
作者: carzyindex    時間: 2011-5-26 11:19

回復 6# GBKEE


    感謝版大回覆
作者: luhpro    時間: 2011-5-27 00:04

本帖最後由 luhpro 於 2011-5-27 00:08 編輯

回復 5# carzyindex
因為自己沒有AutoCad軟體所以不能實作相關程式,
不過還是可以提供一些建議給你參考 :
先依照該網頁建立 AutoCad 相關的存取元件, (Dim ...    Set ... 那兩行)
然後按 F8 單步執行完那兩行, (底下可以先放一些不影響結果的程式敘述 例如 : iI = 1 之類的以讓程式有地方可以暫停而不是跑到 End Sub)
接著手動輸入 oAutoCat.  於輸入 . 後應該會看到一堆可用方法或變數名稱(例如 : Visible  之類的),
(或是也可以開啟 "即時運算" 視窗打上 oAutoCat. )
選任一個項目後看是按 Enter 鍵還是打上 ( 亦或是 =    (可以知到它需要什麼東西來完成動作)
接著按 F8 執行該指令後可依據錯誤訊息可以看出如何去完善它.(若於 "即時運算" 視窗 則可直接按 Enter 鍵執行它)

不過這是暴力諮詢 Excel 的方式,
要有 Excel 當掉及重開機的心理準備,
請自行斟酌是否要採用.
作者: carzyindex    時間: 2011-5-27 08:05

回復 8# luhpro


    感謝你的回覆
作者: 沙拉油    時間: 2011-5-27 23:18

本帖最後由 沙拉油 於 2011-5-27 23:25 編輯

不需要用EXCEL,Autocad 本身就能執行 VBA
底下是 Autocad VBA 喔∼不能在 Excel VBA 裡面執行的
  1.     Dim cadapp, caddoc, DWG_Dir, DWG_Name
  2.     Set cadapp = Application
  3.     '開啟 C:\ 底下所有的 dwg 檔案
  4.     DWG_Dir = "C:\"
  5.     DWG_Name = Dir(DWG_Dir & "*.dwg", 0)
  6.     Do While DWG_Name <> ""
  7.         Set caddoc = cadapp.Documents.Open(DWG_Dir & DWG_Name)
  8.         '在檔案執行命令
  9.         caddoc.SendCommand "(load""c:\\ppp.txt"")" & vbCr
  10.         '在檔案執行命令
  11.         caddoc.SendCommand "ppp" & vbCr
  12.         DWG_Name = Dir
  13.     Loop
複製代碼

作者: carzyindex    時間: 2011-5-28 16:39

回復 10# 沙拉油


    感謝沙拉油大的幫忙




歡迎光臨 麻辣家族討論版版 (http://forum.twbts.com/)