[討論]lisp撰寫問題
3 posters
AutoCAD顧問 :: 技術(發言等級:一般會員) :: :: 進階討論
第1頁(共1頁)
[討論]lisp撰寫問題
想請教幾個lisp撰寫問題
1.平常執行複製.移動指令時, 選取物件 - 基準點 - 目標點 ,在未點選目標點時,所選的物件會跟隨十字軸移動, 這在程式內該如何做到 ?
2.複製完的物件該如何取得?
1.平常執行複製.移動指令時, 選取物件 - 基準點 - 目標點 ,在未點選目標點時,所選的物件會跟隨十字軸移動, 這在程式內該如何做到 ?
2.複製完的物件該如何取得?
阿希- 高級會員
- 文章總數 : 348
年齡 : 43
來自 : 台北
職業 : 水電設計
愛好 : autolisp
個性 : 和平主義者
使用年資 : 5
使用版本 : 2008
積分 : 19
經驗值 : 6825
威望值 : 226
發帖精華 : 1
注冊日期 : 2008-09-22
回復: [討論]lisp撰寫問題
個人淺見
1.平常執行複製.移動指令時, 選取物件 - 基準點 - 目標點 ,在未點選目標點時,所選的物件會跟隨十字軸移動, 這在程式內該如何做到
有可能是:
(ssget "p")
netmake、entlast 搭配 grread
2.複製完的物件該如何取得?
(entlast)
1.平常執行複製.移動指令時, 選取物件 - 基準點 - 目標點 ,在未點選目標點時,所選的物件會跟隨十字軸移動, 這在程式內該如何做到
有可能是:
(ssget "p")
netmake、entlast 搭配 grread
2.複製完的物件該如何取得?
(entlast)
adslwang- 高級會員
- 文章總數 : 376
年齡 : 46
來自 : 台南
職業 : 自由業
愛好 : 電腦、旅行
個性 : 樂觀
使用年資 : 1年
使用版本 : 2009
積分 : 17
經驗值 : 7211
威望值 : 356
回帖精華 : 1
注冊日期 : 2008-10-02
回復: [討論]lisp撰寫問題
adslwang 寫到:個人淺見
1.平常執行複製.移動指令時, 選取物件 - 基準點 - 目標點 ,在未點選目標點時,所選的物件會跟隨十字軸移動, 這在程式內該如何做到
有可能是:
(ssget "p")
netmake、entlast 搭配 grread
2.複製完的物件該如何取得?
(entlast)
第一個問題尚未解決 ~ 再試試大大給的意見 ~~
第二個問題 , ENTLAST 是取得上一個完成的"物件",並無法取得所有選集
我的解決方式是,先設立一個空選集SSA, 複製所要的物件SSB, 再計算SSB選集內的數量,利用REPEAT去將SSB選集內的物件放置SSA選集內
最後複製或移動SSA選集 即可
阿希- 高級會員
- 文章總數 : 348
年齡 : 43
來自 : 台北
職業 : 水電設計
愛好 : autolisp
個性 : 和平主義者
使用年資 : 5
使用版本 : 2008
積分 : 19
經驗值 : 6825
威望值 : 226
發帖精華 : 1
注冊日期 : 2008-09-22
回復: [討論]lisp撰寫問題
目前動態顯示很多都用 express tool 內的acetutil.arx 內的公共程式. 如果你有用express tools 的話.就可以直接呼叫函數使用..我附上help讓你下載.
並寫個範圍程式給你參考.
複製後的圖元選集取得.的概念.是先在複製前用entlast .取得圖面上的最後一個圖元..
因為複製後的圖元是新增圖元.所以圖元序會排在 entlast最後一個圖元後面..所以只要搜尋最後一個圖元之後的圖元.
就是你複製後的圖元了.~!! 這個概念.也可用在爆炸後的圖元取得.!!
acetutil 幫助
https://db.tt/VIwVvYPz
acetutil 幫助備用載點:
https://app.box.com/s/s17yyfanurxad3avxkqf7o9yggrhok5x
help幫助用法.
並寫個範圍程式給你參考.
複製後的圖元選集取得.的概念.是先在複製前用entlast .取得圖面上的最後一個圖元..
因為複製後的圖元是新增圖元.所以圖元序會排在 entlast最後一個圖元後面..所以只要搜尋最後一個圖元之後的圖元.
就是你複製後的圖元了.~!! 這個概念.也可用在爆炸後的圖元取得.!!
acetutil 幫助
https://db.tt/VIwVvYPz
acetutil 幫助備用載點:
https://app.box.com/s/s17yyfanurxad3avxkqf7o9yggrhok5x
help幫助用法.
- 代碼:
;問題1
(defun c:tt()
(setvar "cmdecho" 0)
(setq sn1 (entlast)) ;取得複製前最後一個圖元
(setq p2 (acet-ss-drag-move (setq ss (ssget)) (setq p1 (getpoint "\n基準點")) "\n指定第二點" 1))
(command "copy" ss "" p1 p2)
(setvar "cmdecho" 0)
(setq co-ss (ssadd))
(setq en (entnext sn1)) ;開始尋找最後一個圖元的下一個.
(while (/= en nil) ;如果找到.加入選集.一直到最後.
(setq co-ss (ssadd en co-ss))
(setq en (entnext en))
)
(if co-ss (print (sslength co-ss)))
)
shenhung- 高級會員
- 文章總數 : 281
年齡 : 57
來自 : 新北市
職業 : 塑膠模具設計.AUTOLISP
愛好 : 音樂
個性 : 隨和
使用年資 : 18年
使用版本 : 2010
積分 : 15
經驗值 : 8075
威望值 : 1188
注冊日期 : 2009-06-03
回復: [討論]lisp撰寫問題
shenhung 寫到:目前動態顯示很多都用 express tool 內的acetutil.arx 內的公共程式. 如果你有用express tools 的話.就可以直接呼叫函數使用..我附上help讓你下載.
並寫個範圍程式給你參考.
複製後的圖元選集取得.的概念.是先在複製前用entlast .取得圖面上的最後一個圖元..
因為複製後的圖元是新增圖元.所以圖元序會排在 entlast最後一個圖元後面..所以只要搜尋最後一個圖元之後的圖元.
就是你複製後的圖元了.~!! 這個概念.也可用在爆炸後的圖元取得.!!
acetutil 幫助
https://db.tt/VIwVvYPz
acetutil 幫助備用載點:
https://app.box.com/s/s17yyfanurxad3avxkqf7o9yggrhok5x
help幫助用法.
- 代碼:
;問題1
(defun c:tt()
(setvar "cmdecho" 0)
(setq sn1 (entlast)) ;取得複製前最後一個圖元
(setq p2 (acet-ss-drag-move (setq ss (ssget)) (setq p1 (getpoint "\n基準點")) "\n指定第二點" 1))
(command "copy" ss "" p1 p2)
(setvar "cmdecho" 0)
(setq co-ss (ssadd))
(setq en (entnext sn1)) ;開始尋找最後一個圖元的下一個.
(while (/= en nil) ;如果找到.加入選集.一直到最後.
(setq co-ss (ssadd en co-ss))
(setq en (entnext en))
)
(if co-ss (print (sslength co-ss)))
)
前輩研究了解很深 學習中 謝謝
adslwang- 高級會員
- 文章總數 : 376
年齡 : 46
來自 : 台南
職業 : 自由業
愛好 : 電腦、旅行
個性 : 樂觀
使用年資 : 1年
使用版本 : 2009
積分 : 17
經驗值 : 7211
威望值 : 356
回帖精華 : 1
注冊日期 : 2008-10-02
AutoCAD顧問 :: 技術(發言等級:一般會員) :: :: 進階討論
第1頁(共1頁)
這個論壇的權限:
您 無法 在這個版面回復文章