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

[討論]請問各位大大下面的lisp錯在哪裡?

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

[討論]請問各位大大下面的lisp錯在哪裡?

發表 由 tzuchien_air 于 2015-07-17, 07:23

各位前輩平安
這個lisp想要將圖面3個entity依序變更顏色為10、11、12號顏色
但是,執行後只能變更第1個entity
然後就中斷了
是否能麻煩各位幫忙看一下,問題出現在哪裡,謝謝
(defun c:ttt()
(setq e1 (entnext))
(setq ii 9)  
(repeat 3 (
  (setq ii (+ ii 1))
  (setq ee e1)
  (setq en_data (entget ee))
  (setq oldcor (assoc 62 en_data))
  (setq newcor (cons 62 ii))
  (setq en_data (subst newcor oldcor en_data))
  (entmod en_data)
  (setq e1 (entnext ee))
))
)
avatar
tzuchien_air
一般會員
一般會員

文章總數 : 10
年齡 : 39
來自 : 台灣台南
職業 : 工程師
愛好 : 繪圖
個性 : 友善
使用年資 : 8年
使用版本 : autocad2012
經驗值 : 1137
威望值 : 0
注冊日期 : 2014-11-01
男 雙子座 馬

回頂端 向下

回復: [討論]請問各位大大下面的lisp錯在哪裡?

發表 由 Atsai 于 2015-07-19, 06:51

依需求修改一下,不一定是三個物件,但是顏色會從10開始依選擇的順序往下增加!
(defun c:ttt (/ ss l)
 (setq ss (ssget))
 (setq l (sslength ss)) ;選擇物件
 (setq n 10) ;起始顏色代碼編號
 (setq i 0)
 (repeat l
   (setq en_data (entget (ssname ss i)))
   (setq oldcor (assoc 62 en_data))
   (setq newcor (cons 62 (+ i 10)))
   (if oldcor
     (setq en_data (subst newcor oldcor en_data))
     (setq en_data (append en_data (list newcor)))
   )
   (entmod en_data)
   (setq i (1+ i))
 )
)

Tiger&蘋果爸 寫到:讚啦!! 謝謝熱心程式分享~< 積分 +1>
[公告]關於團隊成員的回文及貢獻
avatar
Atsai
中級會員
中級會員

文章總數 : 115
年齡 : 42
來自 : 台中
職業 : 工程
愛好 : 看漫畫
個性 : 樂天
使用年資 : 10
使用版本 : 2010
AutoCAD基礎篇等級 : 10星級
積分 : 7
經驗值 : 2900
威望值 : 337
注冊日期 : 2012-04-06
男 金牛座 兔

回頂端 向下

回復: [討論]請問各位大大下面的lisp錯在哪裡?

發表 由 tzuchien_air 于 2015-07-20, 05:55

謝謝Atsai的回覆,受益良多。謝謝。
avatar
tzuchien_air
一般會員
一般會員

文章總數 : 10
年齡 : 39
來自 : 台灣台南
職業 : 工程師
愛好 : 繪圖
個性 : 友善
使用年資 : 8年
使用版本 : autocad2012
經驗值 : 1137
威望值 : 0
注冊日期 : 2014-11-01
男 雙子座 馬

回頂端 向下

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


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