[討論]聚合線轉自訂的複線
2 posters
AutoCAD顧問 :: 技術(發言等級:一般會員) :: :: 進階討論
第1頁(共1頁)
[討論]聚合線轉自訂的複線
最近想寫一個讓複線根據現有的聚合線走,例如畫一條直線,會產生兩個點座標,跑程式時會先抓取這條線的兩個座標點位,然後利用COMMAND指令,執行ml指令,再根據前述所抓的點位來畫線。
最主要是因為複線有使用的話MLstyle無法修改,那為了突破這限制,只好把有用到的都選出來分解,留下中線聚合線,這樣就能直接轉換為複線
目前所寫的尚還符合我的需求,但想進一步擴展,請各位先進提供意見給小弟
下方最後一行代碼pt1 pt2能正常使用,但如果這條線有10點甚至上百,不太可能用上百次的SETQ,那應該如何解決?
假設得到的點位((1 1) (2 2) (2.5 2.5) (3 3) (2 2)........)
目前想過用REPEAT,但考慮要跳出COMMAND指令,加上線的連續性會中斷,可能行不通
最主要是因為複線有使用的話MLstyle無法修改,那為了突破這限制,只好把有用到的都選出來分解,留下中線聚合線,這樣就能直接轉換為複線
目前所寫的尚還符合我的需求,但想進一步擴展,請各位先進提供意見給小弟
下方最後一行代碼pt1 pt2能正常使用,但如果這條線有10點甚至上百,不太可能用上百次的SETQ,那應該如何解決?
假設得到的點位((1 1) (2 2) (2.5 2.5) (3 3) (2 2)........)
目前想過用REPEAT,但考慮要跳出COMMAND指令,加上線的連續性會中斷,可能行不通
- 代碼:
(defun c:PL2ML ( / )
(setq MLname (getstring (strcat "輸入複線名稱:")))
(setq ss (ssget))
(setq i 0)
(setq plname (ssname ss i))
(setq ptlst (getplptlst plname));副程式得到點位
(setq pt1 (car ptlst))
(setq pt2 (nth 1 ptlst))
(command "MLINE" "st" MLname "J" "Z" pt1 pt2 "")
)
immortal20092- 一般會員
- 文章總數 : 9
年齡 : 33
來自 : 台南
職業 : 土木
愛好 : 桌球
個性 : 好相處
使用年資 : 5
使用版本 : 2016
經驗值 : 2375
威望值 : 6
注冊日期 : 2018-08-13
回復: [討論]聚合線轉自訂的複線
可以參考下面網址的2.聚合線轉複線的程式碼
AutoCAD LISP 複線的相關程式
AutoCAD LISP 複線的相關程式
naruto018- 中級會員
- 文章總數 : 226
年齡 : 32
來自 : 高雄
職業 : 學習中(CAD,Revit,Excel VBA)
愛好 : 當個懶熊
個性 : 內向
使用年資 : 新手
使用版本 : 2015
AutoCAD基礎篇等級 : 10星級
積分 : 5
經驗值 : 4558
威望值 : 564
注冊日期 : 2016-11-29
回復: [討論]聚合線轉自訂的複線
naruto018 寫到:可以參考下面網址的2.聚合線轉複線的程式碼
AutoCAD LISP 複線的相關程式
這網站之前有看到,不過沒仔細看到這個,看來我必須要花點時間才能看的懂那行APPLY開始的那行
本來是想說自己試寫看看,如果這樣寫是否可行
LAMBA這個函數至今我還是看不太懂,但好像很多人使用
感謝你的提供
immortal20092- 一般會員
- 文章總數 : 9
年齡 : 33
來自 : 台南
職業 : 土木
愛好 : 桌球
個性 : 好相處
使用年資 : 5
使用版本 : 2016
經驗值 : 2375
威望值 : 6
注冊日期 : 2018-08-13
AutoCAD顧問 :: 技術(發言等級:一般會員) :: :: 進階討論
第1頁(共1頁)
這個論壇的權限:
您 無法 在這個版面回復文章