[已解決]請高手們幫我看這個程式哪邊有問題?
4 posters
AutoCAD顧問 :: 技術(發言等級:一般會員) :: :: 進階討論 :: 已解決主題精華區
第1頁(共1頁)
[已解決]請高手們幫我看這個程式哪邊有問題?
(defun c:CodePage(/ INTXT1 I ENT F ENDATA1 F1 ENTS ENTQU QU I1)
(setvar "cmdecho" 0)
(SETQ I (GETSTRING "\n 起始數字 :"))
(setq ENTS(ssget "_:L" '((2 . "BLOCK1"))))
(SETQ ENTQU (SSLENGTH ENTS))
(SETQ QU 0)
(WHILE (< QU ENTQU)
(SETQ F 0)
(SETQ ENT (entget(ssname ENTS QU)))
(SETQ ENDATA1 (ENTGET (ENTNEXT(CDR(CAR ENT)))))
(WHILE (< F 20)
(SETQ F1 (CDR (ASSOC 2 ENDATA1)))
(IF (= F1 "$SH_NO")
(PROGN
(IF (< (ATOI I) 10)
(PROGN
(SETQ ENDATA1 (SUBST (CONS 1 (STRCAT "00" I)) (ASSOC 1 ENDATA1) ENDATA1))
(ENTMOD ENDATA1)
);PROGN
);IF
(SETQ ENDATA1 (SUBST (CONS 1 (STRCAT "0" I)) (ASSOC 1 ENDATA1) ENDATA1))
(ENTMOD ENDATA1)
(IF (> (ATOI I) 99)
(PROGN
(SETQ ENDATA1 (SUBST (CONS 1 I) (ASSOC 1 ENDATA1) ENDATA1))
(ENTMOD ENDATA1)
);PROGN
);IF
(SETQ I (ITOA(1+ (ATOI I))))
);PROGN
);IF
(SETQ ENDATA1 (ENTGET (ENTNEXT (CDR (CAR ENDATA1)))))
(SETQ F(1+ F))
);WHILE
(SETQ QU (1+ QU))
);WHILE
(prin1)
)
問題是這樣的:剛寫好後,第一次執行正常,後來關掉CAD程式再打開執行,它總是會直接跳過綠色字那一串,真的搞不懂為什麼?
附件下載: https://app.box.com/s/7gr8c6wvwuktz9prxedq
(setvar "cmdecho" 0)
(SETQ I (GETSTRING "\n 起始數字 :"))
(setq ENTS(ssget "_:L" '((2 . "BLOCK1"))))
(SETQ ENTQU (SSLENGTH ENTS))
(SETQ QU 0)
(WHILE (< QU ENTQU)
(SETQ F 0)
(SETQ ENT (entget(ssname ENTS QU)))
(SETQ ENDATA1 (ENTGET (ENTNEXT(CDR(CAR ENT)))))
(WHILE (< F 20)
(SETQ F1 (CDR (ASSOC 2 ENDATA1)))
(IF (= F1 "$SH_NO")
(PROGN
(IF (< (ATOI I) 10)
(PROGN
(SETQ ENDATA1 (SUBST (CONS 1 (STRCAT "00" I)) (ASSOC 1 ENDATA1) ENDATA1))
(ENTMOD ENDATA1)
);PROGN
);IF
(SETQ ENDATA1 (SUBST (CONS 1 (STRCAT "0" I)) (ASSOC 1 ENDATA1) ENDATA1))
(ENTMOD ENDATA1)
(IF (> (ATOI I) 99)
(PROGN
(SETQ ENDATA1 (SUBST (CONS 1 I) (ASSOC 1 ENDATA1) ENDATA1))
(ENTMOD ENDATA1)
);PROGN
);IF
(SETQ I (ITOA(1+ (ATOI I))))
);PROGN
);IF
(SETQ ENDATA1 (ENTGET (ENTNEXT (CDR (CAR ENDATA1)))))
(SETQ F(1+ F))
);WHILE
(SETQ QU (1+ QU))
);WHILE
(prin1)
)
問題是這樣的:剛寫好後,第一次執行正常,後來關掉CAD程式再打開執行,它總是會直接跳過綠色字那一串,真的搞不懂為什麼?
附件下載: https://app.box.com/s/7gr8c6wvwuktz9prxedq
蔣秉澔 在 2014-01-15, 08:10 作了第 1 次修改
蔣秉澔- 初級會員
- 文章總數 : 211
年齡 : 47
來自 : 嘉義市
職業 : 大電力系統設計、製程、檢測
愛好 : 電腦相關,出遊踏青
個性 : 待人隨和,對事執著
使用年資 : 8年
使用版本 : 2011 Electrical,2014
積分 : 4
經驗值 : 5398
威望值 : 198
注冊日期 : 2013-08-31
回復: [已解決]請高手們幫我看這個程式哪邊有問題?
方便的話.要請您將.LSP和測試圖檔壓成RAR..附上下載點!!
因為PO的LSP.沒辦法複製. 也無圖檔BLOCK....無法幫忙測試.
目前看起來綠色那一段是因為I值大於10..所以沒執行...有時候.是程式少了部分括號.造成程式執行錯誤.!!
因為PO的LSP.沒辦法複製. 也無圖檔BLOCK....無法幫忙測試.
目前看起來綠色那一段是因為I值大於10..所以沒執行...有時候.是程式少了部分括號.造成程式執行錯誤.!!
shenhung- 高級會員
- 文章總數 : 281
年齡 : 57
來自 : 新北市
職業 : 塑膠模具設計.AUTOLISP
愛好 : 音樂
個性 : 隨和
使用年資 : 18年
使用版本 : 2010
積分 : 15
經驗值 : 8074
威望值 : 1188
注冊日期 : 2009-06-03
回復: [已解決]請高手們幫我看這個程式哪邊有問題?
樓主於尋找屬性標籤的時依,並未下(-2 . "SEQEND")的判斷,所以只有第一個圖塊是OK的,第二個圖塊就出錯。
於第二個WHILE下判斷就好了,下面是修改後的程式碼,樓主測試看看吧!
附件下載: https://app.box.com/s/1t3ym7q3itjh1yqss1wr
於第二個WHILE下判斷就好了,下面是修改後的程式碼,樓主測試看看吧!
- 代碼:
(defun c:CodePage (/ INTXT1 I ENT F ENDATA1 F1 ENTS ENTQU QU I1)
(setvar "cmdecho" 0)
(SETQ I (GETSTRING "\n 起始數字 :"))
(setq ENTS (ssget "_:L" '((2 . "BLOCK1"))))
(SETQ ENTQU (SSLENGTH ENTS))
(SETQ QU 0)
(WHILE (< QU ENTQU)
(SETQ F 0)
(SETQ ENT (entget (ssname ENTS QU)))
(SETQ ENDATA1 (ENTGET (ENTNEXT (CDR (CAR ENT)))))
(WHILE (AND (< F 20) (/= (CDR (ASSOC 0 ENDATA1)) "SEQEND"))
(SETQ F1 (CDR (ASSOC 2 ENDATA1)))
(IF (= F1 "$SH_NO")
(PROGN
(IF (< (ATOI I) 10)
(PROGN
(SETQ ENDATA1 (SUBST (CONS 1 (STRCAT "00" I)) (ASSOC 1 ENDATA1) ENDATA1))
(ENTMOD ENDATA1)
) ;PROGN
) ;IF
(SETQ ENDATA1 (SUBST (CONS 1 (STRCAT "0" I)) (ASSOC 1 ENDATA1) ENDATA1))
(ENTMOD ENDATA1)
(IF (> (ATOI I) 99)
(PROGN
(SETQ ENDATA1 (SUBST (CONS 1 I) (ASSOC 1 ENDATA1) ENDATA1))
(ENTMOD ENDATA1)
) ;PROGN
) ;IF
(SETQ I (ITOA (1+ (ATOI I))))
) ;PROGN
) ;IF
(SETQ ENDATA1 (ENTGET (ENTNEXT (CDR (CAR ENDATA1)))))
(SETQ F (1+ F))
) ;WHILE
(SETQ QU (1+ QU))
) ;WHILE
(prin1)
)
附件下載: https://app.box.com/s/1t3ym7q3itjh1yqss1wr
Atsai- 中級會員
- 文章總數 : 167
年齡 : 49
來自 : 台中
職業 : 工程
愛好 : 看漫畫
個性 : 樂天
使用年資 : 10
使用版本 : 2010
AutoCAD基礎篇等級 : 10星級
積分 : 8
經驗值 : 5929
威望值 : 524
注冊日期 : 2012-04-06
回復: [已解決]請高手們幫我看這個程式哪邊有問題?
謝謝兩位費心的幫小弟看,我剛剛陪家人跨年順便再試看看,結果是我其中2條式子放錯地方了,呵呵!!
問題解決囉!!
問題解決囉!!
蔣秉澔- 初級會員
- 文章總數 : 211
年齡 : 47
來自 : 嘉義市
職業 : 大電力系統設計、製程、檢測
愛好 : 電腦相關,出遊踏青
個性 : 待人隨和,對事執著
使用年資 : 8年
使用版本 : 2011 Electrical,2014
積分 : 4
經驗值 : 5398
威望值 : 198
注冊日期 : 2013-08-31
回復: [已解決]請高手們幫我看這個程式哪邊有問題?
熱心提醒,請版主蔣秉澔用編輯功能,將【討論】改成【已解決】
____________________________________________________________________________________
djh1006- 中級會員
- 文章總數 : 177
年齡 : 53
來自 : 彰化縣員林鎮中山路二段369巷二弄15-14號
職業 : 連續沖壓模具設計工程師
愛好 : UG,SOLIDWORKS,AUTOCAD 2D,autolisp
個性 : 內向偏外
使用年資 : 23年以上
使用版本 : 2014
積分 : 7
經驗值 : 6136
威望值 : 359
注冊日期 : 2011-06-16
AutoCAD顧問 :: 技術(發言等級:一般會員) :: :: 進階討論 :: 已解決主題精華區
第1頁(共1頁)
這個論壇的權限:
您 無法 在這個版面回復文章