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

[已解決]LISP的寫法請教

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

[已解決]LISP的寫法請教

發表 由 adslwang 于 2011-05-27, 16:59

新手練習,以下煩請教請高手指點一二:
1.參考參考書一般都是選擇集比較多,點位的範例似乎比較少,所以我想問
如果 (setq pp1 (getpoint "第1點:"))
(setq pp2 (getpoint "下1點:"))
有什麼方法可以以LISP求得這兩點的距離?(因為會有方向性跟角度點的問題)

2.請問LINE及PLINE指令的LISP可以在資料夾內找的到嘛?
(PS:一直想要去模擬它 可是再怎麼用都試不成功)
3.我想將下面的pline
(command "pline")
(setq pp2 (getpoint "第1點:"))
(while pp2 (command pp2)
(setq pp2 (getpoint pp2 "下1點:"))
)
(command "")
(command "move" "cp" ) )
上面那一段 是我要連同框把內容物移走 也就是說有一個圖形 被包在pline不規則多邊形框內的圖形 有方什麼方法可以取得點位並帶入MOVE的指令中呢?或者要採用其它的方法呢?



Tiger&蘋果爸 在 2011-05-30, 02:57 作了第 4 次修改 (原因 : 將主題顏色改為無)
avatar
adslwang
高級會員
高級會員

文章總數 : 372
年齡 : 38
來自 : 台南
職業 : 自由業
愛好 : 電腦、旅行
個性 : 樂觀
使用年資 : 1年
使用版本 : 2009
積分 : 17
經驗值 : 4517
威望值 : 355
回帖精華 : 1
注冊日期 : 2008-10-02
藍鵲88號
男 處女座 馬

回頂端 向下

回復: [已解決]LISP的寫法請教

發表 由 lsj 于 2011-05-28, 08:12

1. (distance pt1 pt2)
2. 就是模擬它,如(command "line" pt1 pt2 "")
3. 請參考,依自己的需求再完善
(defun c:test()
(setq osm (getvar "osmode"))

(setq tsort '())
(setq pt1 (getpoint "\n第一點:"))
(setq tsort (cons pt1 tsort))
(vl-cmdf "pline" pt1)
(while (setq pt2 (getpoint pt1 "\n下一點:"))
(vl-cmdf pt2)
(setq tsort (cons pt2 tsort))
(setq pt1 pt2)
)
(vl-cmdf "c")
(setq ssl (entlast))

(setq ss (ssget "wp" tsort))
(if (/= ss nil)
(progn
(vl-cmdf "move" ss ssl "")
(prompt "\指定基準點:")
(while (= (logand (getvar "CmdActive") 1) 1) (command pause))
)
)

(setvar "osmode" osm)
(prin1)
)

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


Tiger&蘋果爸 在 2011-05-30, 02:58 作了第 1 次修改 (原因 : 加分囉~)
avatar
lsj
初級會員
初級會員

文章總數 : 43
年齡 : 52
來自 : 桃園
職業 : 營建工程
愛好 :
個性 :
使用年資 : 10↑
使用版本 : 2008
積分 : 2
經驗值 : 2825
威望值 : 104
注冊日期 : 2010-06-28
男 水瓶座 龍

回頂端 向下

回復: [已解決]LISP的寫法請教

發表 由 adslwang 于 2011-05-28, 09:50

前輩,受教了謝謝您 都有獲得解決了 竊喜

其實我是要用來加入extrim來修剪局部的圖檔,沒有這個的話會浪費我很多時間再修邊框

不過再請教一下(setq tsort '()) 第一次看到setq之後的括弧也可以用空的 這有什麼特別的功能 還有我看書上有很多座標串列都會加入前面那一點 是所有的座標都要加入那一點嘛?

再次謝謝您的幫忙 感動



adslwang 在 2011-05-28, 09:53 作了第 1 次修改 (原因 : 修改文字)
avatar
adslwang
高級會員
高級會員

文章總數 : 372
年齡 : 38
來自 : 台南
職業 : 自由業
愛好 : 電腦、旅行
個性 : 樂觀
使用年資 : 1年
使用版本 : 2009
積分 : 17
經驗值 : 4517
威望值 : 355
回帖精華 : 1
注冊日期 : 2008-10-02
藍鵲88號
男 處女座 馬

回頂端 向下

回復: [已解決]LISP的寫法請教

發表 由 lsj 于 2011-05-28, 10:25

(setq tsort '()) = (setq tsort nil)

指令: (setq a '(1 1))
(1 1)

指令: (setq b (list 1 1))
(1 1)

指令: (setq c '())
nil

指令: (setq d (list))
nil
avatar
lsj
初級會員
初級會員

文章總數 : 43
年齡 : 52
來自 : 桃園
職業 : 營建工程
愛好 :
個性 :
使用年資 : 10↑
使用版本 : 2008
積分 : 2
經驗值 : 2825
威望值 : 104
注冊日期 : 2010-06-28
男 水瓶座 龍

回頂端 向下

回復: [已解決]LISP的寫法請教

發表 由 adslwang 于 2011-05-28, 14:36

lsj 寫到:(setq tsort '()) = (setq tsort nil)

指令: (setq a '(1 1))
(1 1)

指令: (setq b (list 1 1))
(1 1)

指令: (setq c '())
nil

指令: (setq d (list))
nil

前輩,您說的很詳細,謝謝您的指教 竊喜
avatar
adslwang
高級會員
高級會員

文章總數 : 372
年齡 : 38
來自 : 台南
職業 : 自由業
愛好 : 電腦、旅行
個性 : 樂觀
使用年資 : 1年
使用版本 : 2009
積分 : 17
經驗值 : 4517
威望值 : 355
回帖精華 : 1
注冊日期 : 2008-10-02
藍鵲88號
男 處女座 馬

回頂端 向下

回復: [已解決]LISP的寫法請教

發表 由 Tiger&蘋果爸 于 2011-05-30, 09:45

若是要使用EXTRIM
之前我有試過使用巨集(連續指令)
你可以試試看合不合用~

矩形修剪巨集語法:
^C^CRECTANG;\\EXTRIM;L;\ERASE;L;;



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

文章總數 : 17008
年齡 : 41
來自 : 台北市文山區
職業 : AutoCAD顧問
愛好 : 蹓狗/戶外活動/拍照
個性 : 幽默/樂觀/善良
使用年資 : 15↑
使用版本 : AutoCAD 2016
經驗值 : 63604
威望值 : 12622
注冊日期 : 2008-04-23
2D基礎函授 2D進階函授 3D基礎函授 顧問外掛程式 經典問與答讀者 藍鵲1號
2009聚會勳章 2010聚會勳章 2011聚會勳章 2012聚會勳章 2013勳章-2D基礎 2014聚會勳章 2015聚會勳章 2016聚會勳章 串連貼紙成功 男 水瓶座 兔

http://mypaper.pchome.com.tw/kv1012tiger

回頂端 向下

高手雲集的地方!!

發表 由 YU HSIANG 于 2011-05-30, 14:45

這裡真的是高手雲集的地方啊!!
看著LISP的語法,我都要頭昏了~
不過,我還是可以使用蘋果爸老師的巨集,
謝謝您的提供! 開心
avatar
YU HSIANG
初級會員
初級會員

文章總數 : 140
年齡 : 39
來自 : 新北市
職業 : 繪圖
愛好 : 上網
個性 :
使用年資 : 12
使用版本 : AUTO CAD 2010
積分 : 9
經驗值 : 2982
威望值 : 195
注冊日期 : 2011-05-05
顧問外掛程式 經典問與答讀者 藍鵲52號
2011聚會勳章 2012聚會勳章 2013勳章-2D基礎 2014聚會勳章 女 巨蟹座 馬

回頂端 向下

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


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