AutoCAD顧問
還沒有註冊嗎...即日起免費註冊,所有最完整的AutoCAD討論、教學及資源都在論壇裡喔~

[分享]連續號碼編寫

上一篇主題 下一篇主題 向下

[分享]連續號碼編寫

發表 由 蔣秉澔 于 2014-09-17, 09:33

自從接觸了這個大家族,學到了AUTOLISP,也挖到了不少寶,提升了一些些功力,現在終於可以有能力分享了,好高興~
用了許多編碼的程式,EXPRESS裡面的啦,LEE MAC的啦,總覺得用的不上手,可能是高手寫時,把它們用的很制式吧,因為我大部份是連續號不跳號,偶爾有前面加個代碼,而且位置都不固定,比如A1~A100之類,因此就開始自己寫(偷師了很多),也自行改良了2~3次,現在覺得滿好用的,雖然程式內部還是很粗糙,也請各路前輩加高手賜教。

用法:輸入指令:AWX(亂編的),輸入代碼(若不用可直接ENTER)(代碼目前只能加在前面),起始數字(可以隨意多少開始),在選取文字時,可以選同一個X軸或Y軸,如果要編寫的文字散的很開,可以先ENTER讓它跑碼,再繼續選下一組,直到編碼都完成,注意的是:它是先跑完X軸再跑Y軸。

簡易用法:輸入指令"AWX"→輸入代碼(若不用可以空白)→輸入起始數字→點選要修改的TEXT
下載(點我)

備用載點: https://db.tt/oKoqJ0x9
avatar
蔣秉澔
初級會員
初級會員

文章總數 : 210
年齡 : 40
來自 : 嘉義市
職業 : 大電力系統設計、製程、檢測
愛好 : 電腦相關,出遊踏青
個性 : 待人隨和,對事執著
使用年資 : 8年
使用版本 : 2011 Electrical,2014
積分 : 4
經驗值 : 2832
威望值 : 168
注冊日期 : 2013-08-31
顧問外掛程式 藍鵲661號
男 金牛座 蛇

回頂端 向下

回復: [分享]連續號碼編寫

發表 由 qaz6605 于 2014-09-18, 05:07

謝謝提供,先試用看看.回頭在聊優缺點.

qaz6605
初級會員
初級會員

文章總數 : 169
年齡 : 39
來自 : 台南市
職業 : 繪圖員
愛好 : 有關電腦的
個性 : 外向
使用年資 : 剛剛初道
使用版本 : 2006
積分 : 2
經驗值 : 4002
威望值 : 82
注冊日期 : 2008-12-31
經典問與答讀者 藍鵲285號
男 處女座 馬

回頂端 向下

回復: [分享]連續號碼編寫

發表 由 wendy6866 于 2014-09-18, 06:47

回復: [分享]連續號碼編寫
真的很不賴耶~~太棒囉
大感謝 感激
avatar
wendy6866
一般會員
一般會員

文章總數 : 16
年齡 : 41
來自 : 台中
職業 : 工業管路設計
愛好 : 電影、音樂、閱讀
個性 : 開朗、知性、感性
使用年資 : 19年
使用版本 : 2014
經驗值 : 2543
威望值 : 12
注冊日期 : 2011-03-11
女 摩羯座 兔

回頂端 向下

回復: [分享]連續號碼編寫

發表 由 vicky5157 于 2014-09-18, 08:29

對不起! 請問載入後如何使用 ? 可有範例 ?
avatar
vicky5157
一般會員
一般會員

文章總數 : 16
年齡 : 49
來自 : 台北
職業 : 室設
愛好 : 睡覺
個性 : 外向
使用年資 : 14
使用版本 : 2012
經驗值 : 2947
威望值 : 6
注冊日期 : 2010-01-19
女 雙魚座 猴

回頂端 向下

回復: [分享]連續號碼編寫

發表 由 judyyai 于 2014-09-20, 02:48

vicky5157 寫到:對不起! 請問載入後如何使用 ? 可有範例 ?

請參考以下 文章
LISP - 「教學」載入LISP應用程式 APPLOAD指令

____________________________________________________________________________________
avatar
judyyai
管理顧問
管理顧問

文章總數 : 7649
年齡 : 40
來自 : 台南
職業 : 機械製圖
愛好 : 電腦相關
個性 : think too much...
使用年資 : 10↑
使用版本 : AC2014(開始於2015九月底)
AutoCAD基礎篇等級 : 10星級
積分 : 392
最佳解答 : 1
經驗值 : 27271
威望值 : 3466
發帖精華 : 2
回帖精華 : 4
注冊日期 : 2008-11-19
2D基礎函授 3D基礎函授 顧問外掛程式 經典問與答讀者 藍鵲2號
2009聚會勳章 串連貼紙成功 女 巨蟹座 蛇

回頂端 向下

回復: [分享]連續號碼編寫

發表 由 qaz6605 于 2014-09-22, 01:12

這個lisp載入后,還不知如何使用,是否可以說明一下.

qaz6605
初級會員
初級會員

文章總數 : 169
年齡 : 39
來自 : 台南市
職業 : 繪圖員
愛好 : 有關電腦的
個性 : 外向
使用年資 : 剛剛初道
使用版本 : 2006
積分 : 2
經驗值 : 4002
威望值 : 82
注冊日期 : 2008-12-31
經典問與答讀者 藍鵲285號
男 處女座 馬

回頂端 向下

回復: [分享]連續號碼編寫

發表 由 蔣秉澔 于 2014-09-22, 01:26

用法:輸入指令"AWX"→輸入代碼(若不用可以空白)→輸入起始數字→點選要修改的TEXT
avatar
蔣秉澔
初級會員
初級會員

文章總數 : 210
年齡 : 40
來自 : 嘉義市
職業 : 大電力系統設計、製程、檢測
愛好 : 電腦相關,出遊踏青
個性 : 待人隨和,對事執著
使用年資 : 8年
使用版本 : 2011 Electrical,2014
積分 : 4
經驗值 : 2832
威望值 : 168
注冊日期 : 2013-08-31
顧問外掛程式 藍鵲661號
男 金牛座 蛇

回頂端 向下

回復: [分享]連續號碼編寫

發表 由 qaz6605 于 2014-09-23, 00:54

經過說明,以做圖習慣和方便蘋果爸提供增量編碼方便性較高.
還是要謝謝你提供,不一樣的思考邏輯.

qaz6605
初級會員
初級會員

文章總數 : 169
年齡 : 39
來自 : 台南市
職業 : 繪圖員
愛好 : 有關電腦的
個性 : 外向
使用年資 : 剛剛初道
使用版本 : 2006
積分 : 2
經驗值 : 4002
威望值 : 82
注冊日期 : 2008-12-31
經典問與答讀者 藍鵲285號
男 處女座 馬

回頂端 向下

回復: [分享]連續號碼編寫

發表 由 蔣秉澔 于 2014-09-23, 10:14

其實它算是把既有的編碼文字再重新編寫,因我的作圖環境中,常常都是一直先copy,然後再一次性修改,因此就自己寫個程式來跑碼囉
avatar
蔣秉澔
初級會員
初級會員

文章總數 : 210
年齡 : 40
來自 : 嘉義市
職業 : 大電力系統設計、製程、檢測
愛好 : 電腦相關,出遊踏青
個性 : 待人隨和,對事執著
使用年資 : 8年
使用版本 : 2011 Electrical,2014
積分 : 4
經驗值 : 2832
威望值 : 168
注冊日期 : 2013-08-31
顧問外掛程式 藍鵲661號
男 金牛座 蛇

回頂端 向下

回復: [分享]連續號碼編寫

發表 由 ed_liao 于 2014-10-09, 16:28

謝謝大大分享,雖然下截下來,但是還是不會用,最近找了很久,找不到連續編號的lisp,想到還有好幾張圖要標網路號碼就好煩,1張都好幾百號,復制貼上改號碼,改到眼都花了
avatar
ed_liao
一般會員
一般會員

文章總數 : 14
年齡 : 38
來自 : 新北市中和區
職業 : 網路工程師
愛好 : 資訊
個性 : 內向
使用年資 : 新手初學
使用版本 : 半年
經驗值 : 1278
威望值 : 0
注冊日期 : 2014-08-15
男 天秤座 羊

回頂端 向下

回復: [分享]連續號碼編寫

發表 由 djh1006 于 2014-10-10, 08:47

我的連續號碼是以直徑6的圓為外框,將數字寫於圓內,直徑6可以從原始程式裡調整,我沒有把它寫成從執行程式中調整,因為我認為每家公司的氣球直徑是固定的(我們公司就是這樣),所以我只設計在程式裡,不讓使用者隨時更改,數字會按氣球大小自動調整,數字位數多與少也會自動調整寬度係數,以5位數為限,多了也擠不進去(也看不清楚)
代碼:
;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找得到的支援搜尋路徑)
附件
CN.zip 您無權下載這里的附件。(13 Kb) 下載 27 次
avatar
djh1006
中級會員
中級會員

文章總數 : 156
年齡 : 46
來自 : 彰化縣員林鎮中山路二段369巷二弄15-14號
職業 : 沖壓模具設計工程師
愛好 : UG,SOLIDWORKS,AUTOCAD 2D,autolisp
個性 : 內向偏外
使用年資 : 18以上
使用版本 : 2014
積分 : 6
經驗值 : 3462
威望值 : 294
注冊日期 : 2011-06-16
男 獅子座 豬

回頂端 向下

(問題)連率號碼編寫

發表 由 benq0955 于 2014-11-08, 03:59

注意:附件中有二個檔案,LSP是主程式,DWG是氣球的圖塊檔,DWG需在系統設定路徑裡(讓AUTOCAD找得到的支援搜尋路徑)
請問高手:因為我已經載入LISP,但還是無法使用。

DWG需在系統設定路徑裡?是什麼意思?
avatar
benq0955
一般會員
一般會員

文章總數 : 7
年齡 : 33
來自 : 新竹市
職業 : 監工
愛好 : 釣蝦
個性 : 隨和
使用年資 : 新手初學
使用版本 : 2008
經驗值 : 2397
威望值 : 0
注冊日期 : 2011-06-30
經典問與答讀者 男 水瓶座 鼠

回頂端 向下

回復: [分享]連續號碼編寫

發表 由 judyyai 于 2014-11-08, 05:26

benq0955 寫到:注意:附件中有二個檔案,LSP是主程式,DWG是氣球的圖塊檔,DWG需在系統設定路徑裡(讓AUTOCAD找得到的支援搜尋路徑)
請問高手:因為我已經載入LISP,但還是無法使用。

                DWG需在系統設定路徑裡?是什麼意思?

AUTOCAD找得到的支援搜尋路徑

____________________________________________________________________________________
avatar
judyyai
管理顧問
管理顧問

文章總數 : 7649
年齡 : 40
來自 : 台南
職業 : 機械製圖
愛好 : 電腦相關
個性 : think too much...
使用年資 : 10↑
使用版本 : AC2014(開始於2015九月底)
AutoCAD基礎篇等級 : 10星級
積分 : 392
最佳解答 : 1
經驗值 : 27271
威望值 : 3466
發帖精華 : 2
回帖精華 : 4
注冊日期 : 2008-11-19
2D基礎函授 3D基礎函授 顧問外掛程式 經典問與答讀者 藍鵲2號
2009聚會勳章 串連貼紙成功 女 巨蟹座 蛇

回頂端 向下

回復: [分享]連續號碼編寫

發表 由 Tiger&蘋果爸 于 2014-11-08, 09:38

benq0955 寫到:注意:附件中有二個檔案,LSP是主程式,DWG是氣球的圖塊檔,DWG需在系統設定路徑裡(讓AUTOCAD找得到的支援搜尋路徑)
請問高手:因為我已經載入LISP,但還是無法使用。

                DWG需在系統設定路徑裡?是什麼意思?
請參考以下文章說明:
[觀念]AutoCAD的遊戲規則
竊喜

____________________________________________________________________________________
avatar
Tiger&蘋果爸
系統管理員
系統管理員

文章總數 : 17328
年齡 : 41
來自 : 台北市文山區
職業 : AutoCAD顧問
愛好 : 蹓狗/戶外活動/拍照
個性 : 幽默/樂觀/善良
使用年資 : 15↑
使用版本 : AutoCAD 2016
經驗值 : 65336
威望值 : 12868
注冊日期 : 2008-04-23
2D基礎函授 2D進階函授 3D基礎函授 https://i11.servimg.com/u/f11/19/71/67/71/2d3d10.png2D+3D線上 顧問外掛程式 經典問與答讀者 藍鵲1號
2009聚會勳章 2010聚會勳章 2011聚會勳章 2012聚會勳章 2013勳章-2D基礎 2014聚會勳章 2015聚會勳章 2016聚會勳章 串連貼紙成功 男 水瓶座 兔

http://mypaper.pchome.com.tw/kv1012tiger

回頂端 向下

回復: [分享]連續號碼編寫

發表 由 as920029as 于 2015-02-02, 05:07

代碼:
(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 無線循環
avatar
as920029as
一般會員
一般會員

文章總數 : 53
年齡 : 26
來自 : 台南市
職業 : 繪圖員
愛好 : 電腦遊戲
個性 : 開朗
使用年資 : 3年
使用版本 : 2010
經驗值 : 2368
威望值 : 31
注冊日期 : 2012-05-05
男 白羊座 羊

回頂端 向下

上一篇主題 下一篇主題 回頂端


 
這個論壇的權限:
無法 在這個版面回復文章