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

[討論]麻煩各位高手幫我看一下~我這個LISP的問題在哪??我一直試不出來~謝謝~

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

[討論]麻煩各位高手幫我看一下~我這個LISP的問題在哪??我一直試不出來~謝謝~

發表 由 hua 于 2016-08-15, 02:13

麻煩各位高手幫我看一下~
我這個LISP的問題在哪??
我一直試不出來~ 愛哭
我想要框選需要的線~
只要框選到的圖判斷是線~就自動畫出指定半徑的弧線
謝謝你們~ 感動
(defun c:atext-repeat()
(setvar "cmdecho" 0)
(setq os (getvar "osmode"))
(setvar "osmode" 0)
(setq rr (getreal "\n弧半徑: "))
(setq n 0)
(prompt"\n<<框選需要畫弧的線>>")
(setq ss (ssget))
(repeat (sslength ss)
 (setq ssn (ssname ss n))
 (setq ssdata (entget ssn))
 (setq pts (cdr (assoc 10 ssdata)))
 (setq pte (cdr (assoc 11 ssdata)))
 (setq entype (cdr (assoc 0 ssdata)))
 (if(= entype "LINE")
 (command "arc" pte "e" pts "r" rr)
 (setq n(1+n)
)
);repeat end
(setvar "osmode" 1)
 (prin1)
 )
avatar
hua
一般會員
一般會員

文章總數 : 16
年齡 : 35
來自 : 新北市
職業 : 繪圖員
愛好 : 畫圖
個性 : 內向
使用年資 : 5-6
使用版本 : 2014
經驗值 : 523
威望值 : 0
注冊日期 : 2016-08-10
女 摩羯座 雞

回頂端 向下

回復: [討論]麻煩各位高手幫我看一下~我這個LISP的問題在哪??我一直試不出來~謝謝~

發表 由 Tiger&蘋果爸 于 2016-08-15, 04:56

請問這程式是你自己寫的還是網路上下載?
以下簡單說明跟你分享:
1.if的用法若是成立,多條件輸入需再加入progn
但是我直接改為(setq ss (SSGET '((0 . "line"))))過濾線物件,就不用再用if

2.另外,(setq n(1+n)這裡寫法有誤,改為(setq n (+ 1 n))
代碼:
(defun c:atext-repeat()
(setvar "cmdecho" 0)
(setq os (getvar "osmode"))
(setvar "osmode" 0)
(setq rr (getreal "\n弧半徑: "))
(setq n 0)
(prompt"\n<<框選需要畫弧的線>>")
(setq ss (SSGET '((0 . "line"))))
(repeat (sslength ss)
(setq ssn (ssname ss n))
(setq ssdata (entget ssn))
(setq pts (cdr (assoc 10 ssdata)))
(setq pte (cdr (assoc 11 ssdata)))
(setq entype (cdr (assoc 0 ssdata)))
(command "arc" pte "e" pts "r" rr)
(setq n (+ 1 n))
);repeat end
(setvar "osmode" 1)
(prin1)
)

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

文章總數 : 17192
年齡 : 41
來自 : 台北市文山區
職業 : AutoCAD顧問
愛好 : 蹓狗/戶外活動/拍照
個性 : 幽默/樂觀/善良
使用年資 : 15↑
使用版本 : AutoCAD 2016
經驗值 : 64609
威望值 : 12753
注冊日期 : 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

回頂端 向下

回復: [討論]麻煩各位高手幫我看一下~我這個LISP的問題在哪??我一直試不出來~謝謝~

發表 由 hua 于 2016-08-15, 05:31

回復蘋果爸的發言:
這個是我參考吳永進老師的書,還有網路上的程式~改出來的喔~不算我自己寫的~呵呵~所以問題好像很多~不好意思
謝謝您幫我修改
我再試過後有疑問再請教各位前輩
謝謝
avatar
hua
一般會員
一般會員

文章總數 : 16
年齡 : 35
來自 : 新北市
職業 : 繪圖員
愛好 : 畫圖
個性 : 內向
使用年資 : 5-6
使用版本 : 2014
經驗值 : 523
威望值 : 0
注冊日期 : 2016-08-10
女 摩羯座 雞

回頂端 向下

回復: [討論]麻煩各位高手幫我看一下~我這個LISP的問題在哪??我一直試不出來~謝謝~

發表 由 hua 于 2016-08-15, 06:28

上面的留言~口誤~因為我東湊西湊~所以問題才好像很多~呵呵呵
我剛剛試過了~可以了耶~好開心~呵呵呵
可以請問蘋果爸~我可以把你改的那行(setq ss (ssget '((0 . "line"))))
放在我的原程式指定圖層為"text"嗎?(setq ss (ssget '((8 . "TEXT"))))
程式變成
(defun c:atext-repeat()
(setvar "cmdecho" 0)
(setq os (getvar "osmode"))
(setvar "osmode" 0)
(setq rr (getreal "\n弧半徑: "))
(setq n 0)
(prompt"\n<<框選需要畫弧的線>>")
(setq ss (ssget '((8 . "TEXT"))))
(repeat (sslength ss)
(setq ssn (ssname ss n))
(setq ssdata (entget ssn))
(setq pts (cdr (assoc 10 ssdata)))
(setq pte (cdr (assoc 11 ssdata)))
(setq entype (cdr (assoc 0 ssdata)))
(if(= entype "line")
(progn
(command "arc" pte "e" pts "r" rr))
(setq n(+ 1 n))
);if end
);repeat end
(setvar "osmode" 1)
(prin1)
)
avatar
hua
一般會員
一般會員

文章總數 : 16
年齡 : 35
來自 : 新北市
職業 : 繪圖員
愛好 : 畫圖
個性 : 內向
使用年資 : 5-6
使用版本 : 2014
經驗值 : 523
威望值 : 0
注冊日期 : 2016-08-10
女 摩羯座 雞

回頂端 向下

回復: [討論]麻煩各位高手幫我看一下~我這個LISP的問題在哪??我一直試不出來~謝謝~

發表 由 hua 于 2016-08-15, 06:37

因為我試過~好像不行~我不確定是我寫錯~還是這樣子其實不行~^^
不好意思~我希望框選的物件可以多加一個篩選~篩選圖層
如果還需要再加其它篩選條件~例如長度~該再加if嗎?
avatar
hua
一般會員
一般會員

文章總數 : 16
年齡 : 35
來自 : 新北市
職業 : 繪圖員
愛好 : 畫圖
個性 : 內向
使用年資 : 5-6
使用版本 : 2014
經驗值 : 523
威望值 : 0
注冊日期 : 2016-08-10
女 摩羯座 雞

回頂端 向下

回復: [討論]麻煩各位高手幫我看一下~我這個LISP的問題在哪??我一直試不出來~謝謝~

發表 由 Tiger&蘋果爸 于 2016-08-15, 10:08

hua 寫到:因為我試過~好像不行~我不確定是我寫錯~還是這樣子其實不行~^^
不好意思~我希望框選的物件可以多加一個篩選~篩選圖層
如果還需要再加其它篩選條件~例如長度~該再加if嗎?
篩選圖層程式碼
(setq ss (ssget '((8 . "text"))))

篩選線及圖層程式碼
(setq ss (ssget (list (cons 0 "line") (cons 8 "text"))))

長度方面也是用ssget去過濾篩選條件,可以參考書上A-72頁的寫法測試喔~
竊喜

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

文章總數 : 17192
年齡 : 41
來自 : 台北市文山區
職業 : AutoCAD顧問
愛好 : 蹓狗/戶外活動/拍照
個性 : 幽默/樂觀/善良
使用年資 : 15↑
使用版本 : AutoCAD 2016
經驗值 : 64609
威望值 : 12753
注冊日期 : 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

回頂端 向下

回復: [討論]麻煩各位高手幫我看一下~我這個LISP的問題在哪??我一直試不出來~謝謝~

發表 由 hua 于 2016-08-25, 04:00

謝謝頻果爸的耐心指導~^^
avatar
hua
一般會員
一般會員

文章總數 : 16
年齡 : 35
來自 : 新北市
職業 : 繪圖員
愛好 : 畫圖
個性 : 內向
使用年資 : 5-6
使用版本 : 2014
經驗值 : 523
威望值 : 0
注冊日期 : 2016-08-10
女 摩羯座 雞

回頂端 向下

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


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