[討論]麻煩各位高手幫我看一下~我這個LISP的問題在哪??我一直試不出來~謝謝~
2 posters
AutoCAD顧問 :: 技術(發言等級:一般會員) :: :: 進階討論
第1頁(共1頁)
[討論]麻煩各位高手幫我看一下~我這個LISP的問題在哪??我一直試不出來~謝謝~
麻煩各位高手幫我看一下~
我這個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)
)
我這個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)
)
hua- 一般會員
- 文章總數 : 16
年齡 : 42
來自 : 新北市
職業 : 繪圖員
愛好 : 畫圖
個性 : 內向
使用年資 : 5-6
使用版本 : 2014
經驗值 : 3113
威望值 : 0
注冊日期 : 2016-08-10
回復: [討論]麻煩各位高手幫我看一下~我這個LISP的問題在哪??我一直試不出來~謝謝~
請問這程式是你自己寫的還是網路上下載?
以下簡單說明跟你分享:
1.if的用法若是成立,多條件輸入需再加入progn
但是我直接改為(setq ss (SSGET '((0 . "line"))))過濾線物件,就不用再用if
2.另外,(setq n(1+n)這裡寫法有誤,改為(setq n (+ 1 n))
以下簡單說明跟你分享:
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)
)
____________________________________________________________________________________
👉快速比例設定與出圖技巧-線上課程(點我)👈
回復: [討論]麻煩各位高手幫我看一下~我這個LISP的問題在哪??我一直試不出來~謝謝~
回復蘋果爸的發言:
這個是我參考吳永進老師的書,還有網路上的程式~改出來的喔~不算我自己寫的~呵呵~所以問題好像很多~不好意思
謝謝您幫我修改
我再試過後有疑問再請教各位前輩
謝謝
這個是我參考吳永進老師的書,還有網路上的程式~改出來的喔~不算我自己寫的~呵呵~所以問題好像很多~不好意思
謝謝您幫我修改
我再試過後有疑問再請教各位前輩
謝謝
hua- 一般會員
- 文章總數 : 16
年齡 : 42
來自 : 新北市
職業 : 繪圖員
愛好 : 畫圖
個性 : 內向
使用年資 : 5-6
使用版本 : 2014
經驗值 : 3113
威望值 : 0
注冊日期 : 2016-08-10
回復: [討論]麻煩各位高手幫我看一下~我這個LISP的問題在哪??我一直試不出來~謝謝~
上面的留言~口誤~因為我東湊西湊~所以問題才好像很多~呵呵呵
我剛剛試過了~可以了耶~好開心~呵呵呵
可以請問蘋果爸~我可以把你改的那行(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)
)
我剛剛試過了~可以了耶~好開心~呵呵呵
可以請問蘋果爸~我可以把你改的那行(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)
)
hua- 一般會員
- 文章總數 : 16
年齡 : 42
來自 : 新北市
職業 : 繪圖員
愛好 : 畫圖
個性 : 內向
使用年資 : 5-6
使用版本 : 2014
經驗值 : 3113
威望值 : 0
注冊日期 : 2016-08-10
回復: [討論]麻煩各位高手幫我看一下~我這個LISP的問題在哪??我一直試不出來~謝謝~
因為我試過~好像不行~我不確定是我寫錯~還是這樣子其實不行~^^
不好意思~我希望框選的物件可以多加一個篩選~篩選圖層
如果還需要再加其它篩選條件~例如長度~該再加if嗎?
不好意思~我希望框選的物件可以多加一個篩選~篩選圖層
如果還需要再加其它篩選條件~例如長度~該再加if嗎?
hua- 一般會員
- 文章總數 : 16
年齡 : 42
來自 : 新北市
職業 : 繪圖員
愛好 : 畫圖
個性 : 內向
使用年資 : 5-6
使用版本 : 2014
經驗值 : 3113
威望值 : 0
注冊日期 : 2016-08-10
回復: [討論]麻煩各位高手幫我看一下~我這個LISP的問題在哪??我一直試不出來~謝謝~
篩選圖層程式碼hua 寫到:因為我試過~好像不行~我不確定是我寫錯~還是這樣子其實不行~^^
不好意思~我希望框選的物件可以多加一個篩選~篩選圖層
如果還需要再加其它篩選條件~例如長度~該再加if嗎?
(setq ss (ssget '((8 . "text"))))
篩選線及圖層程式碼
(setq ss (ssget (list (cons 0 "line") (cons 8 "text"))))
長度方面也是用ssget去過濾篩選條件,可以參考書上A-72頁的寫法測試喔~
____________________________________________________________________________________
👉快速比例設定與出圖技巧-線上課程(點我)👈
回復: [討論]麻煩各位高手幫我看一下~我這個LISP的問題在哪??我一直試不出來~謝謝~
謝謝頻果爸的耐心指導~^^
hua- 一般會員
- 文章總數 : 16
年齡 : 42
來自 : 新北市
職業 : 繪圖員
愛好 : 畫圖
個性 : 內向
使用年資 : 5-6
使用版本 : 2014
經驗值 : 3113
威望值 : 0
注冊日期 : 2016-08-10
AutoCAD顧問 :: 技術(發言等級:一般會員) :: :: 進階討論
第1頁(共1頁)
這個論壇的權限:
您 無法 在這個版面回復文章