[已解決]跨版本語法
4 posters
AutoCAD顧問 :: 技術(發言等級:一般會員) :: :: 進階討論 :: 已解決主題精華區
第1頁(共2頁)
[已解決]跨版本語法
我在R14時可以在命令列直接輸入下列文字 來開啟檔案
(command "open" "c:\\1.dwg")
但到了2004以後卻不行了,有誰能知道2004以後有了什麼改變
會這樣問主要是在因為
應用 SCRIPT時 檔名出現"空格"會被當成 ENTER
在R14時,這樣輸入可以 避掉 檔名中出現"空格"被當成 ENTER的困擾
到了2004以後就沒輒了....
請高手幫忙
(command "open" "c:\\1.dwg")
但到了2004以後卻不行了,有誰能知道2004以後有了什麼改變
會這樣問主要是在因為
應用 SCRIPT時 檔名出現"空格"會被當成 ENTER
在R14時,這樣輸入可以 避掉 檔名中出現"空格"被當成 ENTER的困擾
到了2004以後就沒輒了....
請高手幫忙
Tiger&蘋果爸 在 2010-05-14, 16:49 作了第 4 次修改
jasoncheng_495- 初級會員
- 文章總數 : 20
年齡 : 58
來自 : Tainan
職業 : Project Manager
愛好 : Mountain Climbing
個性 : 內向
使用年資 : 10 years
使用版本 : 2004
積分 : 1
經驗值 : 5475
威望值 : 63
注冊日期 : 2010-04-24
回復: [已解決]跨版本語法
在討論區發表問題時,請在主題前請加入[問題],顏色請指定為[藍色],論壇管理顧問會將您的主題置頂,方便大家即時討論。
[說明]發表主題前,請遵守相關要領!
http://autocad.bestoforum.net/forum-f12/topic-t1521.htm
謝謝您的配合~
____________________________________________________________________________________
👉快速比例設定與出圖技巧-線上課程(點我)👈
回復: [已解決]跨版本語法
jasoncheng_495 寫到:我在R14時可以在命令列直接輸入下列文字 來開啟檔案
(command "open" "c:\\1.dwg")
但到了2004以後卻不行了,有誰能知道2004以後有了什麼改變
會這樣問主要是在因為
應用 SCRIPT時 檔名出現"空格"會被當成 ENTER
在R14時,這樣輸入可以 避掉 檔名中出現"空格"被當成 ENTER的困擾
到了2004以後就沒輒了....
請高手幫忙
請參考FILEDIA系統變數.....下列網址是論壇內搜尋結果
http://autocad.bestoforum.net/forum-f12/topic-t6036.htm#41146
leoneriol- 榮譽顧問
- 文章總數 : 818
年齡 : 40
來自 : 基隆市七堵區
職業 : 機電工程公司-繪圖(工地)
愛好 : 看小說
個性 : 不愛說話-反應慢
使用年資 : 6年
使用版本 : 2008 & 2012
積分 : 27
經驗值 : 9199
威望值 : 960
發帖精華 : 1
回帖精華 : 1
注冊日期 : 2009-03-12
回復: [已解決]跨版本語法
因為在AutoCAD較新的版本...在command下open指令會跳出對話方塊
所以想要使用lisp語法寫出(command "open" "檔案路徑名稱")之前..
必須先設定filedia系統變數為"0"→(setvar "filedia" 0)
所以想要使用lisp語法寫出(command "open" "檔案路徑名稱")之前..
必須先設定filedia系統變數為"0"→(setvar "filedia" 0)
leoneriol- 榮譽顧問
- 文章總數 : 818
年齡 : 40
來自 : 基隆市七堵區
職業 : 機電工程公司-繪圖(工地)
愛好 : 看小說
個性 : 不愛說話-反應慢
使用年資 : 6年
使用版本 : 2008 & 2012
積分 : 27
經驗值 : 9199
威望值 : 960
發帖精華 : 1
回帖精華 : 1
注冊日期 : 2009-03-12
回復: [已解決]跨版本語法
(setvar "filedia" 0)這個好像不行!leoneriol 寫到:因為在AutoCAD較新的版本...在command下open指令會跳出對話方塊
所以想要使用lisp語法寫出(command "open" "檔案路徑名稱")之前..
必須先設定filedia系統變數為"0"→(setvar "filedia" 0)
是不是要用你之前提供的方式:
http://autocad.bestoforum.net/forum-f38/topic-t3345.htm
____________________________________________________________________________________
👉快速比例設定與出圖技巧-線上課程(點我)👈
回復: [已解決]跨版本語法
Tiger&蘋果爸 寫到:
(setvar "filedia" 0)這個好像不行!
是不是要用你之前提供的方式:
http://autocad.bestoforum.net/forum-f38/topic-t3345.htm
哈哈!!!真冏......
(command "vbastmt" (strcat "AcadApplication.Documents.Open" (chr 34) "filename.dwg" (chr 34)))
確實是要這樣才可以.....我把它忘記了
leoneriol- 榮譽顧問
- 文章總數 : 818
年齡 : 40
來自 : 基隆市七堵區
職業 : 機電工程公司-繪圖(工地)
愛好 : 看小說
個性 : 不愛說話-反應慢
使用年資 : 6年
使用版本 : 2008 & 2012
積分 : 27
經驗值 : 9199
威望值 : 960
發帖精華 : 1
回帖精華 : 1
注冊日期 : 2009-03-12
回復: [已解決]跨版本語法
VBA沒有使用過...leoneriol 寫到:Tiger&蘋果爸 寫到:
(setvar "filedia" 0)這個好像不行!
是不是要用你之前提供的方式:
http://autocad.bestoforum.net/forum-f38/topic-t3345.htm
哈哈!!!真冏......
(command "vbastmt" (strcat "AcadApplication.Documents.Open" (chr 34) "filename.dwg" (chr 34)))
確實是要這樣才可以.....我把它忘記了
可否說明一下如何使用呢!
____________________________________________________________________________________
👉快速比例設定與出圖技巧-線上課程(點我)👈
回復: [已解決]跨版本語法
Tiger&蘋果爸 寫到:
VBA沒有使用過...
可否說明一下如何使用呢!
舉例:
(command "vbastmt" (strcat "AcadApplication.Documents.Open " (chr 34) "D:/..(路徑).../圖說/XREF/A5-All.dwg" (chr 34))
像這樣....請注意/及\要做更改
(chr 34)會傳回"\""就是"雙引號的意思
只要把這段文字直接放入lisp裡所想要開啟檔案的位置就ok!
但是這樣開啟之後還是會有個問題~~~就是怎麼讓lisp程式繼續執行
我忘記他的原因...似乎是因為.....腳本檔比較好用.....
ps:如果還有更好的方法....就請多指教了
leoneriol 在 2010-05-04, 11:50 作了第 1 次修改 (原因 : 修改內容)
leoneriol- 榮譽顧問
- 文章總數 : 818
年齡 : 40
來自 : 基隆市七堵區
職業 : 機電工程公司-繪圖(工地)
愛好 : 看小說
個性 : 不愛說話-反應慢
使用年資 : 6年
使用版本 : 2008 & 2012
積分 : 27
經驗值 : 9199
威望值 : 960
發帖精華 : 1
回帖精華 : 1
注冊日期 : 2009-03-12
回復: [已解決]跨版本語法
感謝說明!!之前我也都是用腳本檔呢~leoneriol 寫到:Tiger&蘋果爸 寫到:
VBA沒有使用過...
可否說明一下如何使用呢!
舉例:
(command "vbastmt" (strcat "AcadApplication.Documents.Open " (chr 34) "D:/..(路徑).../圖說/XREF/A5-All.dwg" (chr 34))
像這樣....請注意/及\要做更改
(chr 34)會傳回"\""就是"雙引號的意思
只要把這段文字直接放入lisp裡所想要開啟檔案的位置就ok!
但是這樣開啟之後還是會有個問題~~~就是怎麼讓lisp程式繼續執行
我忘記他的原因...似乎是因為.....腳本檔比較好用.....
ps:如果還有更好的方法....就請多指教了
我會測完之後再上來回報~
____________________________________________________________________________________
👉快速比例設定與出圖技巧-線上課程(點我)👈
DevilWang- 高級會員
- 文章總數 : 113
年齡 : 57
來自 : 台北
職業 : AEC
愛好 : Thinking...
個性 : 閒散
使用年資 : 25↑
使用版本 : 2012
積分 : 15
經驗值 : 6053
威望值 : 355
發帖精華 : 1
回帖精華 : 3
注冊日期 : 2010-03-29
回復: [已解決]跨版本語法
DevilWang 寫到:必須先將 SDI 系統變數設定為1,才能使用 (command "open" "c:\\1.dwg") 的方式開啟檔案。
吼吼吼~~~~!!!!就是這個光(誤.......!!!
原來我少了這個系統變數!!感恩啦!!!
leoneriol- 榮譽顧問
- 文章總數 : 818
年齡 : 40
來自 : 基隆市七堵區
職業 : 機電工程公司-繪圖(工地)
愛好 : 看小說
個性 : 不愛說話-反應慢
使用年資 : 6年
使用版本 : 2008 & 2012
積分 : 27
經驗值 : 9199
威望值 : 960
發帖精華 : 1
回帖精華 : 1
注冊日期 : 2009-03-12
回復: [已解決]跨版本語法
我也學到了!leoneriol 寫到:DevilWang 寫到:必須先將 SDI 系統變數設定為1,才能使用 (command "open" "c:\\1.dwg") 的方式開啟檔案。
吼吼吼~~~~!!!!就是這個光(誤.......!!!
原來我少了這個系統變數!!感恩啦!!!
感恩!
PS:但是如何讓它開啟檔案再繼續接下來的語法呢!?
____________________________________________________________________________________
👉快速比例設定與出圖技巧-線上課程(點我)👈
回復: [已解決]跨版本語法
系統變數 SDI 控制單文件介面模式,設為 1
系統變數 LISPINIT 在單文件介面中,指定開啟新圖面時是否保留 AutoLISP 函數與變數,設為 0
設置上述兩個變數後,即可在 Lisp 中開啟圖檔並繼續執行後續程式碼。
以上提供參考。
系統變數 LISPINIT 在單文件介面中,指定開啟新圖面時是否保留 AutoLISP 函數與變數,設為 0
設置上述兩個變數後,即可在 Lisp 中開啟圖檔並繼續執行後續程式碼。
以上提供參考。
DevilWang- 高級會員
- 文章總數 : 113
年齡 : 57
來自 : 台北
職業 : AEC
愛好 : Thinking...
個性 : 閒散
使用年資 : 25↑
使用版本 : 2012
積分 : 15
經驗值 : 6053
威望值 : 355
發帖精華 : 1
回帖精華 : 3
注冊日期 : 2010-03-29
回復: [已解決]跨版本語法
(setvar "sdi" 1);打開多重圖面介面
(setvar "lispinit" 0);跨圖面保留AutoLisp函數和變數
(setvar "filedia" 0);不顯示對話方塊
(command "open" "c:/.../filename.dwg")
呵呵...借花獻佛
(setvar "lispinit" 0);跨圖面保留AutoLisp函數和變數
(setvar "filedia" 0);不顯示對話方塊
(command "open" "c:/.../filename.dwg")
呵呵...借花獻佛
leoneriol- 榮譽顧問
- 文章總數 : 818
年齡 : 40
來自 : 基隆市七堵區
職業 : 機電工程公司-繪圖(工地)
愛好 : 看小說
個性 : 不愛說話-反應慢
使用年資 : 6年
使用版本 : 2008 & 2012
積分 : 27
經驗值 : 9199
威望值 : 960
發帖精華 : 1
回帖精華 : 1
注冊日期 : 2009-03-12
回復: [已解決]跨版本語法
謝謝 DevilWang 及 leoneriol 技術指導!!
找個時間來測試~
找個時間來測試~
____________________________________________________________________________________
👉快速比例設定與出圖技巧-線上課程(點我)👈
回復: [已解決]跨版本語法
感恩這麼多人回覆
學到許多之前連想都沒想過的解決辦法
另外 我之前也是用script來處理大量圖檔的問題
當然我另外用 VB寫一個 程式 專用來產生 腳本檔
之前被 AUTOCAD會把圖檔名稱及路徑中的 (space)當成enter這件事困擾過,也是 寫lisp處理
今天 另外在autodesk問到一個簡單的辦法,在script中用" "把路徑/檔名框住就可以克服 出現 (space)的問題
ex.
open
"c:\a b.dwg"
就能用 script 打開 帶有 (space)的圖檔
跟大家分享
學到許多之前連想都沒想過的解決辦法
另外 我之前也是用script來處理大量圖檔的問題
當然我另外用 VB寫一個 程式 專用來產生 腳本檔
之前被 AUTOCAD會把圖檔名稱及路徑中的 (space)當成enter這件事困擾過,也是 寫lisp處理
今天 另外在autodesk問到一個簡單的辦法,在script中用" "把路徑/檔名框住就可以克服 出現 (space)的問題
ex.
open
"c:\a b.dwg"
就能用 script 打開 帶有 (space)的圖檔
跟大家分享
jasoncheng_495- 初級會員
- 文章總數 : 20
年齡 : 58
來自 : Tainan
職業 : Project Manager
愛好 : Mountain Climbing
個性 : 內向
使用年資 : 10 years
使用版本 : 2004
積分 : 1
經驗值 : 5475
威望值 : 63
注冊日期 : 2010-04-24
回復: [已解決]跨版本語法
謝謝分享~jasoncheng_495 寫到:感恩這麼多人回覆
學到許多之前連想都沒想過的解決辦法
另外 我之前也是用script來處理大量圖檔的問題
當然我另外用 VB寫一個 程式 專用來產生 腳本檔
之前被 AUTOCAD會把圖檔名稱及路徑中的 (space)當成enter這件事困擾過,也是 寫lisp處理
今天 另外在autodesk問到一個簡單的辦法,在script中用" "把路徑/檔名框住就可以克服 出現 (space)的問題
ex.
open
"c:\a b.dwg"
就能用 script 打開 帶有 (space)的圖檔
跟大家分享
這也是我一直以來的困擾!
____________________________________________________________________________________
👉快速比例設定與出圖技巧-線上課程(點我)👈
回復: [已解決]跨版本語法
如果在 Lisp 或 腳本檔 中使用 open 的目的是為了批次處理大量的檔案,
可以考慮使用另一種方法 - AutoCAD Scriptpro,
它可以自動對大量的圖檔執行同一個腳本檔。
在腳本檔中不需要指定檔案,只要輸入欲處理的指令即可(Scriptpro不會自動存檔)。
Scriptpro 會自動開啟每一個圖檔,執行腳本檔中的指令,關閉圖檔,再自動開啟下一個圖檔進行處理。
(Scriptpro 可以處理 中文檔名及含空隔的檔名)
Autodesk 原廠下載位置
可以考慮使用另一種方法 - AutoCAD Scriptpro,
它可以自動對大量的圖檔執行同一個腳本檔。
在腳本檔中不需要指定檔案,只要輸入欲處理的指令即可(Scriptpro不會自動存檔)。
Scriptpro 會自動開啟每一個圖檔,執行腳本檔中的指令,關閉圖檔,再自動開啟下一個圖檔進行處理。
(Scriptpro 可以處理 中文檔名及含空隔的檔名)
Autodesk 原廠下載位置
DevilWang- 高級會員
- 文章總數 : 113
年齡 : 57
來自 : 台北
職業 : AEC
愛好 : Thinking...
個性 : 閒散
使用年資 : 25↑
使用版本 : 2012
積分 : 15
經驗值 : 6053
威望值 : 355
發帖精華 : 1
回帖精華 : 3
注冊日期 : 2010-03-29
回復: [已解決]跨版本語法
我有測過可以使用!DevilWang 寫到:如果在 Lisp 或 腳本檔 中使用 open 的目的是為了批次處理大量的檔案,
可以考慮使用另一種方法 - AutoCAD scriptpro,
它可以自動對大量的圖檔執行同一個腳本檔。
在腳本檔中不需要指定檔案,只要輸入欲處理的指令即可(scriptpro不會自動存檔)。
scriptpro 會自動開啟每一個圖檔,執行腳本檔中的指令,關閉圖檔,再自動開啟下一個圖檔進行處理。
(scriptpro 可以處理 中文檔名及含空隔的檔名)
- Spoiler(用來隱藏帖子內容):
Autodesk 原廠下載位置
不過他都沒有存檔...還是我少了哪一個步驟,跑完的結果如下:
_.quit 是否要捨棄圖面的所有變更??
- 代碼:
-------------------------------------------------------------------------------
-------------------------------------------------------------------------------
Project name: Project1.scp
Local path: C:\Documents and Settings\kevinchen\桌面\
UNC path: C:\DOCUMENTS AND SETTINGS\KEVINCHEN\桌面\
Drawing name: X-S402.dwg
Local path: D:\新資料夾\
UNC path: D:\新資料夾\
Processed by Computer: I5-01
User name: kevinchen
[ Status summary ]-------------------------------------------------------------
done
[ AutoCAD - Fri May 07 16:29:48 2010 ]----------------------------------------
自訂檔載入成功。自訂群組: ACAD
自訂檔載入成功。自訂群組: CUSTOM
自訂檔載入成功。自訂群組: EXPRESS-CHT
自訂檔載入成功。自訂群組: DBCONNECT
自訂檔載入成功。自訂群組: AT2010
正在開啟 AutoCAD 2004/LT 2004 格式檔案。
正在重生模型。
AutoCAD Express Tools Copyright ?2002-2004 Autodesk, Inc.
正在重生模型。
正在重生模型。
更新係數_已載入 ATCADLISP。
AutoCAD 功能表公用程式 已載入。
Autodesk DWG。該檔案是 TrustedDWG,上一次由 Autodesk 應用程式或 Autodesk 授權的應用程式儲存。
指令: (load "scriptpro.lsp")
指令: (acet-script-run "C:/PROGRAM FILES/AUTODESK/MIGRATION TOOLS/script1.SCR" T)
Pre-processing script...Done_.script
輸入腳本檔名 <D:\新資料夾\X-S402.scr>: C:\DOCUME~1\KEVINC~1\LOCALS~1\TEMP\scriptPRO2456.SCR 請輸入 BACKSPACE 以岔斷腳本。
指令:
指令: CIRCLE 指定圓的中心點或 [三點(3P)/兩點(2P)/相切、相切、半徑(T)]: 0,0
指定圓的半徑或 [直徑(D)]: 100
指令: scr-quit
_.quit 是否要捨棄圖面的所有變更?? <N> _y
指令:
-------------------------------------------------------------------------------
-------------------------------------------------------------------------------
Project name: Project1.scp
Local path: C:\Documents and Settings\kevinchen\桌面\
UNC path: C:\DOCUMENTS AND SETTINGS\KEVINCHEN\桌面\
Drawing name: X-S401.dwg
Local path: D:\新資料夾\
UNC path: D:\新資料夾\
Processed by Computer: I5-01
User name: kevinchen
[ Status summary ]-------------------------------------------------------------
done
[ AutoCAD - Fri May 07 16:29:53 2010 ]----------------------------------------
自訂檔載入成功。自訂群組: ACAD
自訂檔載入成功。自訂群組: CUSTOM
自訂檔載入成功。自訂群組: EXPRESS-CHT
自訂檔載入成功。自訂群組: DBCONNECT
自訂檔載入成功。自訂群組: AT2010
正在開啟 AutoCAD 2004/LT 2004 格式檔案。
正在重生模型。
AutoCAD Express Tools Copyright ?2002-2004 Autodesk, Inc.
正在重生模型。
正在重生模型。
更新係數_已載入 ATCADLISP。
AutoCAD 功能表公用程式 已載入。
Autodesk DWG。該檔案是 TrustedDWG,上一次由 Autodesk 應用程式或 Autodesk 授權的應用程式儲存。
指令: (load "scriptpro.lsp")
指令: (acet-script-run "C:/PROGRAM FILES/AUTODESK/MIGRATION TOOLS/script1.SCR" T)
Pre-processing script...Done_.script
輸入腳本檔名 <D:\新資料夾\X-S401.scr>: C:\DOCUME~1\KEVINC~1\LOCALS~1\TEMP\scriptPRO200.SCR 請輸入 BACKSPACE 以岔斷腳本。
指令:
指令: CIRCLE 指定圓的中心點或 [三點(3P)/兩點(2P)/相切、相切、半徑(T)]: 0,0
指定圓的半徑或 [直徑(D)]: 100
指令: scr-quit
_.quit 是否要捨棄圖面的所有變更?? <N> _y
指令:
____________________________________________________________________________________
👉快速比例設定與出圖技巧-線上課程(點我)👈
回復: [已解決]跨版本語法
在還沒有發現原廠的,以前曾經有寫過這個程式,跟原廠的程式很類似,在這裡也跟大家分享!!
[影片]AutoCAD 自動化使用者自訂巨集
ps:但是我的功力有限,跑這支程式時檔名與路徑都不能有空格,現在已經知道可以加入 "" ,所以要找時間來試試修補程式!
[影片]AutoCAD 自動化使用者自訂巨集
ps:但是我的功力有限,跑這支程式時檔名與路徑都不能有空格,現在已經知道可以加入 "" ,所以要找時間來試試修補程式!
____________________________________________________________________________________
👉快速比例設定與出圖技巧-線上課程(點我)👈
回復: [已解決]跨版本語法
可以在腳本檔中加入 qsave 指令存檔Tiger&蘋果爸 寫到: 我有測過可以使用!
不過他都沒有存檔...
DevilWang- 高級會員
- 文章總數 : 113
年齡 : 57
來自 : 台北
職業 : AEC
愛好 : Thinking...
個性 : 閒散
使用年資 : 25↑
使用版本 : 2012
積分 : 15
經驗值 : 6053
威望值 : 355
發帖精華 : 1
回帖精華 : 3
注冊日期 : 2010-03-29
回復: [已解決]跨版本語法
嘿嘿!成功了~DevilWang 寫到:可以在腳本檔中加入 qsave 指令存檔Tiger&蘋果爸 寫到: 我有測過可以使用!
不過他都沒有存檔...
PS:因為我的程式是自動加入QSAVE,所以就沒有刻意加入~
____________________________________________________________________________________
👉快速比例設定與出圖技巧-線上課程(點我)👈
回復: [已解決]跨版本語法
建議不要在程式中自動加入 qsave,這樣用途才會廣。
批次處理未必一定是更改圖檔,可能批次出圖,可能批次轉換格式,也可能只是先將較敏感的資料刪除後轉檔,有些動作可能只是暫時性的。
以上提供參考。
批次處理未必一定是更改圖檔,可能批次出圖,可能批次轉換格式,也可能只是先將較敏感的資料刪除後轉檔,有些動作可能只是暫時性的。
以上提供參考。
DevilWang- 高級會員
- 文章總數 : 113
年齡 : 57
來自 : 台北
職業 : AEC
愛好 : Thinking...
個性 : 閒散
使用年資 : 25↑
使用版本 : 2012
積分 : 15
經驗值 : 6053
威望值 : 355
發帖精華 : 1
回帖精華 : 3
注冊日期 : 2010-03-29
回復: [已解決]跨版本語法
了解!! 多謝前輩的經驗分享~DevilWang 寫到:建議不要在程式中自動加入 qsave,這樣用途才會廣。
批次處理未必一定是更改圖檔,可能批次出圖,可能批次轉換格式,也可能只是先將較敏感的資料刪除後轉檔,有些動作可能只是暫時性的。
以上提供參考。
我的工作需求都是改圖(所以會加入qsave)!
至於批次出圖、批次轉換格式我都是使用圖紙集及電子傳送~
____________________________________________________________________________________
👉快速比例設定與出圖技巧-線上課程(點我)👈
回復: [已解決]跨版本語法
別客氣,互相切磋而已。
如果開發的程式是自己使用而已,當然自己方便使用就好。
可是當同事看到好用的程式而向你索取,可能就不好意思不提供了。
自己使用起來得心應手,可是別人如果使用上沒注意,可能圖檔就被覆蓋了(雖然還有 .bak檔可以復原)。
以上提供參考。
如果開發的程式是自己使用而已,當然自己方便使用就好。
可是當同事看到好用的程式而向你索取,可能就不好意思不提供了。
自己使用起來得心應手,可是別人如果使用上沒注意,可能圖檔就被覆蓋了(雖然還有 .bak檔可以復原)。
以上提供參考。
DevilWang- 高級會員
- 文章總數 : 113
年齡 : 57
來自 : 台北
職業 : AEC
愛好 : Thinking...
個性 : 閒散
使用年資 : 25↑
使用版本 : 2012
積分 : 15
經驗值 : 6053
威望值 : 355
發帖精華 : 1
回帖精華 : 3
注冊日期 : 2010-03-29
AutoCAD顧問 :: 技術(發言等級:一般會員) :: :: 進階討論 :: 已解決主題精華區
第1頁(共2頁)
這個論壇的權限:
您 無法 在這個版面回復文章