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

Join the forum, it's quick and easy

AutoCAD顧問
還沒有註冊嗎...即日起免費註冊,所有最完整的AutoCAD討論、教學及資源都在論壇裡喔~
AutoCAD顧問
Would you like to react to this message? Create an account in a few clicks or log in to continue.
請問如何讓lisp中的選集透過座標重新排序呢? Aoe1-113請問如何讓lisp中的選集透過座標重新排序呢? Ioaoe110請問如何讓lisp中的選集透過座標重新排序呢? 2020-310請問如何讓lisp中的選集透過座標重新排序呢? Oiu15010請問如何讓lisp中的選集透過座標重新排序呢? 2020-211請問如何讓lisp中的選集透過座標重新排序呢? Ia15010請問如何讓lisp中的選集透過座標重新排序呢? Aizyao10請問如何讓lisp中的選集透過座標重新排序呢? Uos15010請問如何讓lisp中的選集透過座標重新排序呢? BPl3tjj請問如何讓lisp中的選集透過座標重新排序呢? Ziao1510
請問如何讓lisp中的選集透過座標重新排序呢? Aoe15010請問如何讓lisp中的選集透過座標重新排序呢? Oo-2-110請問如何讓lisp中的選集透過座標重新排序呢? Zuoiy_10請問如何讓lisp中的選集透過座標重新排序呢? Aizyao11請問如何讓lisp中的選集透過座標重新排序呢? Iyb_1510請問如何讓lisp中的選集透過座標重新排序呢? Aoe1-112請問如何讓lisp中的選集透過座標重新排序呢? Uos15011請問如何讓lisp中的選集透過座標重新排序呢? Aoe2da10請問如何讓lisp中的選集透過座標重新排序呢? Aoe2da11請問如何讓lisp中的選集透過座標重新排序呢? Aoe10

請問如何讓lisp中的選集透過座標重新排序呢?

2 posters

向下

請問如何讓lisp中的選集透過座標重新排序呢? Empty 請問如何讓lisp中的選集透過座標重新排序呢?

發表 由 a6666262000 2019-11-08, 17:41

以下是小弟正嘗試寫出來的新標註型態但因框選的時候選擇集內的排序沒辦法固定
導致最終cplo cple plo ple 4點會因為圖面修改而變動設為區域變數也沒辦法改善
例:
圖塊排列為 a b c d

如將圖塊移動為 a b d c
則設定得始末點cplo cple plo ple 會跟著 a d 位移造成佈線不正常

(defun LM:getdynprops (blk)
(mapcar '(lambda (x)
(cons (vla-get-propertyname x) (vlax-get x 'value))
)
(vlax-invoke blk 'getdynamicblockproperties)
)
)
(defun c:dpi (/)
(setq s 0)
(prompt "請框選同排管段且管為BLOCK單選成選集會異常")
(setq group (ssget '((0 . "insert"))))
(setq n (sslength group))
(while (< s n)
(setq name (ssname group s))
(setq dlist (LM:getdynprops (vlax-ename->vla-object name)))
(setq a (strcat "%%C " (rtos (cdr (assoc "A" dlist))) "A "))
(if (= s 0)
(setq dim a)
(setq dim (strcat dim a))
)
(setq ddi (cdr (assoc "直徑1" dlist)))
(if (= s 0)
(setq mind ddi)
(setq mind (min mind ddi))
)
(setq o (/ ddi 4))
(setq cp (cdr (assoc 10 (entget name))))
(setq cple (polar (polar cp 0 (* 3 o)) (* pi 0.5) (/ mind 4)))
(setq cplo (polar (polar cp pi (* 3 o)) (* pi 0.5) (/ mind 4)))
(command "line" cplo cple "")
(if (= s 0)
(progn (setq ple cple) (setq plo cplo))
)
(setq s (+ s 1))
)
(initget "L R")
(SETQ Q (GETKWORD "選擇方向OR"))
(command "line" cplo (getpoint) "")
(command "line" cple (getpoint) "")
(command "line" plo (getpoint) "")
(command "line" ple (getpoint) "")
)
a6666262000
a6666262000
一般會員
一般會員

文章總數 : 25
年齡 : 32
來自 : 台南
職業 : 機械,空間套圖
愛好 : 電影、電玩、
個性 : 喜好研究
使用年資 : 10
使用版本 : 2014-2018
經驗值 : 1998
威望值 : 42
注冊日期 : 2019-11-07
男 雙魚座 猴

回頂端 向下

請問如何讓lisp中的選集透過座標重新排序呢? Empty 回復: 請問如何讓lisp中的選集透過座標重新排序呢?

發表 由 a6666262000 2019-11-08, 17:43

最後四項為(command)是我測試點位移用的無須理會
a6666262000
a6666262000
一般會員
一般會員

文章總數 : 25
年齡 : 32
來自 : 台南
職業 : 機械,空間套圖
愛好 : 電影、電玩、
個性 : 喜好研究
使用年資 : 10
使用版本 : 2014-2018
經驗值 : 1998
威望值 : 42
注冊日期 : 2019-11-07
男 雙魚座 猴

回頂端 向下

請問如何讓lisp中的選集透過座標重新排序呢? Empty 回復: 請問如何讓lisp中的選集透過座標重新排序呢?

發表 由 bin1111 2019-12-14, 22:10

你可以換個角度去想
不要去排列選集
而是把所有圖塊座標製作成串列
這樣不就簡單多了

因為你要的是座標而不是去綁定圖塊
如果需要你可以連同圖塊名稱也加入串列中隨時調用
avatar
bin1111
一般會員
一般會員

文章總數 : 23
年齡 : 38
來自 : Taipei
職業 : 鋼筋撿料
愛好 : AutoLISP
個性 : 沉穩
使用年資 : 2006年起
使用版本 : 2018
經驗值 : 5979
威望值 : 36
注冊日期 : 2008-11-04
男 白羊座 虎

回頂端 向下

請問如何讓lisp中的選集透過座標重新排序呢? Empty 回復: 請問如何讓lisp中的選集透過座標重新排序呢?

發表 由 a6666262000 2019-12-14, 22:19

其實~我找到解決方案了~
手法是將圖塊名稱跟x座標做成串在利用x去做排序
最終在調用圖元名稱做成處理過的新選集
來執行後端處理
a6666262000
a6666262000
一般會員
一般會員

文章總數 : 25
年齡 : 32
來自 : 台南
職業 : 機械,空間套圖
愛好 : 電影、電玩、
個性 : 喜好研究
使用年資 : 10
使用版本 : 2014-2018
經驗值 : 1998
威望值 : 42
注冊日期 : 2019-11-07
男 雙魚座 猴

回頂端 向下

回頂端


 
這個論壇的權限:
無法 在這個版面回復文章
請問如何讓lisp中的選集透過座標重新排序呢? Aoe1-113請問如何讓lisp中的選集透過座標重新排序呢? Ioaoe110請問如何讓lisp中的選集透過座標重新排序呢? 2020-310請問如何讓lisp中的選集透過座標重新排序呢? Oiu15010請問如何讓lisp中的選集透過座標重新排序呢? 2020-211請問如何讓lisp中的選集透過座標重新排序呢? Ia15010請問如何讓lisp中的選集透過座標重新排序呢? Aizyao10請問如何讓lisp中的選集透過座標重新排序呢? Uos15010請問如何讓lisp中的選集透過座標重新排序呢? BPl3tjj請問如何讓lisp中的選集透過座標重新排序呢? Ziao1510
請問如何讓lisp中的選集透過座標重新排序呢? Aoe15010請問如何讓lisp中的選集透過座標重新排序呢? Oo-2-110請問如何讓lisp中的選集透過座標重新排序呢? Zuoiy_10請問如何讓lisp中的選集透過座標重新排序呢? Aizyao11請問如何讓lisp中的選集透過座標重新排序呢? Iyb_1510請問如何讓lisp中的選集透過座標重新排序呢? Aoe1-112請問如何讓lisp中的選集透過座標重新排序呢? Uos15011請問如何讓lisp中的選集透過座標重新排序呢? Aoe2da10請問如何讓lisp中的選集透過座標重新排序呢? Aoe2da11請問如何讓lisp中的選集透過座標重新排序呢? Aoe10