標題:
批次填入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 裡面執行的
Dim cadapp, caddoc, DWG_Dir, DWG_Name
Set cadapp = Application
'開啟 C:\ 底下所有的 dwg 檔案
DWG_Dir = "C:\"
DWG_Name = Dir(DWG_Dir & "*.dwg", 0)
Do While DWG_Name <> ""
Set caddoc = cadapp.Documents.Open(DWG_Dir & DWG_Name)
'在檔案執行命令
caddoc.SendCommand "(load""c:\\ppp.txt"")" & vbCr
'在檔案執行命令
caddoc.SendCommand "ppp" & vbCr
DWG_Name = Dir
Loop
複製代碼
作者:
carzyindex
時間:
2011-5-28 16:39
回復
10#
沙拉油
感謝沙拉油大的幫忙
歡迎光臨 麻辣家族討論版版 (http://forum.twbts.com/)