[討論]LISP 求交點
+23
ann11
lifexist
老水牛
leoneriol
yaochanlee
saycad
ji2342
tan866
denniskc
jimmulu
hhtsung
蜜柑喵喵
lingo_st
zbato
IT農夫
Tiger&蘋果爸
835
HEMOS
Jakie
andychen
tarpon
ginse0727
s924310
27 posters
AutoCAD顧問 :: 技術(發言等級:一般會員) :: :: 進階討論
第1頁(共2頁)
[討論]LISP 求交點
在LISP裡面
有inters 可以求兩條線的交點
那有沒有其他 函數 可以求不同的交點
例如:
1.求 兩個圓的交點 (可能有一個交點或二個交點) 再選擇其中一個交點
2.求 一直線碰一圓的交點 (最近交點或 最遠交點)
有inters 可以求兩條線的交點
那有沒有其他 函數 可以求不同的交點
例如:
1.求 兩個圓的交點 (可能有一個交點或二個交點) 再選擇其中一個交點
2.求 一直線碰一圓的交點 (最近交點或 最遠交點)
s924310- 初級會員
- 文章總數 : 31
年齡 : 33
來自 : 高雄
職業 : 電腦繪圖
愛好 : 看熱鬧
個性 : 隨性
使用年資 : 4年
使用版本 : 2006
積分 : 2
經驗值 : 5655
威望值 : 27
注冊日期 : 2009-09-21
回復: [討論]LISP 求交點
以下程式提供你參考,程式可以取出相接二物件的交點,不過交點取出後,還必需需加一些比較判斷式才能達到你的目的,你自己再依需求修改吧.
(以下回覆可見
(以下回覆可見
ginse0727 在 周六 23 7月 - 4:57 作了第 1 次修改 (原因 : 修改)
ginse0727- 高級會員
- 文章總數 : 256
年齡 : 50
來自 : 台北巿
職業 : 帷幕牆
愛好 : 電玩,漫畫,網路小說
個性 : 宅男/正直/死腦筋
使用年資 : 退伍後工作迄今,10年以上
使用版本 : 2012
積分 : 14
經驗值 : 6829
威望值 : 500
發帖精華 : 1
注冊日期 : 2010-07-13
阿助爸 likes this post
回復: [討論]LISP 求交點
看看學習一下物件交叉點lisp取出方法
tarpon- 中級會員
- 文章總數 : 209
年齡 : 34
來自 : 台北
職業 : 設計
愛好 : 打球
個性 : 溫和
使用年資 : 5年
使用版本 : 2006
積分 : 6
經驗值 : 6252
威望值 : 263
注冊日期 : 2010-07-01
回復: [討論]LISP 求交點
s924310 寫到:在LISP裡面
有inters 可以求兩條線的交點
那有沒有其他 函數 可以求不同的交點
例如:
1.求 兩個圓的交點 (可能有一個交點或二個交點) 再選擇其中一個交點
2.求 一直線碰一圓的交點 (最近交點或 最遠交點)
兩個圓的交叉點,我寫過。
直線和圓的交叉點,我也寫過。
改天,找程式碼找回來,再po上來跟大家分享。
andychen- 該用戶停權中
- 文章總數 : 186
年齡 : 40
經驗值 : 6033
威望值 : 71
注冊日期 : 2010-04-09
回復: [討論]LISP 求交點
土木工程再使用上很平常 也很實用
下載下載 我來了
下載下載 我來了
Jakie- 初級會員
- 文章總數 : 80
年齡 : 47
來自 : Tainan Baiho
職業 : 土木
愛好 : 自然藝術
個性 : 有點品味,有點走味~^.^
使用年資 : 8年
使用版本 : 2018
積分 : 1
經驗值 : 5513
威望值 : 87
注冊日期 : 2010-10-28
回復: [討論]LISP 求交點
程式語法、思考邏輯,值得觀摩學習!!
HEMOS- 榮譽顧問
- 文章總數 : 896
年齡 : 51
來自 : 台北
職業 : 土木結構
愛好 : 攝影×音樂×電影
個性 : 和善
使用年資 : 20 years ↑
使用版本 : 老手待忘!
積分 : 27
最佳解答 : 3
經驗值 : 10330
威望值 : 1664
回帖精華 : 1
注冊日期 : 2009-02-23
回復: [討論]LISP 求交點
請問此程式能排除兩物件「本無交點」的情況或「因故抓不到交點」的情況嗎?
(我的程度太低了....看不太懂程式的語法、內容....
謝謝你讓我開了眼界....)
(我的程度太低了....看不太懂程式的語法、內容....
謝謝你讓我開了眼界....)
835- 初級會員
- 文章總數 : 36
年齡 : 46
來自 : 台中
職業 : 工程
愛好 : 打球
個性 : 沈靜
使用年資 : 6
使用版本 : 2008
積分 : 2
經驗值 : 4937
威望值 : 59
注冊日期 : 2012-01-02
ginse0727- 高級會員
- 文章總數 : 256
年齡 : 50
來自 : 台北巿
職業 : 帷幕牆
愛好 : 電玩,漫畫,網路小說
個性 : 宅男/正直/死腦筋
使用年資 : 退伍後工作迄今,10年以上
使用版本 : 2012
積分 : 14
經驗值 : 6829
威望值 : 500
發帖精華 : 1
注冊日期 : 2010-07-13
回復: [討論]LISP 求交點
835 寫到:請問此程式能排除兩物件「本無交點」的情況或「因故抓不到交點」的情況嗎?
(我的程度太低了....看不太懂程式的語法、內容....
謝謝你讓我開了眼界....)
其實這種VLA(VLISP ActiveX),比起用AutoLISP,感覺強很多可以更快達到目的,
我自己也不是很熟,也還在學習中,我把你問題中提的[本無交點],[因故抓不到交點]等情況,
程式內容做了些修改,提供給你參考看看.
(如果你對lisp還不是很熟,建議先學AutoLISP,會比較容易上手)
以下回覆可見
Tiger&蘋果爸 寫到: 謝謝熱心程式分享~< 積分 +1>
[公告]關於團隊成員的回文及貢獻
Tiger&蘋果爸 在 周一 23 1月 - 13:44 作了第 1 次修改 (原因 : 非常專業喔~)
ginse0727- 高級會員
- 文章總數 : 256
年齡 : 50
來自 : 台北巿
職業 : 帷幕牆
愛好 : 電玩,漫畫,網路小說
個性 : 宅男/正直/死腦筋
使用年資 : 退伍後工作迄今,10年以上
使用版本 : 2012
積分 : 14
經驗值 : 6829
威望值 : 500
發帖精華 : 1
注冊日期 : 2010-07-13
回復: [討論]LISP 求交點
首先跟各位拜個晚年,恭祝大家龍年行大運~
再來感謝ginse0727大大在過年期間還撥冗改寫程式以回覆小弟的問題,
因小弟閒賦在家時鮮少上網,故遲至今日才致上感謝之意,
希望您別介意...
而關於程式本身,小弟擬再請教幾個問題,希望ginse0727大大與版上其他先進能再撥冗釋疑:
1.若我想自學VLA,要如何入門呢?坊間有書籍或補習班可供參考嗎?
2.函數 vlax-get-acad-object 根據書中(吳永進、林美櫻老師著)之解釋,為「取得目前AutoCAD作業的頂層應用程式」,這是什麼意思呢?
3.函數 vla-get-ActiveDocument 與 vla-get-modelspace 其用法與目的為何?而程式中您有一行如下:
(setq mspace (vla-get-modelspace acaddocument));但下面之程式似乎並未應用到變數 mspace ,那它必須存在嗎?
4.副程式 (int_list) 中,有運用到 vlax-safearray-get-u-bound、 vlax-safearray-get-l-bound 、vlax-safearray-get-element的函數,能否為小弟解釋說明其用法、目的與使用時機?(書上的說明太過簡略,我實在是無法理解....)
最後,小弟也現醜一下,以我能理解的方式,附上對兩物件「本無交點」或「因故抓不到交點」時避免程式錯誤的寫法,希望版上先進能不吝指教:
再來感謝ginse0727大大在過年期間還撥冗改寫程式以回覆小弟的問題,
因小弟閒賦在家時鮮少上網,故遲至今日才致上感謝之意,
希望您別介意...
而關於程式本身,小弟擬再請教幾個問題,希望ginse0727大大與版上其他先進能再撥冗釋疑:
1.若我想自學VLA,要如何入門呢?坊間有書籍或補習班可供參考嗎?
2.函數 vlax-get-acad-object 根據書中(吳永進、林美櫻老師著)之解釋,為「取得目前AutoCAD作業的頂層應用程式」,這是什麼意思呢?
3.函數 vla-get-ActiveDocument 與 vla-get-modelspace 其用法與目的為何?而程式中您有一行如下:
(setq mspace (vla-get-modelspace acaddocument));但下面之程式似乎並未應用到變數 mspace ,那它必須存在嗎?
4.副程式 (int_list) 中,有運用到 vlax-safearray-get-u-bound、 vlax-safearray-get-l-bound 、vlax-safearray-get-element的函數,能否為小弟解釋說明其用法、目的與使用時機?(書上的說明太過簡略,我實在是無法理解....)
最後,小弟也現醜一下,以我能理解的方式,附上對兩物件「本無交點」或「因故抓不到交點」時避免程式錯誤的寫法,希望版上先進能不吝指教:
- 代碼:
(defun c:int ()
(vl-load-com)
(start_lsp)
(setq en-1 (car (entsel "\n選取擬求交點之主物件:")))
(setq enx-1 (vlax-ename->vla-object en-1))
(setq en-2 (car (entsel "\n選取擬求交點之從屬物件:")))
(setq enx-2 (vlax-ename->vla-object en-2))
(setq intvar (vla-intersectwith enx-1 enx-2 acextendnone))
(if (safearray-value (vlax-variant-value intvar)) ;;加入本行可去除抓不到交點之情況
(progn
(setq listpp (vlax-safearray->list (vlax-variant-value intvar)))
(setq ij 1
xyzlist nil
intpp_list-ij
nil
)
(foreach val listpp
(setq xyzlist (cons val xyzlist))
(if (= (rem ij 3) 0)
(progn
(setq xyzlist (reverse xyzlist))
(setq intpp_list-ij
(cons xyzlist intpp_list-ij)
)
(setq xyzlist nil)
)
)
(setq ij (1+ ij))
)
)
(alert "找不到交點!!")
)
(foreach pp intpp_list-ij
(command "circle" pp 2)
) ;;僅以畫圓的方式標示交點位置,並無其他意義
(end_lsp)
(prin1)
)
835- 初級會員
- 文章總數 : 36
年齡 : 46
來自 : 台中
職業 : 工程
愛好 : 打球
個性 : 沈靜
使用年資 : 6
使用版本 : 2008
積分 : 2
經驗值 : 4937
威望值 : 59
注冊日期 : 2012-01-02
回復: [討論]LISP 求交點
835大大您好,以下回覆您的問題:
1.VLA我個人不曉得坊間哪裡有在上,之前我是在翔虹的吳永進老師那學AutoLISP的.你可以在網上查看看,我個人是覺得教的很好哦!不過VLA只有教到半天的課,算入門吧後面還是要靠自學.
我目前參考的也是(吳永進、林美櫻老師著)這一本.您也可以上明經通道網站,上面也不少的資料可供查詢.
2.字面上的解釋是取得AutoCAD的母體物件,我找不到更好的解釋,個人粗淺的見解是:
取得當前AutoCAD應用程式的組合物件,就是先取出目前AutoCAD這一個大包裏,接著再看你要自包裏裡取出什麼的集合物件,
例如說再取出當前作用中的圖檔物件,而圖檔物件裡又包含著模型空間和圖紙空間,而模型空間裡又有著圖層,圖塊,標註....等等.
你可以參考AutoCAD ActiveX物件模型架構圖.
3.關於第3個問題,說來倒是有點不好意思,因為當時是看到版主提出需求,我想練練功就找相關的範例,剛好找了一個vla-IntersectWith函數,這個函數的範例可以解決版主的需求,
所以我就拿了這個範例來修改,因為範例是進入到模型空間裡畫一個圓和線,再求二物件的交點,我把它改寫成用選取的,所以倒是不需要下列這一行了,倒是被眼尖的您給發現了.
(setq acadobject(vlax-get-acad-object) acaddocument(vla-get-activedocument acadobject) mspace(vla-get-modelspace acaddocument))
不過如果是要作圖,可少不了上面這一段,依序為取得AutoCAD應用程式物件,取得當前作用的圖檔,取得模型空間集合物件,
假設如果要作一個圓在模型空間,那就會再加上(setq xobj(vla-addcircle mspace(vlax-3d-point'(50 30 0) 12.5))
4.要請你參考程式內容,因為求出的intpoints裡面是一個一維陣列,所有點的x,y,z,元素都依序放在陣列中,
假設我今天是作一個圓,圓上有一條線,交點有二個(1.0,2.0,0.0) (3.0,4.0,0.0),那intpoints裡會依序排列形成(1.0,2.0,0.0,3.0,4.0,0.0),共有六個元素.
(vlax-safearray-get-u-bound intpoints 1) 指的是取出陣列元素的頂部索引第1位元素,也就是0,
(vlax-safearray-get-l-bound intpoints 1) 指的是取出陣列元素的底部索引值1位元素,也就是5,
(vlax-safearray-get-element intpoints 3) 是依序索引值取出陣列中元素的值,得到的值會是3.0
程式中副程式的件用是選取的二物件有交點時,就列印出所有的交點,沒交點時(指的是錯選,或是選到不對的物件)則重新選取.
雖然我還沒能細看您的程式,但看來您的功力也挺強的,先前建議學習的一番話倒是顯得有點好笑了,
因為我自己也是半桶水,還在學習中可能回答的也不是很好,還請多包含.
有空再來研究一下您程式的邏輯,互相交流學習一下.
1.VLA我個人不曉得坊間哪裡有在上,之前我是在翔虹的吳永進老師那學AutoLISP的.你可以在網上查看看,我個人是覺得教的很好哦!不過VLA只有教到半天的課,算入門吧後面還是要靠自學.
我目前參考的也是(吳永進、林美櫻老師著)這一本.您也可以上明經通道網站,上面也不少的資料可供查詢.
2.字面上的解釋是取得AutoCAD的母體物件,我找不到更好的解釋,個人粗淺的見解是:
取得當前AutoCAD應用程式的組合物件,就是先取出目前AutoCAD這一個大包裏,接著再看你要自包裏裡取出什麼的集合物件,
例如說再取出當前作用中的圖檔物件,而圖檔物件裡又包含著模型空間和圖紙空間,而模型空間裡又有著圖層,圖塊,標註....等等.
你可以參考AutoCAD ActiveX物件模型架構圖.
3.關於第3個問題,說來倒是有點不好意思,因為當時是看到版主提出需求,我想練練功就找相關的範例,剛好找了一個vla-IntersectWith函數,這個函數的範例可以解決版主的需求,
所以我就拿了這個範例來修改,因為範例是進入到模型空間裡畫一個圓和線,再求二物件的交點,我把它改寫成用選取的,所以倒是不需要下列這一行了,倒是被眼尖的您給發現了.
(setq acadobject(vlax-get-acad-object) acaddocument(vla-get-activedocument acadobject) mspace(vla-get-modelspace acaddocument))
不過如果是要作圖,可少不了上面這一段,依序為取得AutoCAD應用程式物件,取得當前作用的圖檔,取得模型空間集合物件,
假設如果要作一個圓在模型空間,那就會再加上(setq xobj(vla-addcircle mspace(vlax-3d-point'(50 30 0) 12.5))
4.要請你參考程式內容,因為求出的intpoints裡面是一個一維陣列,所有點的x,y,z,元素都依序放在陣列中,
假設我今天是作一個圓,圓上有一條線,交點有二個(1.0,2.0,0.0) (3.0,4.0,0.0),那intpoints裡會依序排列形成(1.0,2.0,0.0,3.0,4.0,0.0),共有六個元素.
(vlax-safearray-get-u-bound intpoints 1) 指的是取出陣列元素的頂部索引第1位元素,也就是0,
(vlax-safearray-get-l-bound intpoints 1) 指的是取出陣列元素的底部索引值1位元素,也就是5,
(vlax-safearray-get-element intpoints 3) 是依序索引值取出陣列中元素的值,得到的值會是3.0
程式中副程式的件用是選取的二物件有交點時,就列印出所有的交點,沒交點時(指的是錯選,或是選到不對的物件)則重新選取.
雖然我還沒能細看您的程式,但看來您的功力也挺強的,先前建議學習的一番話倒是顯得有點好笑了,
因為我自己也是半桶水,還在學習中可能回答的也不是很好,還請多包含.
有空再來研究一下您程式的邏輯,互相交流學習一下.
ginse0727- 高級會員
- 文章總數 : 256
年齡 : 50
來自 : 台北巿
職業 : 帷幕牆
愛好 : 電玩,漫畫,網路小說
個性 : 宅男/正直/死腦筋
使用年資 : 退伍後工作迄今,10年以上
使用版本 : 2012
積分 : 14
經驗值 : 6829
威望值 : 500
發帖精華 : 1
注冊日期 : 2010-07-13
回復: [討論]LISP 求交點
ginse0727大大,原來您是同門師兄,幸會了
希望往後可以多多交流囉~
小弟想再向師兄請教:
何謂「安全陣列的上、下限值」?
您在上一篇回復之第4點裡,所舉的範例,假設圓與線有兩個交點(1.0,2.0,0.0) (3.0,4.0,0.0), 那intpoints裡會依序排列形成(1.0,2.0,0.0,3.0,4.0,0.0),共有六個元素.
那為何 (vlax-safearray-get-u-bound intpoints 1) 會是0,
而(vlax-safearray-get-l-bound intpoints 1) 會是5呢?
這個部分小弟看不懂....,能請師兄再補充說明嗎?
而(vlax-safearray-get-element intpoints 3) 是依據索引值取出陣列中元素的值,那其索引值是從0開始嗎?
謝謝
希望往後可以多多交流囉~
小弟想再向師兄請教:
何謂「安全陣列的上、下限值」?
您在上一篇回復之第4點裡,所舉的範例,假設圓與線有兩個交點(1.0,2.0,0.0) (3.0,4.0,0.0), 那intpoints裡會依序排列形成(1.0,2.0,0.0,3.0,4.0,0.0),共有六個元素.
那為何 (vlax-safearray-get-u-bound intpoints 1) 會是0,
而(vlax-safearray-get-l-bound intpoints 1) 會是5呢?
這個部分小弟看不懂....,能請師兄再補充說明嗎?
而(vlax-safearray-get-element intpoints 3) 是依據索引值取出陣列中元素的值,那其索引值是從0開始嗎?
謝謝
835- 初級會員
- 文章總數 : 36
年齡 : 46
來自 : 台中
職業 : 工程
愛好 : 打球
個性 : 沈靜
使用年資 : 6
使用版本 : 2008
積分 : 2
經驗值 : 4937
威望值 : 59
注冊日期 : 2012-01-02
回復: [討論]LISP 求交點
抱歉!忙中有錯,寫顛倒了,造成你的困惑,不好意思,
回到交點有二個(1.0,2.0,0.0) (3.0,4.0,0.0),那intpoints裡會形成(1.0 2.0 0.0 3.0 4.0 0.0),串列中順序排列從 0 到 5,一共有六個元素.
(vlax-safearray-get-u-bound intpoints 1); 指的是取出1維陣列的頂部索引值,也就是5,
(vlax-safearray-get-l-bound intpoints 1); 指的是取出1維陣列的底部索引值,也就是0,
通常會用頂部索引值-底部索引值後再加1來求出陣列中到底有多少個元素.
例如: (5-0)+1=6
(vlax-safearray-get-element intpoints 3), 得到的值會是3.0
(vlax-safearray-get-element intpoints 0), 得到的值會是1.0
是的,索引值是自0開始.
你可以參考以下網址說明,
vlax-safearray-get-l-bound
http://www.mjtd.com/object/autolisp/ALR.default.370.htm
vlax-safearray-get-u-bound
http://www.mjtd.com/object/autolisp/ALR.default.371.htm
希望這次的說明有比較清楚.
回到交點有二個(1.0,2.0,0.0) (3.0,4.0,0.0),那intpoints裡會形成(1.0 2.0 0.0 3.0 4.0 0.0),串列中順序排列從 0 到 5,一共有六個元素.
(vlax-safearray-get-u-bound intpoints 1); 指的是取出1維陣列的頂部索引值,也就是5,
(vlax-safearray-get-l-bound intpoints 1); 指的是取出1維陣列的底部索引值,也就是0,
通常會用頂部索引值-底部索引值後再加1來求出陣列中到底有多少個元素.
例如: (5-0)+1=6
(vlax-safearray-get-element intpoints 3), 得到的值會是3.0
(vlax-safearray-get-element intpoints 0), 得到的值會是1.0
是的,索引值是自0開始.
你可以參考以下網址說明,
vlax-safearray-get-l-bound
http://www.mjtd.com/object/autolisp/ALR.default.370.htm
vlax-safearray-get-u-bound
http://www.mjtd.com/object/autolisp/ALR.default.371.htm
希望這次的說明有比較清楚.
ginse0727- 高級會員
- 文章總數 : 256
年齡 : 50
來自 : 台北巿
職業 : 帷幕牆
愛好 : 電玩,漫畫,網路小說
個性 : 宅男/正直/死腦筋
使用年資 : 退伍後工作迄今,10年以上
使用版本 : 2012
積分 : 14
經驗值 : 6829
威望值 : 500
發帖精華 : 1
注冊日期 : 2010-07-13
回復: [討論]LISP 求交點
感謝師兄ginse0727大大不厭其煩的說明,
我總算搞懂這幾個函數的用法了,
再一次致上十二萬分的謝意!!
我總算搞懂這幾個函數的用法了,
再一次致上十二萬分的謝意!!
835- 初級會員
- 文章總數 : 36
年齡 : 46
來自 : 台中
職業 : 工程
愛好 : 打球
個性 : 沈靜
使用年資 : 6
使用版本 : 2008
積分 : 2
經驗值 : 4937
威望值 : 59
注冊日期 : 2012-01-02
回復: [討論]LISP 求交點
不客氣,教學相長,我其實也從修改程式中,學習到了新用法.
ginse0727- 高級會員
- 文章總數 : 256
年齡 : 50
來自 : 台北巿
職業 : 帷幕牆
愛好 : 電玩,漫畫,網路小說
個性 : 宅男/正直/死腦筋
使用年資 : 退伍後工作迄今,10年以上
使用版本 : 2012
積分 : 14
經驗值 : 6829
威望值 : 500
發帖精華 : 1
注冊日期 : 2010-07-13
回復: [討論]LISP 求交點
這部份對我們來說很深奧,謝謝你們的討論分享喔~ginse0727 寫到:不客氣,教學相長,我其實也從修改程式中,學習到了新用法.
____________________________________________________________________________________
👉快速比例設定與出圖技巧-線上課程(點我)👈
回復: [討論]LISP 求交點
嘿!最重要就是要感謝蘋果爸啦!提供這麼一塊好的論壇,Tiger&蘋果爸 寫到:這部份對我們來說很深奧,謝謝你們的討論分享喔~ginse0727 寫到:不客氣,教學相長,我其實也從修改程式中,學習到了新用法.
還有眾位高手們無私的分享資源.
讓我在這裡學到了很多有用的技巧,
提出困惑已久的問題也有熱心的高手能幫忙解答,
更能和同好們討論一些問題,找出更好的解決方法,
沒事到這裡多晃晃,真的能在AutoCAD的學習上,少走很多的冤枉路.
國外AutoCAD的論壇也不少,但礙於自己英文能力不佳,所以要獲得有幫助的資訊就比較辛苦,
希望顧問論壇可以一直的持續成長,造福我們有需要的人,提昇我們的競爭力!
ginse0727- 高級會員
- 文章總數 : 256
年齡 : 50
來自 : 台北巿
職業 : 帷幕牆
愛好 : 電玩,漫畫,網路小說
個性 : 宅男/正直/死腦筋
使用年資 : 退伍後工作迄今,10年以上
使用版本 : 2012
積分 : 14
經驗值 : 6829
威望值 : 500
發帖精華 : 1
注冊日期 : 2010-07-13
回復: [討論]LISP 求交點
是啊!ginse0727 寫到:嘿!最重要就是要感謝蘋果爸啦!提供這麼一塊好的論壇,
還有眾位高手們無私的分享資源.
讓我在這裡學到了很多有用的技巧,
提出困惑已久的問題也有熱心的高手能幫忙解答,
更能和同好們討論一些問題,找出更好的解決方法,
沒事到這裡多晃晃,真的能在AutoCAD的學習上,少走很多的冤枉路
國外AutoCAD的論壇也不少,但礙於自己英文能力不佳,所以要獲得有幫助的資訊就比較辛苦,
希望顧問論壇可以一直的持續成長,造福我們有需要的人,提昇我們的競爭力!
這正是建立論壇的初衷,因為互助力量大~
為了論壇能永續下去,大家請繼續一起加油吧~
____________________________________________________________________________________
👉快速比例設定與出圖技巧-線上課程(點我)👈
感恩!!!
真是不錯的園地,我又成長了,感謝!!!
IT農夫- 初級會員
- 文章總數 : 38
年齡 : 54
來自 : 雲林
職業 : 資訊講師
愛好 : 程式設計
個性 : 熱情隨和
使用年資 : 20
使用版本 : AutoCAD 2014
積分 : 1
經驗值 : 4993
威望值 : 12
注冊日期 : 2011-09-24
在一次的成長囉!!!
我總覺得這是一個相當難得的互動園地,大家要努力成長維持下去阿!!!
IT農夫- 初級會員
- 文章總數 : 38
年齡 : 54
來自 : 雲林
職業 : 資訊講師
愛好 : 程式設計
個性 : 熱情隨和
使用年資 : 20
使用版本 : AutoCAD 2014
積分 : 1
經驗值 : 4993
威望值 : 12
注冊日期 : 2011-09-24
回復: [討論]LISP 求交點
每次來這裏都可以學習到新知識
zbato- 初級會員
- 文章總數 : 44
年齡 : 39
來自 : 台南
職業 : 會計
愛好 : 看電視
個性 : 普通
使用年資 : 1年多
使用版本 : 2006
積分 : 2
經驗值 : 5577
威望值 : 60
注冊日期 : 2010-03-26
回復: [討論]LISP 求交點
喜歡來論壇除了可以挖到很多寶以外,大家的熱心協助溫馨感,跟腦力激盪後那種共同奮戰最後過關達陣的感受,這種革命情感也很吸引人,希望能有機會一職在這邊跟各位先進一起成長
____________________________________________________________________________________
沒有功勞也有苦勞,沒有苦勞也有疲勞的年代已經過去
現在是...........................................
沒有功勞直接就是個屁,連個屁都不是,那就真的很疲勞了
大家一起努力吧,努力別落到連個屁都不是................
lingo_st- 中級會員
- 文章總數 : 211
年齡 : 60
來自 : 新北市
職業 : 營造,建設
愛好 : 學習,服務,電腦軟硬體
個性 : 正直,達觀且無可救藥的雞婆
使用年資 : 使用12年但真的是新手
使用版本 : 2012,2013
積分 : 6
經驗值 : 5965
威望值 : 271
注冊日期 : 2011-12-18
回復: [討論]LISP 求交點
我是初學者 請讓我向大大們學習
LISP很多語法看不懂
LISP很多語法看不懂
蜜柑喵喵- 一般會員
- 文章總數 : 29
年齡 : 34
來自 : 台北
職業 : CAD繪圖員
愛好 : 動漫
個性 : 隨和
使用年資 : 新手初學
使用版本 : 新手初學
經驗值 : 4743
威望值 : 12
注冊日期 : 2012-04-30
回復: [討論]LISP 求交點
這篇內容有比較進階,如果有心要學,妳可以先爬爬文,我記得蘋果爸還有明大大,有提供一個初階學習的網址,先從基礎的開始才不會破壞了學習的興趣.
順便貼了位址,方便妳連結.
https://www.autocad-tw.com/t5071-topic
https://www.autocad-tw.com/t13664-topic
順便貼了位址,方便妳連結.
https://www.autocad-tw.com/t5071-topic
https://www.autocad-tw.com/t13664-topic
Tiger&蘋果爸 在 周一 27 8月 - 10:44 作了第 2 次修改 (原因 : 新增連結)
ginse0727- 高級會員
- 文章總數 : 256
年齡 : 50
來自 : 台北巿
職業 : 帷幕牆
愛好 : 電玩,漫畫,網路小說
個性 : 宅男/正直/死腦筋
使用年資 : 退伍後工作迄今,10年以上
使用版本 : 2012
積分 : 14
經驗值 : 6829
威望值 : 500
發帖精華 : 1
注冊日期 : 2010-07-13
回復: [討論]LISP 求交點
忘掉在那裡看到的一個函式,註解是試用改進後加上的
(setq en1 (cdr (assoc -1 (entget (car (entsel "\n選取物件一:"))))))
(setq en2 (cdr (assoc -1 (entget (car (entsel "\n選取物件二:"))))))
(objinters en1 en2 0)
- 代碼:
;;Intersectwith是對VLAOBJ物件的方法,回覆交點串列
;; ee = acextendnone or 0 = 物件都不延伸
;; 1 = 物件1延伸
;; 2 = 物件2延伸
;; 3 = 物件都延伸
(defun objinters (ent1 ent2 ee / IPTS PTS)
(vl-load-com)
(setq IPTS (vla-intersectwith
(vlax-ename->vla-object ent1)
(vlax-ename->vla-object ent2)
ee
)
IPTS (vlax-variant-value IPTS)
)
(if (> (vlax-safearray-get-u-bound IPTS 1) 0)
(progn
(setq IPTS (vlax-safearray->list IPTS))
(while (> (length IPTS) 0)
(setq PTS (cons (list (car IPTS) (cadr IPTS) (caddr IPTS)) PTS)
IPTS (cdddr IPTS)
)
)
)
)
PTS
)
(setq en1 (cdr (assoc -1 (entget (car (entsel "\n選取物件一:"))))))
(setq en2 (cdr (assoc -1 (entget (car (entsel "\n選取物件二:"))))))
(objinters en1 en2 0)
hhtsung 在 周四 27 9月 - 11:39 作了第 1 次修改 (原因 : 忘了加用法)
hhtsung- 初級會員
- 文章總數 : 33
年齡 : 72
來自 : 新北市鶯歌區
職業 : 建築工程
愛好 : 攝影,寫程式,聽音樂
個性 : 內向,不喜歡運動,喜歡動腦
使用年資 : 28
使用版本 : 2017
積分 : 1
經驗值 : 5060
威望值 : 109
注冊日期 : 2011-10-20
AutoCAD顧問 :: 技術(發言等級:一般會員) :: :: 進階討論
第1頁(共2頁)
這個論壇的權限:
您 無法 在這個版面回復文章