[分享]連續號碼編寫
+6
ed_liao
judyyai
vicky5157
wendy6866
qaz6605
蔣秉澔
10 posters
AutoCAD顧問 :: 技術(發言等級:一般會員) :: :: 進階討論
第1頁(共1頁)
[分享]連續號碼編寫
自從接觸了這個大家族,學到了AUTOLISP,也挖到了不少寶,提升了一些些功力,現在終於可以有能力分享了,好高興~
用了許多編碼的程式,EXPRESS裡面的啦,LEE MAC的啦,總覺得用的不上手,可能是高手寫時,把它們用的很制式吧,因為我大部份是連續號不跳號,偶爾有前面加個代碼,而且位置都不固定,比如A1~A100之類,因此就開始自己寫(偷師了很多),也自行改良了2~3次,現在覺得滿好用的,雖然程式內部還是很粗糙,也請各路前輩加高手賜教。
用法:輸入指令:AWX(亂編的),輸入代碼(若不用可直接ENTER)(代碼目前只能加在前面),起始數字(可以隨意多少開始),在選取文字時,可以選同一個X軸或Y軸,如果要編寫的文字散的很開,可以先ENTER讓它跑碼,再繼續選下一組,直到編碼都完成,注意的是:它是先跑完X軸再跑Y軸。
簡易用法:輸入指令"AWX"→輸入代碼(若不用可以空白)→輸入起始數字→點選要修改的TEXT
下載(點我)
備用載點: https://db.tt/oKoqJ0x9
用了許多編碼的程式,EXPRESS裡面的啦,LEE MAC的啦,總覺得用的不上手,可能是高手寫時,把它們用的很制式吧,因為我大部份是連續號不跳號,偶爾有前面加個代碼,而且位置都不固定,比如A1~A100之類,因此就開始自己寫(偷師了很多),也自行改良了2~3次,現在覺得滿好用的,雖然程式內部還是很粗糙,也請各路前輩加高手賜教。
用法:輸入指令:AWX(亂編的),輸入代碼(若不用可直接ENTER)(代碼目前只能加在前面),起始數字(可以隨意多少開始),在選取文字時,可以選同一個X軸或Y軸,如果要編寫的文字散的很開,可以先ENTER讓它跑碼,再繼續選下一組,直到編碼都完成,注意的是:它是先跑完X軸再跑Y軸。
簡易用法:輸入指令"AWX"→輸入代碼(若不用可以空白)→輸入起始數字→點選要修改的TEXT
下載(點我)
備用載點: https://db.tt/oKoqJ0x9
蔣秉澔- 初級會員
- 文章總數 : 211
年齡 : 47
來自 : 嘉義市
職業 : 大電力系統設計、製程、檢測
愛好 : 電腦相關,出遊踏青
個性 : 待人隨和,對事執著
使用年資 : 8年
使用版本 : 2011 Electrical,2014
積分 : 4
經驗值 : 5399
威望值 : 198
注冊日期 : 2013-08-31
回復: [分享]連續號碼編寫
謝謝提供,先試用看看.回頭在聊優缺點.
qaz6605- 初級會員
- 文章總數 : 193
年齡 : 46
來自 : 台南市
職業 : 繪圖員
愛好 : 有關電腦的
個性 : 外向
使用年資 : 剛剛初道
使用版本 : 2006
積分 : 2
經驗值 : 6622
威望值 : 82
注冊日期 : 2008-12-31
回復: [分享]連續號碼編寫
回復: [分享]連續號碼編寫
真的很不賴耶~~太棒囉
大感謝
真的很不賴耶~~太棒囉
大感謝
wendy6866- 一般會員
- 文章總數 : 18
年齡 : 48
來自 : 台中
職業 : 工業管路設計
愛好 : 電影、音樂、閱讀
個性 : 開朗、知性、感性
使用年資 : 19年
使用版本 : 2014
經驗值 : 5081
威望值 : 12
注冊日期 : 2011-03-11
回復: [分享]連續號碼編寫
對不起! 請問載入後如何使用 ? 可有範例 ?
vicky5157- 一般會員
- 文章總數 : 16
年齡 : 56
來自 : 台北
職業 : 室設
愛好 : 睡覺
個性 : 外向
使用年資 : 14
使用版本 : 2012
經驗值 : 5479
威望值 : 6
注冊日期 : 2010-01-19
judyyai- 管理顧問
- 文章總數 : 7786
年齡 : 47
來自 : 台南
職業 : 機械製圖
愛好 : 電腦相關
個性 : think too much...
使用年資 : 10↑
使用版本 : AC2019(開始於2019年底末月)
AutoCAD基礎篇等級 : 10星級
積分 : 393
最佳解答 : 1
經驗值 : 30445
威望值 : 3610
發帖精華 : 2
回帖精華 : 4
注冊日期 : 2008-11-19
回復: [分享]連續號碼編寫
這個lisp載入后,還不知如何使用,是否可以說明一下.
qaz6605- 初級會員
- 文章總數 : 193
年齡 : 46
來自 : 台南市
職業 : 繪圖員
愛好 : 有關電腦的
個性 : 外向
使用年資 : 剛剛初道
使用版本 : 2006
積分 : 2
經驗值 : 6622
威望值 : 82
注冊日期 : 2008-12-31
回復: [分享]連續號碼編寫
用法:輸入指令"AWX"→輸入代碼(若不用可以空白)→輸入起始數字→點選要修改的TEXT
蔣秉澔- 初級會員
- 文章總數 : 211
年齡 : 47
來自 : 嘉義市
職業 : 大電力系統設計、製程、檢測
愛好 : 電腦相關,出遊踏青
個性 : 待人隨和,對事執著
使用年資 : 8年
使用版本 : 2011 Electrical,2014
積分 : 4
經驗值 : 5399
威望值 : 198
注冊日期 : 2013-08-31
回復: [分享]連續號碼編寫
經過說明,以做圖習慣和方便蘋果爸提供增量編碼方便性較高.
還是要謝謝你提供,不一樣的思考邏輯.
還是要謝謝你提供,不一樣的思考邏輯.
qaz6605- 初級會員
- 文章總數 : 193
年齡 : 46
來自 : 台南市
職業 : 繪圖員
愛好 : 有關電腦的
個性 : 外向
使用年資 : 剛剛初道
使用版本 : 2006
積分 : 2
經驗值 : 6622
威望值 : 82
注冊日期 : 2008-12-31
回復: [分享]連續號碼編寫
其實它算是把既有的編碼文字再重新編寫,因我的作圖環境中,常常都是一直先copy,然後再一次性修改,因此就自己寫個程式來跑碼囉
蔣秉澔- 初級會員
- 文章總數 : 211
年齡 : 47
來自 : 嘉義市
職業 : 大電力系統設計、製程、檢測
愛好 : 電腦相關,出遊踏青
個性 : 待人隨和,對事執著
使用年資 : 8年
使用版本 : 2011 Electrical,2014
積分 : 4
經驗值 : 5399
威望值 : 198
注冊日期 : 2013-08-31
回復: [分享]連續號碼編寫
謝謝大大分享,雖然下截下來,但是還是不會用,最近找了很久,找不到連續編號的lisp,想到還有好幾張圖要標網路號碼就好煩,1張都好幾百號,復制貼上改號碼,改到眼都花了
ed_liao- 一般會員
- 文章總數 : 14
年齡 : 45
來自 : 新北市中和區
職業 : 網路工程師
愛好 : 資訊
個性 : 內向
使用年資 : 新手初學
使用版本 : 半年
經驗值 : 3819
威望值 : 9
注冊日期 : 2014-08-15
回復: [分享]連續號碼編寫
我的連續號碼是以直徑6的圓為外框,將數字寫於圓內,直徑6可以從原始程式裡調整,我沒有把它寫成從執行程式中調整,因為我認為每家公司的氣球直徑是固定的(我們公司就是這樣),所以我只設計在程式裡,不讓使用者隨時更改,數字會按氣球大小自動調整,數字位數多與少也會自動調整寬度係數,以5位數為限,多了也擠不進去(也看不清楚)
DIA_D 6 ;原始氣球直徑6,請自行修改
https://www.youtube.com/watch?v=b3K1M0gnFPM&feature=youtu.be
注意:附件中有二個檔案,LSP是主程式,DWG是氣球的圖塊檔,DWG需在系統設定路徑裡(讓AUTOCAD找得到的支援搜尋路徑)
- 代碼:
;CN.LSP
;連續氣球
;載入後輸入CN即可執行
(defun c:CN (/ LL OSP CLAY CCLR CLTP ODS OTM OCP ENT DATA CVHGT CVSIZE SCA1 DIA1 DIA NUM NUM_H NUM_W PT1)
(graphscr)
(setvar "CMDECHO" 0)
;===新增圖層DIM===
(command "-LAYER" "P" "N" "0" "") ;將圖層0設為不出圖
(setq LAY_CURRENT (getvar "CLAYER")) ;取得目前圖層名稱
(command "-LAYER" "ON" LAY_CURRENT "T" LAY_CURRENT "U" LAY_CURRENT "") ;將目前圖層打開並解鎖,解凍
(setq LL (tblsearch "LAYER" "DIM")) ;偵測是否有DIM圖層<可設定成自己習慣圖層>
(if (= LL nil)(command "-LAYER" "N" "DIM" "")) ;若無DIM層則新建DIM圖層<可設定成自己習慣圖層>
(command "-LAYER" "ON" "DIM" "T" "DIM" "U" "DIM" "C" "2" "DIM" "");打開DIM並解鎖,解凍<可設定成自己習慣圖層>
;===
(princ "\n*************連續氣球號碼*************")
(setq
OSP (getvar "OSMODE")
CCLR (getvar "CECOLOR")
CLTP (getvar "CELTYPE")
CLAY (getvar "CLAYER")
ODS (getvar "DIMSCALE")
OTM (getvar "TILEMODE")
OCP (getvar "CVPORT")
)
(if (= ODS 0) (setq SCA1 1)(setq SCA1 (/ 1 SCA1))) ;按標註比例縮放字體大小
;===在視埠插入氣球時,按配置比例縮放氣球直徑,使列印時永遠是1比1===
(if (and (= OTM 0)(> OCP 1))(progn
(setq ENT (acet-currentviewport-ename))
(setq DATA (entget ENT '("ACAD")))
(setq
CVHGT (acet-dxf 41 DATA) ; viewport height 配置的縮放比例參數
CVSIZE (cdr (getx 6 DATA)) ; viewsize from extended data 圖紙空間的縮放比例參數
)
(setq SCA1 (/ CVSIZE CVHGT)) ;配置的縮放比例
));end if
;===
(if (= 氣球號碼N nil) (setq 氣球號碼N 1) (setq NUM 氣球號碼N)) ;記憶上次號碼
(setq
DIA_D 6 ;原始氣球直徑6,請自行修改
DIA1 (* DIA_D SCA1) ;氣球直徑隨視埠比例縮放
DIA (/ DIA1 2) ;數字高度為氣球直徑的二分之一
B_S (* (/ DIA_D 6) SCA1) ;當原始氣球直徑縮放,預覽圖塊也會跟著縮放
)
(setq
NN (strcat "\n氣球號碼 <" (rtos 氣球號碼N) ">:") ;顯示前次號碼
NUM (getint NN)
) ;end setq
(if (= NUM nil) (setq NUM 氣球號碼N)) ;若無則顯示從1開始
;===計算號碼高度及寬度係數,字數愈多寬度愈窄,讓所有字都可以擠到氣球裡面,建議5位數以下===
(setq
NUM_H (- DIA1 (* 2 SCA1))
NUM_W (strlen (rtos NUM))
)
(cond
((= NUM_W 1) (setq NUM_W 1))
((= NUM_W 2) (setq NUM_W 0.65))
((= NUM_W 3) (setq NUM_W 0.45))
((= NUM_W 4) (setq NUM_W 0.3))
((= NUM_W 5) (setq NUM_W 0.2))
)
;===
(command "-LAYER" "ON" CLAY "T" CLAY "U" CLAY "")
(princ "\n氣球插入點:")
(command "-INSERT" "氣球樣本" "S" B_S PAUSE "") ;讓插入氣球時有視覺化的效果,先假設插入圖塊,插入正確位置後,刪除圖塊,再畫圓和寫入數字
(setq PT1 (getvar "LASTPOINT"))
(command "ERASE" PT1 "")
(while (/= PT1 nil)
(command "UNDO" "BE")
(setvar "OSMODE" 0)
(command "LAYER" "S" "DIM" "")
(command "LINETYPE" "S" "CONTINUOUS" "")
(command "COLOR" "2")
(command "CIRCLE" PT1 DIA)
(command "COLOR" "254")
(command "-STYLE" "STANDARD" "ROMANS.SHX,CHINESET.SHX" NUM_H NUM_W "0" "n" "n" "n" )
(command "TEXT" "J" "MC" PT1 "0" NUM)
(command "UNDO" "E")
(setq NUM (+ NUM 1))
(setq NUM_W (strlen (rtos NUM)))
(cond
((= NUM_W 1) (setq NUM_W 1))
((= NUM_W 2) (setq NUM_W 0.65))
((= NUM_W 3) (setq NUM_W 0.45))
((= NUM_W 4) (setq NUM_W 0.3))
((= NUM_W 5) (setq NUM_W 0.2))
)
(setvar "OSMODE" OSP)
(setvar "CECOLOR" CCLR)
(setvar "CELTYPE" CLTP)
(setvar "CLAYER" CLAY)
(command "-STYLE" "STANDARD" "ROMANS.SHX,CHINESET.SHX""0" ".75" "0" "n" "n" "n" )
(princ "\n氣球插入點:")
(command "-INSERT" "氣球樣本" "S" B_S PAUSE "")
(setq PT1 (getvar "LASTPOINT") 氣球號碼N (+ NUM 1))
(command "ERASE" PT1 "")
)
(princ)
)
DIA_D 6 ;原始氣球直徑6,請自行修改
https://www.youtube.com/watch?v=b3K1M0gnFPM&feature=youtu.be
注意:附件中有二個檔案,LSP是主程式,DWG是氣球的圖塊檔,DWG需在系統設定路徑裡(讓AUTOCAD找得到的支援搜尋路徑)
- 附件
____________________________________________________________________________________
djh1006- 中級會員
- 文章總數 : 177
年齡 : 53
來自 : 彰化縣員林鎮中山路二段369巷二弄15-14號
職業 : 連續沖壓模具設計工程師
愛好 : UG,SOLIDWORKS,AUTOCAD 2D,autolisp
個性 : 內向偏外
使用年資 : 23年以上
使用版本 : 2014
積分 : 7
經驗值 : 6137
威望值 : 359
注冊日期 : 2011-06-16
(問題)連率號碼編寫
注意:附件中有二個檔案,LSP是主程式,DWG是氣球的圖塊檔,DWG需在系統設定路徑裡(讓AUTOCAD找得到的支援搜尋路徑)
請問高手:因為我已經載入LISP,但還是無法使用。
DWG需在系統設定路徑裡?是什麼意思?
請問高手:因為我已經載入LISP,但還是無法使用。
DWG需在系統設定路徑裡?是什麼意思?
benq0955- 一般會員
- 文章總數 : 7
年齡 : 40
來自 : 新竹市
職業 : 監工
愛好 : 釣蝦
個性 : 隨和
使用年資 : 新手初學
使用版本 : 2015
經驗值 : 4935
威望值 : 6
注冊日期 : 2011-06-30
回復: [分享]連續號碼編寫
benq0955 寫到:注意:附件中有二個檔案,LSP是主程式,DWG是氣球的圖塊檔,DWG需在系統設定路徑裡(讓AUTOCAD找得到的支援搜尋路徑)
請問高手:因為我已經載入LISP,但還是無法使用。
DWG需在系統設定路徑裡?是什麼意思?
AUTOCAD找得到的支援搜尋路徑
judyyai- 管理顧問
- 文章總數 : 7786
年齡 : 47
來自 : 台南
職業 : 機械製圖
愛好 : 電腦相關
個性 : think too much...
使用年資 : 10↑
使用版本 : AC2019(開始於2019年底末月)
AutoCAD基礎篇等級 : 10星級
積分 : 393
最佳解答 : 1
經驗值 : 30445
威望值 : 3610
發帖精華 : 2
回帖精華 : 4
注冊日期 : 2008-11-19
回復: [分享]連續號碼編寫
請參考以下文章說明:benq0955 寫到:注意:附件中有二個檔案,LSP是主程式,DWG是氣球的圖塊檔,DWG需在系統設定路徑裡(讓AUTOCAD找得到的支援搜尋路徑)
請問高手:因為我已經載入LISP,但還是無法使用。
DWG需在系統設定路徑裡?是什麼意思?
[觀念]AutoCAD的遊戲規則
____________________________________________________________________________________
👉快速比例設定與出圖技巧-線上課程(點我)👈
回復: [分享]連續號碼編寫
- 代碼:
(defun c:NBN()
(setvar "cmdecho" 0)
(setq NUB (getint "倍率"))
(SETQ INTXT (GETSTRING "輸入數字球號<1>"))
(SETQ X1 (getpoint INTXT))
(WHILE X1
(setq en_data (command "insert" "exe1" "s" NUB "r" "0" X1 INTXT))
(SETQ ATT (atoi INTXT))
(SETQ INTXT (+ ATT 1))
(SETQ INTXT (itoa INTXT))
(SETQ X1 (getpoint INTXT))
)
(prin1)
)
只是 要先做個球號圖塊
1.先畫好要的圓 用attdef(定義屬性)然後設定文字 然後建立成圖塊 我上面的指令 圖塊名稱要設定為exe1
2.程式指令我設為NBN > 然後輸入倍率 依倍率放大球號大小 > 球號文字從幾號開始 >點一下數字 自動+1 無線循環
as920029as- 一般會員
- 文章總數 : 110
年齡 : 33
來自 : 台南市
職業 : 繪圖員
愛好 : 電腦遊戲
個性 : 開朗
使用年資 : 3年
使用版本 : 2010
經驗值 : 5226
威望值 : 47
注冊日期 : 2012-05-06
回復: [分享]連續號碼編寫
djh1006大,我把這行改寫才可以使用喔,這應該是您的配置放置使用(DIMSCALE需=0),一般我的DIMSCALE不會是0(預設也不是),所以開新圖時會導致程式無法使用!djh1006 寫到:注意:附件中有二個檔案,LSP是主程式,DWG是氣球的圖塊檔,DWG需在系統設定路徑裡(讓AUTOCAD找得到的支援搜尋路徑)
- 代碼:
;(if (= ODS 0) (setq SCA1 1)(setq SCA1 (/ 1 SCA1))) ;按標註比例縮放字體大小
(if (/= ODS 0) (setq SCA1 1)(setq SCA1 (/ 1 SCA1))) ;按標註比例縮放字體大小
____________________________________________________________________________________
👉快速比例設定與出圖技巧-線上課程(點我)👈
AutoCAD顧問 :: 技術(發言等級:一般會員) :: :: 進階討論
第1頁(共1頁)
這個論壇的權限:
您 無法 在這個版面回復文章