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.
[討論]如何用Autolisp取消選取 Ioaoe110[討論]如何用Autolisp取消選取 2020-310[討論]如何用Autolisp取消選取 Oiu15010[討論]如何用Autolisp取消選取 2020-211[討論]如何用Autolisp取消選取 Ia15010[討論]如何用Autolisp取消選取 Aizyao10[討論]如何用Autolisp取消選取 Uos15010[討論]如何用Autolisp取消選取 BPl3tjj[討論]如何用Autolisp取消選取 Ziao1510
[討論]如何用Autolisp取消選取 Oo-2-110[討論]如何用Autolisp取消選取 Zuoiy_10[討論]如何用Autolisp取消選取 Aizyao11[討論]如何用Autolisp取消選取 Iyb_1510[討論]如何用Autolisp取消選取 Aoe1-111[討論]如何用Autolisp取消選取 Uos15011[討論]如何用Autolisp取消選取 Aoe2da10[討論]如何用Autolisp取消選取 Aoe2da11[討論]如何用Autolisp取消選取 Aoe10

[討論]如何用Autolisp取消選取

2 posters

向下

[討論]如何用Autolisp取消選取 Empty [討論]如何用Autolisp取消選取

發表 由 RyanGuo 2013-10-04, 17:01

目前我編寫的程式裡有用到STRETCH的指令,
部分程式如下:
代碼:
(prompt "\n選擇要STRETCH的圖元..")
(COMMAND "STRETCH" (ssget) "" RG:PPD:oP2 RG:PPD:oP3)
其中RG:PPD:oP2和RG:PPD:oP3是點座標.

目前卡在,
如果在程式執行前就有選取圖元時,
(ssget)會自動抓已經選取的圖元,
而我想在程式執行到(COMMAND "STRETCH" ....)之前先取消掉已經有的選取,
到底要如何做呢?


RyanGuo 在 2013-10-07, 13:46 作了第 2 次修改

____________________________________________________________________________________


[討論]如何用Autolisp取消選取 Acad2010 [討論]如何用Autolisp取消選取 Acad1810
[討論]如何用Autolisp取消選取 Acad1211 [討論]如何用Autolisp取消選取 Acad1311 [討論]如何用Autolisp取消選取 Acad1511
RyanGuo
RyanGuo
初級會員
初級會員

文章總數 : 206
年齡 : 41
來自 : 屏東
職業 : 機械繪圖
愛好 : 玩遊戲
個性 : 嗚嗚男
使用年資 : 1年多
使用版本 : 2011
積分 : 3
經驗值 : 5345
威望值 : 316
注冊日期 : 2013-04-18
男 射手座 狗

回頂端 向下

[討論]如何用Autolisp取消選取 Empty 回復: [討論]如何用Autolisp取消選取

發表 由 leoneriol 2013-10-04, 17:30

代碼:
(prompt "\n選擇要STRETCH的圖元..")
(setq ssobj (ssget))
(COMMAND "STRETCH" ssobj "" RG:PPD:oP2 RG:PPD:oP3)

____________________________________________________________________________________
丑角之日
堅持~!才會有價值~!
讚啦!!
[討論]如何用Autolisp取消選取 Ioaoe110 [討論]如何用Autolisp取消選取 Zuoiy_10 [討論]如何用Autolisp取消選取 2020-211 [討論]如何用Autolisp取消選取 Aizyao11 [討論]如何用Autolisp取消選取 Iyb_1510
[討論]如何用Autolisp取消選取 Aizyao10 [討論]如何用Autolisp取消選取 BPl3tjj.png [討論]如何用Autolisp取消選取 Ziao1510 [討論]如何用Autolisp取消選取 Oo-2-110 [討論]如何用Autolisp取消選取 Oooa_110
leoneriol
leoneriol
榮譽顧問
榮譽顧問

文章總數 : 818
年齡 : 40
來自 : 基隆市七堵區
職業 : 機電工程公司-繪圖(工地)
愛好 : 看小說
個性 : 不愛說話-反應慢
使用年資 : 6年
使用版本 : 2008 & 2012
積分 : 27
經驗值 : 8985
威望值 : 962
發帖精華 : 1
回帖精華 : 1
注冊日期 : 2009-03-12
經典問與答讀者 藍鵲34號
2009聚會勳章 2014聚會勳章 男 雙魚座 鼠

回頂端 向下

[討論]如何用Autolisp取消選取 Empty 回復: [討論]如何用Autolisp取消選取

發表 由 RyanGuo 2013-10-04, 17:33

剛剛才發現如果是用
代碼:
(prompt "\n選擇要STRETCH的圖元..")
(setq ssobj (ssget))
(COMMAND "STRETCH" ssobj "" RG:PPD:oP2 RG:PPD:oP3)
作用其實是和
代碼:
(prompt "\n選擇要STRETCH的圖元..")
(COMMAND "STRETCH" (ssget) "" RG:PPD:oP2 RG:PPD:oP3)
一樣的@@a
之前我沒看清楚還以為是leoneriol兄的回答是
代碼:
(prompt "\n選擇要STRETCH的圖元..")
(setq ssobj (ssget))
(COMMAND "STRETCH" (ssget) "" RG:PPD:oP2 RG:PPD:oP3)
上面這樣的話,的確是可以在原先有選取物件時,取消掉選取,
但也變成了在原先沒有選取物件時,需要選取兩次@@a

[追加]
找到一個替用方案,利用系統變數"PICKFIRST",
初始值: 1
0 關閉 PICKFIRST;先執行再選取
1 打開 PICKFIRST;先選取再執行
其作法是先將PICKFIRST設為0後再執行指令,
這樣不管是否有在執行指令前先選取物件,
程式執行到指令時,一律會變為未選取狀態.

在程式的前後加上原有系統變數的儲存和恢復後的程式如下:
代碼:
;;儲存舊的變數值
(SETQ oPICKFIRST (getvar "PICKFIRST"))
;;指定程式需要的數值
(setvar "PICKFIRST" 0)
(prompt "\n選擇要STRETCH的圖元..")
(COMMAND "STRETCH" (ssget) "" RG:PPD:oP2 RG:PPD:oP3)
;;恢復舊的變數值
(setvar "PICKFIRST" oPICKFIRST)

____________________________________________________________________________________


[討論]如何用Autolisp取消選取 Acad2010 [討論]如何用Autolisp取消選取 Acad1810
[討論]如何用Autolisp取消選取 Acad1211 [討論]如何用Autolisp取消選取 Acad1311 [討論]如何用Autolisp取消選取 Acad1511
RyanGuo
RyanGuo
初級會員
初級會員

文章總數 : 206
年齡 : 41
來自 : 屏東
職業 : 機械繪圖
愛好 : 玩遊戲
個性 : 嗚嗚男
使用年資 : 1年多
使用版本 : 2011
積分 : 3
經驗值 : 5345
威望值 : 316
注冊日期 : 2013-04-18
男 射手座 狗

回頂端 向下

回頂端


 
這個論壇的權限:
無法 在這個版面回復文章
[討論]如何用Autolisp取消選取 Ioaoe110[討論]如何用Autolisp取消選取 2020-310[討論]如何用Autolisp取消選取 Oiu15010[討論]如何用Autolisp取消選取 2020-211[討論]如何用Autolisp取消選取 Ia15010[討論]如何用Autolisp取消選取 Aizyao10[討論]如何用Autolisp取消選取 Uos15010[討論]如何用Autolisp取消選取 BPl3tjj[討論]如何用Autolisp取消選取 Ziao1510
[討論]如何用Autolisp取消選取 Oo-2-110[討論]如何用Autolisp取消選取 Zuoiy_10[討論]如何用Autolisp取消選取 Aizyao11[討論]如何用Autolisp取消選取 Iyb_1510[討論]如何用Autolisp取消選取 Aoe1-111[討論]如何用Autolisp取消選取 Uos15011[討論]如何用Autolisp取消選取 Aoe2da10[討論]如何用Autolisp取消選取 Aoe2da11[討論]如何用Autolisp取消選取 Aoe10