Re: [問題] 請問有關Autocad的 _ai_selall指令
※ 引述《Egriawei (誰來檔一下小七獅)》之銘言:
: ※ 引述《kylechen (kyle)》之銘言:
: : 當我們按ctrl+a的時候
: : autocad會執行 _ai_selall指令
: : 就會幫我們全選圖元
: : 但是當我用lisp語言寫
: : (command "_ai_selall") 的時候
: : 卻沒辦法執行這個指令
: : 請問有什麼辦法以Lisp語言呼叫這個全選指令嗎??
: : PS: 我已經嘗試過使用 (ssget "X")這個功能了
: : 但是好像會選到的東西是不同的?
: 最後這個什麼意思?
: 我不太清楚你確切的用途
: 用鍵盤按ctrl+a去選跟用函數去全選可能有點不太一樣
: 主要我看就是command函數看不懂_ai_selall這個指令
: 不過,卻有all這種打法:P
: 概說如下
: lisp中寫到使用需要從畫面選取物件的指令或函數時
: 例如用move指令,要全選可以寫成這樣
: (command "move" "all" "")
: ""表示enter,這個指令之後再加上移動的敘述或不寫手動來移
: 彈性一點的寫法
: (command "move" "all" pause pause)
: 可以全選後點掉一些不要的,再執行移動
: [當然兩個pause可以跟別換成""跟移動敘述]
: 不過不知道上面說的是否符合你需要
: 要用ssget取得整個圖的物件存給變數,可以寫成
: (setq allelm (ssget "all")) 或 (setq allelm (ssget "X"))
: 不過要是你明白"X"過濾選集的用途,建議要全選用前面all的寫法
: ====下面就是廢話可以不用看了:)====
: 我想分享一點的就是
: command這個autocad函數
: 基本上後面打的內容就跟平常手動在指令區所打的指令幾乎一樣
: 要畫個圓就打(command "circle" '(0 0) 30.0)
: 不過lisp中寫的內容卻不見得完全像在指令區打的一樣
: 而且也不見得所有指令都能丟到lisp中寫
: 需要去try一下才知道,書,F1的help等也許會有講一些
: 但好像沒看過會有逐一介紹每個指令在lisp中怎麼打的怎麼用的
: 因為基本上就跟手動打指令的執行過程一樣,沒必要再說(但是又不完全一樣)
: 例如,lisp中"move"不能簡寫成"m","circle"不能簡化成 "c"否則會找不到函數
: 又如在指令區打layer,_layer會叫出對話框,-layer則是在指令行輸入
: 但(command "layer" ~~~),或layer改成-layer跟_layer卻都不會出現對話框
: 找看看,除非是有類似的範例程式碼,哪有跟使用者說layer在lisp中要怎麼打的呢?
: 大概都當做使用者手動操作指令會,command照本宣科就是了
: 再說個例外,實際上layer如果要宣告顏色,cad版本不同,舊的版本沒有RGB色宣告可以用
: 只能用1~255,lisp中如果都寫成以rgb宣告,那拿去像2002版用就會爆
: 回題
: 像ctrl+c->ctrl+v可以執行複製貼上圖元,甚至可以從一張圖檔貼到另一張
: lisp中可以用(command "copyclip") 跟 (command "pasteclip")
: 其實我會覺得用copy指令就可以了,雖然不能貼到其他的圖檔
: 全選的話lisp沒辦法打_ai_selall,
: 但是有all的打法,這也是指令中當要選物件時可打的,用之
: 雖然command搞的像matlab的m檔案底稿寫法的感覺
: 不過卻沒像matlab兩邊都寫一樣就好
: 不過autocad是autocad,matlab是matlab
: 要用人家寫的軟體就守人家的規則:)
Hi Egriawei大大:
感謝您的解說
事實上是這樣的 小弟手上的工作會有許多底稿
這些底稿由另一個部門使用其他軟體所繪製
這些底稿轉換成DXF匯入AUTOCAD中之後
線條都存在有寬度 所以我必須全選圖元然後炸開
一直炸到線條寬度都為0為止..大約需要炸6~8次
所以我想要寫一個程式來幫我自動炸圖八次之類的...
而現在問題就卡在 我使用了數種全選指令
包括(ssget "X")
但是效果都沒辦法達到根 _AI_SELALL依樣
舉例而言 一般流程 我案ctrl+a (_AI_SELALL)
然後再輸入explode 就會完成一輪的炸開
但是我若使用
(setq allelm (ssget "X"))
(command "explode" allelm "")
就沒辦法炸...
現在卡關中 真是苦惱啊....
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 203.67.196.240
推
05/31 15:05, , 1F
05/31 15:05, 1F
討論串 (同標題文章)
本文引述了以下文章的的內容:
完整討論串 (本文為第 3 之 3 篇):