*[討論]問一個有關於LISP選集的問題
3 posters
AutoCAD顧問 :: 技術(發言等級:一般會員) :: :: 進階討論
第1頁(共1頁)
*[討論]問一個有關於LISP選集的問題
有人能幫我看看我是哪邊寫錯嗎
想寫一個多線段轉弧的小程式
不過在選擇物件時
如果是用框選的都沒反應
我測試過單選物件都OK
(setq os (getvar "osmode"))
(setvar "osmode" 0)
(princ "\n選取物件")
(setq joinarc_ss (ssget))
(setq joinarc_n 0)
(repeat (sslength joinarc_ss)
(setq joinarc_en (ssname joinarc_ss joinarc_n))
(setq joinarc_endata (entget joinarc_en))
(cond ((= (cdr (assoc 0 joinarc_endata)) "LINE") (joinarc_line))
(t nil)
) ;_ 結束 cond
(setq joinarc_n (1+ joinarc_n))
(cond ((= joinarc_n 1)
(progn
(setq pt1 joinarc_str10)
(setq pt2 joinarc_end11)
))
(t
(progn
(setq pt3 joinarc_str10)
(setq pt4 joinarc_end11)
(cond ((and (= (car pt3) (car pt2)) (= (cadr pt3) (cadr pt2)))
(progn
(command "arc" pt1 pt3 pt4)
(setq pt2 pt4)
))
(t (setq joinarc_n 0))
);結束cond
))
);結束cond
) ;_ 結束 repeat
(setvar "osmode" os)
(prin1)
想寫一個多線段轉弧的小程式
不過在選擇物件時
如果是用框選的都沒反應
我測試過單選物件都OK
(setq os (getvar "osmode"))
(setvar "osmode" 0)
(princ "\n選取物件")
(setq joinarc_ss (ssget))
(setq joinarc_n 0)
(repeat (sslength joinarc_ss)
(setq joinarc_en (ssname joinarc_ss joinarc_n))
(setq joinarc_endata (entget joinarc_en))
(cond ((= (cdr (assoc 0 joinarc_endata)) "LINE") (joinarc_line))
(t nil)
) ;_ 結束 cond
(setq joinarc_n (1+ joinarc_n))
(cond ((= joinarc_n 1)
(progn
(setq pt1 joinarc_str10)
(setq pt2 joinarc_end11)
))
(t
(progn
(setq pt3 joinarc_str10)
(setq pt4 joinarc_end11)
(cond ((and (= (car pt3) (car pt2)) (= (cadr pt3) (cadr pt2)))
(progn
(command "arc" pt1 pt3 pt4)
(setq pt2 pt4)
))
(t (setq joinarc_n 0))
);結束cond
))
);結束cond
) ;_ 結束 repeat
(setvar "osmode" os)
(prin1)
judyyai 在 2009-06-28, 10:54 作了第 7 次修改 (原因 : 圖片顯示不出來~發問者要求修正主題)
回復: *[討論]問一個有關於LISP選集的問題
文中欠缺(joinarc_line) 副程式 ~ 能否貼上來檢視 ?
可以用 IF 函數解決的內容為何都用COND ?
可以用 IF 函數解決的內容為何都用COND ?
阿希- 高級會員
- 文章總數 : 348
年齡 : 43
來自 : 台北
職業 : 水電設計
愛好 : autolisp
個性 : 和平主義者
使用年資 : 5
使用版本 : 2008
積分 : 19
經驗值 : 6750
威望值 : 226
發帖精華 : 1
注冊日期 : 2008-09-22
回復: *[討論]問一個有關於LISP選集的問題
阿希 寫到:文中欠缺(joinarc_line) 副程式 ~ 能否貼上來檢視 ?
可以用 IF 函數解決的內容為何都用COND ?
(defun joinarc_line ()
(setq joinarc_str10 (cdr (assoc 10 joinarc_endata)))
(setq joinarc_end11 (cdr (assoc 11 joinarc_endata)))
)
IF、WHILE、COND 這三個函數我也還不太了解怎麼用
我的習慣是寫一部份程式後就測試
有試著用WHILE函數寫
不過在跑的時候
電腦常常死當
回復: *[討論]問一個有關於LISP選集的問題
霖 寫到:阿希 寫到:文中欠缺(joinarc_line) 副程式 ~ 能否貼上來檢視 ?
可以用 IF 函數解決的內容為何都用COND ?
(defun joinarc_line ()
(setq joinarc_str10 (cdr (assoc 10 joinarc_endata)))
(setq joinarc_end11 (cdr (assoc 11 joinarc_endata)))
)
IF、WHILE、COND 這三個函數我也還不太了解怎麼用
我的習慣是寫一部份程式後就測試
有試著用WHILE函數寫
不過在跑的時候
電腦常常死當
IF (當你答案只有兩種的時候)
如果 A+B >C -----------------------------------LISP表示 (IF (> (+ A B) C)
成立執行-----------------------------------------------(成立時表示式)
不成立執行---------------------------------------------(不成立表示式) PS:不成立表示式可省略不執行
-------------------------------------------------------------);結束IF
COND (當你答案可能有三種以上時)
如果你有錢會做啥
有一百萬 ~~買車
有一千萬~~買房子
有一兆 ~~ .....
.
.
WHILE
跟IF差不多
只是一樣東西一在迴圈內 ~ 成立時就執行,一直到不成立時才離開迴圈
阿希- 高級會員
- 文章總數 : 348
年齡 : 43
來自 : 台北
職業 : 水電設計
愛好 : autolisp
個性 : 和平主義者
使用年資 : 5
使用版本 : 2008
積分 : 19
經驗值 : 6750
威望值 : 226
發帖精華 : 1
注冊日期 : 2008-09-22
回復: *[討論]問一個有關於LISP選集的問題
阿希 寫到:霖 寫到:阿希 寫到:文中欠缺(joinarc_line) 副程式 ~ 能否貼上來檢視 ?
可以用 IF 函數解決的內容為何都用COND ?
(defun joinarc_line ()
(setq joinarc_str10 (cdr (assoc 10 joinarc_endata)))
(setq joinarc_end11 (cdr (assoc 11 joinarc_endata)))
)
IF、WHILE、COND 這三個函數我也還不太了解怎麼用
我的習慣是寫一部份程式後就測試
有試著用WHILE函數寫
不過在跑的時候
電腦常常死當
IF (當你答案只有兩種的時候)
如果 A+B >C -----------------------------------LISP表示 (IF (> (+ A B) C)
成立執行-----------------------------------------------(成立時表示式)
不成立執行---------------------------------------------(不成立表示式) PS:不成立表示式可省略不執行
-------------------------------------------------------------);結束IF
COND (當你答案可能有三種以上時)
如果你有錢會做啥
有一百萬 ~~買車
有一千萬~~買房子
有一兆 ~~ .....
.
.
WHILE
跟IF差不多
只是一樣東西一在迴圈內 ~ 成立時就執行,一直到不成立時才離開迴圈
大概了解這三個函數的用法了
非常感謝QQ
回復: *[討論]問一個有關於LISP選集的問題
******************************************************阿希 寫到:IF (當你答案只有兩種的時候)
如果 A+B >C -----------------------------------LISP表示 (IF (> (+ A B) C)
成立執行-----------------------------------------------(成立時表示式)
不成立執行---------------------------------------------(不成立表示式) PS:不成立表示式可省略不執行
-------------------------------------------------------------);結束IF
COND (當你答案可能有三種以上時)
如果你有錢會做啥
有一百萬 ~~買車
有一千萬~~買房子
有一兆 ~~ .....
.
.
WHILE
跟IF差不多
只是一樣東西一在迴圈內 ~ 成立時就執行,一直到不成立時才離開迴圈
謝謝熱心回覆~< 積分 +1>
[公告]關於團隊成員的回文及貢獻
____________________________________________________________________________________
👉[訂購]AutoCAD圖塊大師課程(點我)👈
回復: *[討論]問一個有關於LISP選集的問題
看不到您上傳的圖片喔
阿希- 高級會員
- 文章總數 : 348
年齡 : 43
來自 : 台北
職業 : 水電設計
愛好 : autolisp
個性 : 和平主義者
使用年資 : 5
使用版本 : 2008
積分 : 19
經驗值 : 6750
威望值 : 226
發帖精華 : 1
注冊日期 : 2008-09-22
回復: *[討論]問一個有關於LISP選集的問題
修該前-
![*[討論]問一個有關於LISP選集的問題 J0169a](https://2img.net/h/i703.photobucket.com/albums/ww33/op90op/J0169a.jpg)
http://www.wretch.cc/album/show.php?i=lin19800617&b=1&f=1586799665&p=0
修改後-
![*[討論]問一個有關於LISP選集的問題 J0169b](https://2img.net/h/i703.photobucket.com/albums/ww33/op90op/J0169b.jpg)
http://www.wretch.cc/album/show.php?i=lin19800617&b=1&f=1586799666&p=1
希望可以寫個小工具做到這樣的功能
![*[討論]問一個有關於LISP選集的問題 J0169a](https://2img.net/h/i703.photobucket.com/albums/ww33/op90op/J0169a.jpg)
http://www.wretch.cc/album/show.php?i=lin19800617&b=1&f=1586799665&p=0
修改後-
![*[討論]問一個有關於LISP選集的問題 J0169b](https://2img.net/h/i703.photobucket.com/albums/ww33/op90op/J0169b.jpg)
http://www.wretch.cc/album/show.php?i=lin19800617&b=1&f=1586799666&p=1
希望可以寫個小工具做到這樣的功能
Tiger&蘋果爸 在 2009-01-22, 14:01 作了第 1 次修改 (原因 : 補上貼圖)
AutoCAD顧問 :: 技術(發言等級:一般會員) :: :: 進階討論
第1頁(共1頁)
這個論壇的權限:
您 無法 在這個版面回復文章