[討論]分享腳本檔運用程式
+13
Tanya
TK88
學習小孩
ysl yang
ginse0727
JerryJr
月蜻蜓
litung
saabgriffin
gt.adan
judyyai
Tiger&蘋果爸
jasoncheng_495
17 posters
AutoCAD顧問 :: 技術(發言等級:一般會員) :: :: 進階討論
第1頁(共2頁)
[討論]分享腳本檔運用程式
對於要在大量相同圖面的檔案執行相同的動作 當然腳本檔是很好的選擇 但如果檔案眾多 要寫一個腳本檔也挺煩人的
所以 用VB寫了一個腳本檔精靈的小程式 可自動生成 腳本檔
裡面有一些個人常用的指令可套用 這些功能中有些需搭配 附件中的LSP程式 才能用,提供給大家分享
不好用不要罵我
SCRIPT MAKER
備用: https://app.box.com/s/9s1clvlj007iawwhxbk43pvaou403d3p
腳本檔精靈VB原始檔
備用: https://app.box.com/s/ixi2cmoue8nmvl1yo5o2w7kem0r4vewf
所以 用VB寫了一個腳本檔精靈的小程式 可自動生成 腳本檔
裡面有一些個人常用的指令可套用 這些功能中有些需搭配 附件中的LSP程式 才能用,提供給大家分享
不好用不要罵我
SCRIPT MAKER
備用: https://app.box.com/s/9s1clvlj007iawwhxbk43pvaou403d3p
腳本檔精靈VB原始檔
備用: https://app.box.com/s/ixi2cmoue8nmvl1yo5o2w7kem0r4vewf
Tiger&蘋果爸 寫到: 謝謝無私程式分享~< 積分 +1>
[公告]關於團隊成員的回文及貢獻
jasoncheng_495- 初級會員
- 文章總數 : 20
年齡 : 58
來自 : Tainan
職業 : Project Manager
愛好 : Mountain Climbing
個性 : 內向
使用年資 : 10 years
使用版本 : 2004
積分 : 1
經驗值 : 5476
威望值 : 63
注冊日期 : 2010-04-24
回復: [討論]分享腳本檔運用程式
工作中常常要批次處理圖面,所以之前也是使用lisp產生腳本方式處理,今天看到jasoncheng前輩寫的vb版本,真的是如獲至寶,使用介面式對於初學者很適合,待會也要來試用~
給你100個讚啦~
給你100個讚啦~
____________________________________________________________________________________
👉快速比例設定與出圖技巧-線上課程(點我)👈
回復: [討論]分享腳本檔運用程式
感謝分享!但是不知道該如何用~
可否給各說明
可否給各說明
judyyai- 管理顧問
- 文章總數 : 7786
年齡 : 47
來自 : 台南
職業 : 機械製圖
愛好 : 電腦相關
個性 : think too much...
使用年資 : 10↑
使用版本 : AC2019(開始於2019年底末月)
AutoCAD基礎篇等級 : 10星級
積分 : 393
最佳解答 : 1
經驗值 : 30445
威望值 : 3610
發帖精華 : 2
回帖精華 : 4
注冊日期 : 2008-11-19
回復: [討論]分享腳本檔運用程式
有些電氣迴路路之類的圖面 常會有大量相似的圖檔,如果在這些大量的圖檔中處理相同的動作,例如 出圖、修改圖框的文字、插入圖塊等等,最方便的做法是用script來處理‧早期最常見的就是大批圖檔出圖,當然現在的autocad 批次出圖已經很成熟了,但如果 歹命 碰上幾百張圖要做相同的動作時,熟悉script的人就有福了
zip檔中有2個檔案,一個是VB做成的執行檔--腳本檔精靈, 一個是 .LSP檔案,裡面集合了一些有用的、沒用的lsp檔...有些是臨時要用寫上去的 後來沒砍掉就留著了 我現在看也莫名其妙 不知道是什麼
腳本檔精靈.exe是個生成腳本檔的小程式,最上面一行是選擇你的dwg檔所在的資料夾,資料夾內的dwg檔會全部出現在 左邊的框框,上面第二行是指定生成的腳本檔要放在那個位置,不選的話就是create在D:碟根目錄下的1.scr
中間一個框框, 裡面有一堆功能 "CON-MOVE,ddedit,erase,.."等等是我自己有機會用到的指令,其實 太久了 有些我也忘記是什麼東東,都是過去要用到就臨時寫進去的,我個人比較常用的 還是 plot(出圖), purge, 插入圖塊, 取代文字(搭配我附的LSP檔內的指令),這類簡單的指令
如果要用plot, 須注意我是內定 "上次出圖設定", 所以可以先手動出一張圖,確認好出圖設定,再來執行
選好 你要執行的圖檔,再來選擇你要執行的cad動作,按下">>", 你選的指令就會跑到隔壁的框框,同時 相對應的腳本檔敘述會出現在最右邊的框框中‧如果你選的指令需要搭配一些選擇(例如選取點的座標,得自己到cad圖檔裡去看),會跳出對話框請你輸入
要移除某個指令可以用 "<<"來移除,也可以插入指令或一次全部清除所有指令‧
匯入& 匯出只是假設你挑了好多個指令 也填入需要的輸入,你想存起來,就可以匯出成為一個文字檔,以後如果還要用可以再匯入,基本上我自己也沒用過, 都是 出個圖就了事,沒什麼好存的,下次要出 再重做一個就是了
接著,在"寫入模式"那裏選擇是要覆蓋原腳本檔內容或保留先行腳本檔的內容,通常都是選擇覆蓋掉吧,不然先前的動作 還會又做一次的‧但如果你是把你的大批次圖檔放在不同的資料夾,這樣就得做好幾次選圖檔跟寫入腳本檔的動作,那就有必要用到"保留原內容了"
最後 按下 "寫入腳本檔"的按鈕就可以 自動生成腳本檔了
回到cad , 先關掉所有檔案 只任意保留一個圖檔,以便有command列可以輸入"script"指令,切記不要用"drawing1.dwg"來執行生成的script檔, 這樣cad會要求另存檔案,script會受到中斷,這問題我處理不了,所以 最簡單的做法 就是不要在drawing1.dwg上執行,反正 只是自己用的一個小程式,將就點用吧
為了讓使用上更有彈性,右下角有幾個按鈕可以讓使用者直接進入腳本檔內容作修改,如果你在中間的指令框中找不要你要的指令,而你又確定自己要做的腳本檔內容,那就可以直接到右邊的"腳本檔內容"中去寫了
如果是已經對腳本檔的使用很熟悉的人 就很容易上手,不然這個程式幫助就不大了, 最多就是出出圖,但現在cad的批次出圖已很好用了,所以用上的機會就不大了
使用腳本檔處理大量圖檔 就是不斷的 "open"圖檔, 執行指令, save, close圖檔,---再open圖檔執行指令, save, close圖檔 一路下去
中間如果出現造成cad跳出詢問的動作, 腳本檔就會停止了 例如 找不到字型, 檔案已開啟之類的, 所以我通常都會先把所有已開啟的圖檔都關掉, 只保留一個圖檔,如前面說的不要用 drawing1.dwg
另外 程式執行中刻意把pickbox 參數改為0, 執行完畢前會再改成pickbox=3, 目的是在選取物件時不要選到旁邊的其他物件,如果 script不小心意外中斷,發現你的pickbox怎麼小到看不見,沒問題, 用setvar 把pickbox改回你要的大小就可以了
最後 如果用不上腳本檔也沒關係, SCR_LSP_2010.lsp中還是有2個小指令還能用
1. scr_003 : 取代文字,不過這個功能cad裡也有了
2. scr_005 :可以把文字中的數字部分自動加上1, 或是你指定的數目
scr_005 另外有個變形的應用 就是複製+數字部分自動累加, 好用, 找機會再分享出來
zip檔中有2個檔案,一個是VB做成的執行檔--腳本檔精靈, 一個是 .LSP檔案,裡面集合了一些有用的、沒用的lsp檔...有些是臨時要用寫上去的 後來沒砍掉就留著了 我現在看也莫名其妙 不知道是什麼
腳本檔精靈.exe是個生成腳本檔的小程式,最上面一行是選擇你的dwg檔所在的資料夾,資料夾內的dwg檔會全部出現在 左邊的框框,上面第二行是指定生成的腳本檔要放在那個位置,不選的話就是create在D:碟根目錄下的1.scr
中間一個框框, 裡面有一堆功能 "CON-MOVE,ddedit,erase,.."等等是我自己有機會用到的指令,其實 太久了 有些我也忘記是什麼東東,都是過去要用到就臨時寫進去的,我個人比較常用的 還是 plot(出圖), purge, 插入圖塊, 取代文字(搭配我附的LSP檔內的指令),這類簡單的指令
如果要用plot, 須注意我是內定 "上次出圖設定", 所以可以先手動出一張圖,確認好出圖設定,再來執行
選好 你要執行的圖檔,再來選擇你要執行的cad動作,按下">>", 你選的指令就會跑到隔壁的框框,同時 相對應的腳本檔敘述會出現在最右邊的框框中‧如果你選的指令需要搭配一些選擇(例如選取點的座標,得自己到cad圖檔裡去看),會跳出對話框請你輸入
要移除某個指令可以用 "<<"來移除,也可以插入指令或一次全部清除所有指令‧
匯入& 匯出只是假設你挑了好多個指令 也填入需要的輸入,你想存起來,就可以匯出成為一個文字檔,以後如果還要用可以再匯入,基本上我自己也沒用過, 都是 出個圖就了事,沒什麼好存的,下次要出 再重做一個就是了
接著,在"寫入模式"那裏選擇是要覆蓋原腳本檔內容或保留先行腳本檔的內容,通常都是選擇覆蓋掉吧,不然先前的動作 還會又做一次的‧但如果你是把你的大批次圖檔放在不同的資料夾,這樣就得做好幾次選圖檔跟寫入腳本檔的動作,那就有必要用到"保留原內容了"
最後 按下 "寫入腳本檔"的按鈕就可以 自動生成腳本檔了
回到cad , 先關掉所有檔案 只任意保留一個圖檔,以便有command列可以輸入"script"指令,切記不要用"drawing1.dwg"來執行生成的script檔, 這樣cad會要求另存檔案,script會受到中斷,這問題我處理不了,所以 最簡單的做法 就是不要在drawing1.dwg上執行,反正 只是自己用的一個小程式,將就點用吧
為了讓使用上更有彈性,右下角有幾個按鈕可以讓使用者直接進入腳本檔內容作修改,如果你在中間的指令框中找不要你要的指令,而你又確定自己要做的腳本檔內容,那就可以直接到右邊的"腳本檔內容"中去寫了
如果是已經對腳本檔的使用很熟悉的人 就很容易上手,不然這個程式幫助就不大了, 最多就是出出圖,但現在cad的批次出圖已很好用了,所以用上的機會就不大了
使用腳本檔處理大量圖檔 就是不斷的 "open"圖檔, 執行指令, save, close圖檔,---再open圖檔執行指令, save, close圖檔 一路下去
中間如果出現造成cad跳出詢問的動作, 腳本檔就會停止了 例如 找不到字型, 檔案已開啟之類的, 所以我通常都會先把所有已開啟的圖檔都關掉, 只保留一個圖檔,如前面說的不要用 drawing1.dwg
另外 程式執行中刻意把pickbox 參數改為0, 執行完畢前會再改成pickbox=3, 目的是在選取物件時不要選到旁邊的其他物件,如果 script不小心意外中斷,發現你的pickbox怎麼小到看不見,沒問題, 用setvar 把pickbox改回你要的大小就可以了
最後 如果用不上腳本檔也沒關係, SCR_LSP_2010.lsp中還是有2個小指令還能用
1. scr_003 : 取代文字,不過這個功能cad裡也有了
2. scr_005 :可以把文字中的數字部分自動加上1, 或是你指定的數目
scr_005 另外有個變形的應用 就是複製+數字部分自動累加, 好用, 找機會再分享出來
jasoncheng_495- 初級會員
- 文章總數 : 20
年齡 : 58
來自 : Tainan
職業 : Project Manager
愛好 : Mountain Climbing
個性 : 內向
使用年資 : 10 years
使用版本 : 2004
積分 : 1
經驗值 : 5476
威望值 : 63
注冊日期 : 2010-04-24
回復: [討論]分享腳本檔運用程式
"scr_005 另外有個變形的應用 就是複製+數字部分自動累加, 好用, 找機會再分享出來"
LSP 內容如下 :
;******** INSTRUMENT APPLICATION ********
(defun c:ws04(/ dd)
(setvar "cmdecho" 0)
(setvar "blipmode" 0)
(setq zero "0000000000000000000000000000000")
(setq p 0)
(setq key1 0)
(setq all_txt (ssget))
(setq new_all (ssadd))
(setq inc (getint "\nEnter increment of text <1>:"))
(if (= inc nil)
(setq inc 1)
)
(setq bpt (getpoint "\nFrom Point:"))
(setq spt (getpoint bpt "\nTo Point:"))
(while (/= spt nil)
(setq mount(sslength all_txt))
(setq t_p 0)
(repeat mount
(setq tname (ssname all_txt t_p))
(setq tdata (entget tname))
(setq tnf (cdr (assoc 0 tdata)))
(if (= tnf "TEXT")
(progn
; copy and Increase Tdata
(setq i_txt "") ;Inc of Text
(setq key2 0) ;keyword
(setq key3 1) ;keyword
(setq key4 0)
(command "copy" tname "" bpt spt)
(setq tname (entlast))
(setq tdata (entget tname))
(setq txt (cdr (assoc 1 tdata)))
(setq sstxt (strlen txt))
(setq i 1)
(setq j sstxt)
(while (<= i sstxt)
(setq cha (substr txt j 1))
(setq asc_cha (ascii cha))
(if (and (<= asc_cha 57) (>= asc_cha 48)) ; find "NUM"
(progn ; 1: "NUM" ; A: "TEXT" ; *: don't care
(setq key2 1) ; mean had find "NUM" --- ***1;**1A
(setq i_txt (strcat cha i_txt)) ; push "NUM" into i_txt
(setq key3 0) ; mean had find "NUM" --- ***A
(if (= asc_cha 48)
(setq key4 1)
(setq key4 0)
)
)
(setq key3 1); find "TEXT",--- ***A,**A1
);end if
(if (and (= key2 1) (= key3 1)) ;After find "NUM",find "TEXT".--- *A1*
(progn
(setq p (- i 1)) ; set p = "NUM" position ex.: A111--- p=2
(setq i (+ sstxt 1)) ; set i > sstxt, to stop (while)
)
);end if
(setq i (+ i 1))
(setq j (- j 1))
(if (and (= key2 1) (= key3 0)) ; after find "NUM", no find "TEXT" ex.: 111*
(setq p sstxt)
);end if
); end while
(setq pre_len (- sstxt p)) ; ex.: AAA11AA --- pre_len = 3
(setq ssi_txt (strlen i_txt)) ; ex.: AAA11AA --- ssi_txt = 2 where i_txt = "11"
(setq last_len (+ pre_len ssi_txt 1)) ; ex.: AAA11AA --- last_len = 6
(setq new_num (+ (atoi i_txt) inc)) ; increase
(setq new_str (rtos new_num 2 0))
(setq new_len (strlen new_str))
(if (= key4 1)
(if (< new_len ssi_txt) ; ex.: A001 --- new_str = "2" not "002" , error occur
(progn ; when error occur , add the "0" to new_str
(setq z_len (- ssi_txt new_len )) ; amount of "0" that add to new_str
(setq z_str (substr zero 1 z_len)) ; make "00---"
(setq new_str (strcat z_str new_str)) ; add "00---" to new_str
)
);end if
);end if
;(if (> new_len ssi_txt)
; (progn ; carry occur ex. 999+1=1000
; (if (and (/= last_len (+ sstxt 1)) (/= pre_len 0)) ;if AA999AA
; (setq new_str (substr new_str 2)) ;take carry off
; )
; )
;)
(if (= key2 1)
(progn
(setq new_txt (strcat (substr txt 1 pre_len) new_str (substr txt last_len)))
; Display the New_text
(entmod (subst (cons 1 new_txt) (assoc 1 tdata) tdata)) ; update text
))
); end of progn for found text
(progn
(command "copy" tname "" bpt spt) ; if tname not "TEXT" , just do copy
(setq tname (entlast)) ; update tname
)
) ; end of if
(setq new_all (ssadd tname new_all))
(setq t_p (+ t_p 1))
)
(setq all_txt new_all) ; replace all_txt with new_all
(setq new_all (ssadd)) ; clear new_all
(setq bpt spt)
(setq spt (getpoint bpt "\nTo Point:"))
)
(setvar "blipmode" 1)
)
(prompt "-----------------< C:\\B4_ACAD\\WS04 >--------------------")
LSP 內容如下 :
;******** INSTRUMENT APPLICATION ********
(defun c:ws04(/ dd)
(setvar "cmdecho" 0)
(setvar "blipmode" 0)
(setq zero "0000000000000000000000000000000")
(setq p 0)
(setq key1 0)
(setq all_txt (ssget))
(setq new_all (ssadd))
(setq inc (getint "\nEnter increment of text <1>:"))
(if (= inc nil)
(setq inc 1)
)
(setq bpt (getpoint "\nFrom Point:"))
(setq spt (getpoint bpt "\nTo Point:"))
(while (/= spt nil)
(setq mount(sslength all_txt))
(setq t_p 0)
(repeat mount
(setq tname (ssname all_txt t_p))
(setq tdata (entget tname))
(setq tnf (cdr (assoc 0 tdata)))
(if (= tnf "TEXT")
(progn
; copy and Increase Tdata
(setq i_txt "") ;Inc of Text
(setq key2 0) ;keyword
(setq key3 1) ;keyword
(setq key4 0)
(command "copy" tname "" bpt spt)
(setq tname (entlast))
(setq tdata (entget tname))
(setq txt (cdr (assoc 1 tdata)))
(setq sstxt (strlen txt))
(setq i 1)
(setq j sstxt)
(while (<= i sstxt)
(setq cha (substr txt j 1))
(setq asc_cha (ascii cha))
(if (and (<= asc_cha 57) (>= asc_cha 48)) ; find "NUM"
(progn ; 1: "NUM" ; A: "TEXT" ; *: don't care
(setq key2 1) ; mean had find "NUM" --- ***1;**1A
(setq i_txt (strcat cha i_txt)) ; push "NUM" into i_txt
(setq key3 0) ; mean had find "NUM" --- ***A
(if (= asc_cha 48)
(setq key4 1)
(setq key4 0)
)
)
(setq key3 1); find "TEXT",--- ***A,**A1
);end if
(if (and (= key2 1) (= key3 1)) ;After find "NUM",find "TEXT".--- *A1*
(progn
(setq p (- i 1)) ; set p = "NUM" position ex.: A111--- p=2
(setq i (+ sstxt 1)) ; set i > sstxt, to stop (while)
)
);end if
(setq i (+ i 1))
(setq j (- j 1))
(if (and (= key2 1) (= key3 0)) ; after find "NUM", no find "TEXT" ex.: 111*
(setq p sstxt)
);end if
); end while
(setq pre_len (- sstxt p)) ; ex.: AAA11AA --- pre_len = 3
(setq ssi_txt (strlen i_txt)) ; ex.: AAA11AA --- ssi_txt = 2 where i_txt = "11"
(setq last_len (+ pre_len ssi_txt 1)) ; ex.: AAA11AA --- last_len = 6
(setq new_num (+ (atoi i_txt) inc)) ; increase
(setq new_str (rtos new_num 2 0))
(setq new_len (strlen new_str))
(if (= key4 1)
(if (< new_len ssi_txt) ; ex.: A001 --- new_str = "2" not "002" , error occur
(progn ; when error occur , add the "0" to new_str
(setq z_len (- ssi_txt new_len )) ; amount of "0" that add to new_str
(setq z_str (substr zero 1 z_len)) ; make "00---"
(setq new_str (strcat z_str new_str)) ; add "00---" to new_str
)
);end if
);end if
;(if (> new_len ssi_txt)
; (progn ; carry occur ex. 999+1=1000
; (if (and (/= last_len (+ sstxt 1)) (/= pre_len 0)) ;if AA999AA
; (setq new_str (substr new_str 2)) ;take carry off
; )
; )
;)
(if (= key2 1)
(progn
(setq new_txt (strcat (substr txt 1 pre_len) new_str (substr txt last_len)))
; Display the New_text
(entmod (subst (cons 1 new_txt) (assoc 1 tdata) tdata)) ; update text
))
); end of progn for found text
(progn
(command "copy" tname "" bpt spt) ; if tname not "TEXT" , just do copy
(setq tname (entlast)) ; update tname
)
) ; end of if
(setq new_all (ssadd tname new_all))
(setq t_p (+ t_p 1))
)
(setq all_txt new_all) ; replace all_txt with new_all
(setq new_all (ssadd)) ; clear new_all
(setq bpt spt)
(setq spt (getpoint bpt "\nTo Point
)
(setvar "blipmode" 1)
)
(prompt "-----------------< C:\\B4_ACAD\\WS04 >--------------------")
jasoncheng_495- 初級會員
- 文章總數 : 20
年齡 : 58
來自 : Tainan
職業 : Project Manager
愛好 : Mountain Climbing
個性 : 內向
使用年資 : 10 years
使用版本 : 2004
積分 : 1
經驗值 : 5476
威望值 : 63
注冊日期 : 2010-04-24
回復: [討論]分享腳本檔運用程式
測試步驟如下:
1.使用APPLOAD指令將SCR_LSP_2010.LSP掛入AutoCAD(此步驟只需執行一次即可)。
2.雙擊「腳本檔精靈2012.exe」,開啟AutoCad 腳本檔精靈。
3.瀏覽DWG檔案位置 , 按下「確定」按鈕 → 在左側窗格將DWG檔打勾。
4.指定SCR腳本檔位置,預設位置放在C槽下,檔名為「1.scr」。
5.在中間窗格設定工作項目,如「取代文字」項目 → 再按下「>>」→ 輸入「選取座標」及「搜尋取代文字」。
6.在右側窗格即可檢視「腳本檔內容」。
7.按下「寫入腳本檔」,會自動產生「1.scr」。
8.回到AutoCAD畫面,輸入SCRIPT指令 → 選擇「1.scr」即可執行。
測試心得:
1.腳本檔有執行完畢(沒有取消),「PICKBOX」選取框沒有改回3。
2.執行腳本檔沒有完成「取代文字」的功能。
請jasoncheng_495大大幫忙檢核一下~
感恩!
1.使用APPLOAD指令將SCR_LSP_2010.LSP掛入AutoCAD(此步驟只需執行一次即可)。
2.雙擊「腳本檔精靈2012.exe」,開啟AutoCad 腳本檔精靈。
3.瀏覽DWG檔案位置 , 按下「確定」按鈕 → 在左側窗格將DWG檔打勾。
4.指定SCR腳本檔位置,預設位置放在C槽下,檔名為「1.scr」。
5.在中間窗格設定工作項目,如「取代文字」項目 → 再按下「>>」→ 輸入「選取座標」及「搜尋取代文字」。
6.在右側窗格即可檢視「腳本檔內容」。
7.按下「寫入腳本檔」,會自動產生「1.scr」。
8.回到AutoCAD畫面,輸入SCRIPT指令 → 選擇「1.scr」即可執行。
測試心得:
1.腳本檔有執行完畢(沒有取消),「PICKBOX」選取框沒有改回3。
2.執行腳本檔沒有完成「取代文字」的功能。
請jasoncheng_495大大幫忙檢核一下~
感恩!
____________________________________________________________________________________
👉快速比例設定與出圖技巧-線上課程(點我)👈
回復: [討論]分享腳本檔運用程式
有一個問題想請教jasoncheng_495大大!
▼我的LISP程式部分內容:
▼產生後的腳本檔內容:
請問要如何像前輩的程式一樣,要怎麼修改以下程式
(PRINC (STRCAT "_OPEN " PATH DATA " LFD QSAVE CLOSE\n") FFW)
日後產生的腳本檔,即可在檔案路徑前後加入 " 雙引號
_OPEN "C:\Project\S200.dwg" -PURGE B N QSAVE CLOSE
_OPEN "C:\Project\S201.dwg" -PURGE B N QSAVE CLOSE
_OPEN "C:\Project\S202.dwg" -PURGE B N QSAVE CLOSE
感恩~
▼我的LISP程式部分內容:
- 代碼:
(PRINC (STRCAT "_OPEN " PATH DATA " -PURGE B N QSAVE CLOSE\n") FFW)
▼產生後的腳本檔內容:
- 代碼:
_OPEN C:\Project\S200.dwg -PURGE B N QSAVE CLOSE
_OPEN C:\Project\S201.dwg -PURGE B N QSAVE CLOSE
_OPEN C:\Project\S202.dwg -PURGE B N QSAVE CLOSE
請問要如何像前輩的程式一樣,要怎麼修改以下程式
(PRINC (STRCAT "_OPEN " PATH DATA " LFD QSAVE CLOSE\n") FFW)
日後產生的腳本檔,即可在檔案路徑前後加入 " 雙引號
_OPEN "C:\Project\S200.dwg" -PURGE B N QSAVE CLOSE
_OPEN "C:\Project\S201.dwg" -PURGE B N QSAVE CLOSE
_OPEN "C:\Project\S202.dwg" -PURGE B N QSAVE CLOSE
感恩~
Tiger&蘋果爸 在 周一 22 10月 - 13:10 作了第 1 次修改
____________________________________________________________________________________
👉快速比例設定與出圖技巧-線上課程(點我)👈
回復: [討論]分享腳本檔運用程式
感謝jasoncheng_495
感謝蘋爸
找個時間消化~
感謝蘋爸
找個時間消化~
judyyai- 管理顧問
- 文章總數 : 7786
年齡 : 47
來自 : 台南
職業 : 機械製圖
愛好 : 電腦相關
個性 : think too much...
使用年資 : 10↑
使用版本 : AC2019(開始於2019年底末月)
AutoCAD基礎篇等級 : 10星級
積分 : 393
最佳解答 : 1
經驗值 : 30445
威望值 : 3610
發帖精華 : 2
回帖精華 : 4
注冊日期 : 2008-11-19
回復: [討論]分享腳本檔運用程式
我剛有測試了一下 應該是OK的
如果 腳本檔有順利完成3個檔案的執行並結束,那pickbox 應該就會改回來3,(可以check腳本檔內容)
如果pickbox 沒有改回來 那肯定是腳本檔中斷掉了,可以再試一下 比較簡單的指令 例如 zoom 之類的動作
不過剛剛順便試了 取代文字的功能,如果 要取代的文字裡出現 空格 例如 "A A" , 立刻就破功了, 還是 空格的老問題
另外關於 要在腳本檔中出現雙引號的方式, 因為我是用VB6寫的, 偏偏我現在laptop的系統是win7 64bit, 安裝不了VB6的軟體, 所以 程式原始檔 也無法開來看,我記得在VB中是雙引號外面再加一組雙引號可以搞定, 但剛剛在LISP裡試了一下,應該是不行‧
這問題在較舊的版本裡 也試了很久,還是試不出好辦法,不好意思了
如果 腳本檔有順利完成3個檔案的執行並結束,那pickbox 應該就會改回來3,(可以check腳本檔內容)
如果pickbox 沒有改回來 那肯定是腳本檔中斷掉了,可以再試一下 比較簡單的指令 例如 zoom 之類的動作
不過剛剛順便試了 取代文字的功能,如果 要取代的文字裡出現 空格 例如 "A A" , 立刻就破功了, 還是 空格的老問題
另外關於 要在腳本檔中出現雙引號的方式, 因為我是用VB6寫的, 偏偏我現在laptop的系統是win7 64bit, 安裝不了VB6的軟體, 所以 程式原始檔 也無法開來看,我記得在VB中是雙引號外面再加一組雙引號可以搞定, 但剛剛在LISP裡試了一下,應該是不行‧
這問題在較舊的版本裡 也試了很久,還是試不出好辦法,不好意思了
jasoncheng_495- 初級會員
- 文章總數 : 20
年齡 : 58
來自 : Tainan
職業 : Project Manager
愛好 : Mountain Climbing
個性 : 內向
使用年資 : 10 years
使用版本 : 2004
積分 : 1
經驗值 : 5476
威望值 : 63
注冊日期 : 2010-04-24
回復: [討論]分享腳本檔運用程式
ok~我會在試一下!jasoncheng_495 寫到:我剛有測試了一下 應該是OK的
如果 腳本檔有順利完成3個檔案的執行並結束,那pickbox 應該就會改回來3,(可以check腳本檔內容)
如果pickbox 沒有改回來 那肯定是腳本檔中斷掉了,可以再試一下 比較簡單的指令 例如 zoom 之類的動作
不過剛剛順便試了 取代文字的功能,如果 要取代的文字裡出現 空格 例如 "A A" , 立刻就破功了, 還是 空格的老問題
另外關於 要在腳本檔中出現雙引號的方式, 因為我是用VB6寫的, 偏偏我現在laptop的系統是win7 64bit, 安裝不了VB6的軟體, 所以 程式原始檔 也無法開來看,我記得在VB中是雙引號外面再加一組雙引號可以搞定, 但剛剛在LISP裡試了一下,應該是不行‧
這問題在較舊的版本裡 也試了很久,還是試不出好辦法,不好意思了
另外,空格的問題也一直困擾著我,如果不能加入雙引號,那我的資料夾路徑中都不能有「空格」,因為這樣程式就會失敗!
____________________________________________________________________________________
👉快速比例設定與出圖技巧-線上課程(點我)👈
回復: [討論]分享腳本檔運用程式
太威武了!要慢慢消化!謝謝您的分享!
gt.adan- 初級會員
- 文章總數 : 59
年齡 : 47
來自 : 彰化
職業 : 五金製造
愛好 : 研發
個性 : 和群、有耐心
使用年資 : 3年
使用版本 : 2006
積分 : 4
經驗值 : 5106
威望值 : 113
注冊日期 : 2011-11-11
回復: [討論]分享腳本檔運用程式
蘋果爸 我找出來了
在雙引號中 用 \" 就可以 寫入一 個 " (真難敘述)
所以 就變成如下的寫法
(PRINC (STRCAT "\"_OPEN " PATH DATA " -PURGE B N QSAVE CLOSE\"\n") FFW)
在雙引號中 用 \" 就可以 寫入一 個 " (真難敘述)
所以 就變成如下的寫法
(PRINC (STRCAT "\"_OPEN " PATH DATA " -PURGE B N QSAVE CLOSE\"\n") FFW)
jasoncheng_495- 初級會員
- 文章總數 : 20
年齡 : 58
來自 : Tainan
職業 : Project Manager
愛好 : Mountain Climbing
個性 : 內向
使用年資 : 10 years
使用版本 : 2004
積分 : 1
經驗值 : 5476
威望值 : 63
注冊日期 : 2010-04-24
Tiger&蘋果爸 likes this post
回復: [討論]分享腳本檔運用程式
VB6 可以百分之200在 Win7 X64中安裝執行。
小弟都在Win7 X64底下,用 VB6 寫 PLC 的模擬程式。
以上,報告完畢 ^_^
小弟都在Win7 X64底下,用 VB6 寫 PLC 的模擬程式。
以上,報告完畢 ^_^
____________________________________________________________________________________
簡單的心,是真正有福
單純的心,是真正的快樂
幸福是種溫馨的感覺
T480 i5-8250U,32GB,SSD:PM961 1TB+T11 25
litung- 中級會員
- 文章總數 : 226
年齡 : 49
來自 : 高雄市阿蓮區
職業 : PLC設計、HMI規劃、VB6、接案
愛好 : 電腦、卡通、桌球
個性 : 溫和、內向
使用年資 : 現在只出嘴
使用版本 : CAD 2008
積分 : 7
經驗值 : 6377
威望值 : 247
發帖精華 : 1
注冊日期 : 2009-10-30
回復: [討論]分享腳本檔運用程式
太棒了~jasoncheng_495 寫到:蘋果爸 我找出來了
在雙引號中 用 \" 就可以 寫入一 個 " (真難敘述)
原來是要加入 \",真的很感謝,剛剛測試過程式已經能滿足「資料夾路徑有空格」囉~
____________________________________________________________________________________
👉快速比例設定與出圖技巧-線上課程(點我)👈
回復: [討論]分享腳本檔運用程式
樓主真是造福人群啊!
太棒了~~非常感恩~~
太棒了~~非常感恩~~
月蜻蜓- 初級會員
- 文章總數 : 53
年齡 : 53
來自 : 新竹
職業 : CAD (2D)
愛好 : 看漫畫,看科幻電影!
個性 : 溫和!
使用年資 : 20
使用版本 : AutoCADM 2013
積分 : 2
經驗值 : 5475
威望值 : 103
注冊日期 : 2010-10-16
回復 :【分享】腳本檔應用
剛剛重新安裝 VB6, 雖然 最後出現安裝未完成的訊息,但開啟應用程式後 發現一切正常 至少開啟project來看程式沒問題
附件是腳本檔精靈的原始檔,有興趣的可以自行下載看看,現在再去研究這個 我是心有餘而力不足了
祝大家順心愉快
附件是腳本檔精靈的原始檔,有興趣的可以自行下載看看,現在再去研究這個 我是心有餘而力不足了
祝大家順心愉快
jasoncheng_495- 初級會員
- 文章總數 : 20
年齡 : 58
來自 : Tainan
職業 : Project Manager
愛好 : Mountain Climbing
個性 : 內向
使用年資 : 10 years
使用版本 : 2004
積分 : 1
經驗值 : 5476
威望值 : 63
注冊日期 : 2010-04-24
回復: [討論]分享腳本檔運用程式
看來非常不錯
快來研究看看喔
這一兩天內找時間拜讀完畢
快來研究看看喔
這一兩天內找時間拜讀完畢
JerryJr- 高級會員
- 文章總數 : 249
年齡 : 47
來自 : 台北
職業 : 建築
愛好 : LOVE GOOD
個性 : GOOD
使用年資 : 10 YEAR OVER
使用版本 : 哪版最新就用哪版
積分 : 39
最佳解答 : 1
經驗值 : 6681
威望值 : 250
回帖精華 : 1
注冊日期 : 2008-09-15
回復: [討論]分享腳本檔運用程式
感謝jasoncheng_495大大的原碼分享,
小弟已下載,有空來研究學習一下,
感恩!
小弟已下載,有空來研究學習一下,
感恩!
ginse0727- 高級會員
- 文章總數 : 256
年齡 : 50
來自 : 台北巿
職業 : 帷幕牆
愛好 : 電玩,漫畫,網路小說
個性 : 宅男/正直/死腦筋
使用年資 : 退伍後工作迄今,10年以上
使用版本 : 2012
積分 : 14
經驗值 : 6829
威望值 : 500
發帖精華 : 1
注冊日期 : 2010-07-12
回復: [討論]分享腳本檔運用程式
感謝jasoncheng_495無私分享,且敘述如此詳細,下載找時間試一下~
謝謝!
謝謝!
ysl yang- 初級會員
- 文章總數 : 118
年齡 : 56
來自 : 台北市
職業 : 繪圖員
愛好 : 逛大賣場
個性 : 隨和中等
使用年資 : 10年以上
使用版本 : 2010剛用
積分 : 1
經驗值 : 5645
威望值 : 123
注冊日期 : 2010-11-02
回復: [討論]分享腳本檔運用程式
請問前輩 這能算線的長度然後加總與圖塊數量的加總嗎??
學習小孩- 初級會員
- 文章總數 : 54
年齡 : 38
來自 : 高雄
職業 : 水電,消防,旅館新建設計規劃工程等
愛好 : 聽歌 游泳 學新技能
個性 : 待評
使用年資 : 5年
使用版本 : 2008
積分 : 1
經驗值 : 5395
威望值 : 37
注冊日期 : 2010-10-27
回復: [討論]分享腳本檔運用程式
顯然您是想做 檢料的功能吧.. 一次把多張平面圖的料算出來
我想 搭配lisp 跟 script一定可以實現這個功能 加油!!
我想 搭配lisp 跟 script一定可以實現這個功能 加油!!
jasoncheng_495- 初級會員
- 文章總數 : 20
年齡 : 58
來自 : Tainan
職業 : Project Manager
愛好 : Mountain Climbing
個性 : 內向
使用年資 : 10 years
使用版本 : 2004
積分 : 1
經驗值 : 5476
威望值 : 63
注冊日期 : 2010-04-24
回復: [討論]分享腳本檔運用程式
感謝jason大的分享!
雖然不懂vb,還是下載學習學習。
雖然不懂vb,還是下載學習學習。
TK88- 一般會員
- 文章總數 : 22
年齡 : 57
來自 : Taichung
職業 : cad/cam
愛好 : camping
個性 : 一般~
使用年資 : 26
使用版本 : R12/2002/2014
經驗值 : 5455
威望值 : 12
注冊日期 : 2010-03-16
回復: [討論]分享腳本檔運用程式
謝謝分享,雖然不是很懂,下載用用看,不懂在請教,謝謝。
Tanya- 榮譽顧問
- 文章總數 : 384
年齡 : 50
來自 : 埔里鎮
職業 : 服務業
愛好 : 畫圖&音樂&大自然
個性 : 隨和
使用年資 : 2年
使用版本 : MAP 2011
積分 : 28
最佳解答 : 1
經驗值 : 7472
威望值 : 745
注冊日期 : 2010-03-06
回復: [討論]分享腳本檔運用程式
我要哭了
一直沒辦法下載腳本研究><
一直沒辦法下載腳本研究><
peiying1205- 一般會員
- 文章總數 : 9
年齡 : 38
來自 : Taichung
職業 : 繪圖
愛好 : 發呆
個性 : 有些迷糊
使用年資 : 4年
使用版本 : 2011
經驗值 : 4515
威望值 : 0
注冊日期 : 2012-08-19
AutoCAD顧問 :: 技術(發言等級:一般會員) :: :: 進階討論
第1頁(共2頁)
這個論壇的權限:
您 無法 在這個版面回復文章