[已解決]三個lisp的問題
4 posters
AutoCAD顧問 :: 技術(發言等級:一般會員) :: :: 進階討論 :: 已解決主題精華區
第1頁(共1頁)
[已解決]三個lisp的問題
一
今天在練習的時後突然想到,要插入圖檔儲存位置名稱(SAVENAME),我看說明它是一個字串的形式,所以我就給它寫成 (setq gg (command "SAVENAME")) 要派給text當文字插入,可是我一直沒有辦法取出它的文字字串,不知到各位前輩有沒有什麼方法可以把這個字串取出來。
二
(initget 1 "1")
(SETQ change_color (getkword "\n 顏色代號<1>BLAYER(白):"))
(if (= change_color 7) (setq change_color BYLAYER))
(COMMAND "-COLOR" change_color )
我想問的是我要以輸入的方式將1以BYLER帶入,不是(COMMAND "-COLOR" "BYLAYR")方式
偏偏數字都還好 可是BYLAYER在COMMAND內要加入雙引號就很尷尬
三
在LISP另存的時後要怎麼寫才能把另存新檔的對話框叫出來,不要只是顯示再指令列中
以上三個問題如果您知到其中一個的話請教教我.........謝謝
今天在練習的時後突然想到,要插入圖檔儲存位置名稱(SAVENAME),我看說明它是一個字串的形式,所以我就給它寫成 (setq gg (command "SAVENAME")) 要派給text當文字插入,可是我一直沒有辦法取出它的文字字串,不知到各位前輩有沒有什麼方法可以把這個字串取出來。
二
(initget 1 "1")
(SETQ change_color (getkword "\n 顏色代號<1>BLAYER(白):"))
(if (= change_color 7) (setq change_color BYLAYER))
(COMMAND "-COLOR" change_color )
我想問的是我要以輸入的方式將1以BYLER帶入,不是(COMMAND "-COLOR" "BYLAYR")方式
偏偏數字都還好 可是BYLAYER在COMMAND內要加入雙引號就很尷尬
三
在LISP另存的時後要怎麼寫才能把另存新檔的對話框叫出來,不要只是顯示再指令列中
以上三個問題如果您知到其中一個的話請教教我.........謝謝
judyyai 在 2011-07-05, 08:33 作了第 3 次修改 (原因 : 再補上幾個頭痛的問題)
adslwang- 高級會員
- 文章總數 : 376
年齡 : 46
來自 : 台南
職業 : 自由業
愛好 : 電腦、旅行
個性 : 樂觀
使用年資 : 1年
使用版本 : 2009
積分 : 17
經驗值 : 7211
威望值 : 356
回帖精華 : 1
注冊日期 : 2008-10-02
回復: [已解決]三個lisp的問題
一
今天在練習的時後突然想到,要插入圖檔儲存位置名稱(SAVENAME),
我看說明它是一個字串的形式,所以我就給它寫成 (setq gg (command "SAVENAME")) 要派給text當文字插入,
可是我一直沒有辦法取出它的文字字串,不知到各位前輩有沒有什麼方法可以把這個字串取出來。
(setq gg (getvar "seavname"))
要另存過才有檔名不然只有空字串
二
(initget 1 "1")
(SETQ change_color (getkword "\n 顏色代號<1>BLAYER(白):"))
(if (= change_color 7) (setq change_color BYLAYER))
(COMMAND "-COLOR" change_color )
我想問的是我要以輸入的方式將1以BYLER帶入,不是(COMMAND "-COLOR" "BYLAYR")方式
偏偏數字都還好 可是BYLAYER在COMMAND內要加入雙引號就很尷尬
(initget 1 "1")
(SETQ change_color (getkword "\n 顏色代號<1>BLAYER(白):"));都強制為 1 了
(if (= change_color 7) (setq change_color BYLAYER));(= change_color 7)又怎麼變 7 了
(if (= change_color 1) (setq change_color BYLAYER)); 把 7 改為 1就好了
三
在LISP另存的時後要怎麼寫才能把另存新檔的對話框叫出來,不要只是顯示再指令列中
以上三個問題如果您知到其中一個的話請教教我.........謝謝 .
cad使用說明提到lisp (command "saveas")不能呼叫cad內定的檔案對話框
除非自己另外寫
今天在練習的時後突然想到,要插入圖檔儲存位置名稱(SAVENAME),
我看說明它是一個字串的形式,所以我就給它寫成 (setq gg (command "SAVENAME")) 要派給text當文字插入,
可是我一直沒有辦法取出它的文字字串,不知到各位前輩有沒有什麼方法可以把這個字串取出來。
(setq gg (getvar "seavname"))
要另存過才有檔名不然只有空字串
二
(initget 1 "1")
(SETQ change_color (getkword "\n 顏色代號<1>BLAYER(白):"))
(if (= change_color 7) (setq change_color BYLAYER))
(COMMAND "-COLOR" change_color )
我想問的是我要以輸入的方式將1以BYLER帶入,不是(COMMAND "-COLOR" "BYLAYR")方式
偏偏數字都還好 可是BYLAYER在COMMAND內要加入雙引號就很尷尬
(initget 1 "1")
(SETQ change_color (getkword "\n 顏色代號<1>BLAYER(白):"));都強制為 1 了
(if (= change_color 7) (setq change_color BYLAYER));(= change_color 7)又怎麼變 7 了
(if (= change_color 1) (setq change_color BYLAYER)); 把 7 改為 1就好了
三
在LISP另存的時後要怎麼寫才能把另存新檔的對話框叫出來,不要只是顯示再指令列中
以上三個問題如果您知到其中一個的話請教教我.........謝謝 .
cad使用說明提到lisp (command "saveas")不能呼叫cad內定的檔案對話框
除非自己另外寫
tarpon- 中級會員
- 文章總數 : 209
年齡 : 34
來自 : 台北
職業 : 設計
愛好 : 打球
個性 : 溫和
使用年資 : 5年
使用版本 : 2006
積分 : 6
經驗值 : 6252
威望值 : 263
注冊日期 : 2010-07-01
明~- 高級會員
- 文章總數 : 307
年齡 : 44
來自 : 彰化
職業 : 機械
愛好 : 打球 騎車 健行 音樂 電影 (說不完...)
個性 : 不與人爭
使用年資 : 從學生時代接觸到現在(工作中不一定使用)
使用版本 : 2004和2008
積分 : 17
經驗值 : 7195
威望值 : 667
注冊日期 : 2009-12-24
回復: [已解決]三個lisp的問題
明~ 寫到:第三個問題
可寫成(command "saveas" "" "~")
感謝解惑
filedia變數
抑制檔案導覽對話方塊的顯示。
0 不顯示對話方塊。 透過在回應指令提示時輸入波浪符號 (~),仍然可以顯示檔案對話方塊。 這對 AutoLISP 和 ADS 函數也有效。
1 顯示對話方塊。 但是,如果腳本或 AutoLISP/ObjectARX™ 程式處於作用中,則顯示一般的提示。
一直試(command "saveas" "~")不行
原來"~"前面還要加一空字串""才可行
我還以為像cad說明的不能用
請問為何要加空字串""才可行?
tarpon- 中級會員
- 文章總數 : 209
年齡 : 34
來自 : 台北
職業 : 設計
愛好 : 打球
個性 : 溫和
使用年資 : 5年
使用版本 : 2006
積分 : 6
經驗值 : 6252
威望值 : 263
注冊日期 : 2010-07-01
回復: [已解決]三個lisp的問題
tarpon 寫到:
(initget 1 "1")
(SETQ change_color (getkword "\n 顏色代號<1>BLAYER(白):"))
(if (= change_color 7) (setq change_color BYLAYER))
(COMMAND "-COLOR" change_color )
我想問的是我要以輸入的方式將1以BYLER帶入,不是(COMMAND "-COLOR" "BYLAYR")方式
偏偏數字都還好 可是BYLAYER在COMMAND內要加入雙引號就很尷尬
(initget 1 "1")
(SETQ change_color (getkword "\n 顏色代號<1>BLAYER(白):"));都強制為 1 了
(if (= change_color 7) (setq change_color BYLAYER));(= change_color 7)又怎麼變 7 了
(if (= change_color 1) (setq change_color BYLAYER)); 把 7 改為 1就好了
謝謝tarpon跟明前輩的回答讓我受益良多,謝謝你們.....
以下是我依據tarpon前輩的方法測試,結果他還是會讀到數字,我故意讓顏色變成其它的顏色,再來測試結果都一直跑的是紅色,等於IF失去了功能,怎麼會這樣呢?還有其它解套的方法嗎?
以下就會一直顯示在紅色
(defun c:gggg()
(initget 1 "1")
(SETQ change_color (getkword "\n 顏色代號<1>BLAYER(白):"))
(if (= change_color 1) (setq change_color BYLAYER))
(COMMAND "-COLOR" change_color)這行要代入"BYLAYER"讓我很頭痛
(princ))
以下這樣就沒有問題
(COMMAND "-COLOR" "BYLAYER")
adslwang- 高級會員
- 文章總數 : 376
年齡 : 46
來自 : 台南
職業 : 自由業
愛好 : 電腦、旅行
個性 : 樂觀
使用年資 : 1年
使用版本 : 2009
積分 : 17
經驗值 : 7211
威望值 : 356
回帖精華 : 1
注冊日期 : 2008-10-02
回復: [已解決]三個lisp的問題
adslwang抱歉bylayer忘記改了
(if (= change_color 1) (setq change_color BYLAYER))
改成
(if (= change_color 1) (setq change_color "BYLAYER"))
(if (= change_color 1) (setq change_color BYLAYER))
改成
(if (= change_color 1) (setq change_color "BYLAYER"))
tarpon- 中級會員
- 文章總數 : 209
年齡 : 34
來自 : 台北
職業 : 設計
愛好 : 打球
個性 : 溫和
使用年資 : 5年
使用版本 : 2006
積分 : 6
經驗值 : 6252
威望值 : 263
注冊日期 : 2010-07-01
回復: [已解決]三個lisp的問題
前輩謝謝您的回答,這個方法我也有試過,仍是會更換成紅色.......tarpon 寫到:adslwang抱歉bylayer忘記改了
(if (= change_color 1) (setq change_color BYLAYER))
改成
(if (= change_color 1) (setq change_color "BYLAYER"))
還是無法正確的執行....
adslwang- 高級會員
- 文章總數 : 376
年齡 : 46
來自 : 台南
職業 : 自由業
愛好 : 電腦、旅行
個性 : 樂觀
使用年資 : 1年
使用版本 : 2009
積分 : 17
經驗值 : 7211
威望值 : 356
回帖精華 : 1
注冊日期 : 2008-10-02
回復: [已解決]三個lisp的問題
adslwang
不要稱前輩啦我也是在學LISP
--------------------------
查詢change_color 值
!change_color
我試會改回bylayer呀
不要稱前輩啦我也是在學LISP
--------------------------
查詢change_color 值
!change_color
我試會改回bylayer呀
tarpon- 中級會員
- 文章總數 : 209
年齡 : 34
來自 : 台北
職業 : 設計
愛好 : 打球
個性 : 溫和
使用年資 : 5年
使用版本 : 2006
積分 : 6
經驗值 : 6252
威望值 : 263
注冊日期 : 2010-07-01
回復: [已解決]三個lisp的問題
謝謝!我已經測試成功了......
adslwang- 高級會員
- 文章總數 : 376
年齡 : 46
來自 : 台南
職業 : 自由業
愛好 : 電腦、旅行
個性 : 樂觀
使用年資 : 1年
使用版本 : 2009
積分 : 17
經驗值 : 7211
威望值 : 356
回帖精華 : 1
注冊日期 : 2008-10-02
回復: [已解決]三個lisp的問題
tarpon 寫到:明~ 寫到:第三個問題
可寫成(command "saveas" "" "~")
感謝解惑
filedia變數
抑制檔案導覽對話方塊的顯示。
0 不顯示對話方塊。 透過在回應指令提示時輸入波浪符號 (~),仍然可以顯示檔案對話方塊。 這對 AutoLISP 和 ADS 函數也有效。
1 顯示對話方塊。 但是,如果腳本或 AutoLISP/ObjectARX™ 程式處於作用中,則顯示一般的提示。
一直試(command "saveas" "~")不行
原來"~"前面還要加一空字串""才可行
我還以為像cad說明的不能用
請問為何要加空字串""才可行?
如圖片,在指令行中輸入(command "saveas")後,會提示"輸入檔案格式",所以給個 " " 號.
明~- 高級會員
- 文章總數 : 307
年齡 : 44
來自 : 彰化
職業 : 機械
愛好 : 打球 騎車 健行 音樂 電影 (說不完...)
個性 : 不與人爭
使用年資 : 從學生時代接觸到現在(工作中不一定使用)
使用版本 : 2004和2008
積分 : 17
經驗值 : 7195
威望值 : 667
注冊日期 : 2009-12-24
回復: [已解決]三個lisp的問題
明~
加""空白字串等於enter跳過第一個提示
可是saveas檔案對話框filedia變數說明
提及在提示後輸入"~"波紋符號即可強制對話框顯示
為何在提示出現後要先輸入""空字串跳過第一個提示
不能直接輸入"~"波紋符號呢
加""空白字串等於enter跳過第一個提示
可是saveas檔案對話框filedia變數說明
提及在提示後輸入"~"波紋符號即可強制對話框顯示
為何在提示出現後要先輸入""空字串跳過第一個提示
不能直接輸入"~"波紋符號呢
tarpon- 中級會員
- 文章總數 : 209
年齡 : 34
來自 : 台北
職業 : 設計
愛好 : 打球
個性 : 溫和
使用年資 : 5年
使用版本 : 2006
積分 : 6
經驗值 : 6252
威望值 : 263
注冊日期 : 2010-07-01
回復: [已解決]三個lisp的問題
tarpon 寫到:明~
加""空白字串等於enter跳過第一個提示
可是saveas檔案對話框filedia變數說明
提及在提示後輸入"~"波紋符號即可強制對話框顯示
為何在提示出現後要先輸入""空字串跳過第一個提示
不能直接輸入"~"波紋符號呢
SAVEAS 儲存提示第一個是儲存格式.. "" 空格只是接受目前內定的儲存格式. 在這地方..輸入"~" COMMAND 是無法判別的.
(COMMADN "SAVEAS" "" "~") 以目前儲存格式.呼叫對話框.
(COMMAND "SAVEAS" "2004" "~") 指定以2004版本格式..儲存檔案..
(COMMAND "SAVEAS" "2008" "~") 指定以2008版本格調.儲存檔案.
希望這樣.你會理解的比較清楚..
shenhung- 高級會員
- 文章總數 : 281
年齡 : 57
來自 : 新北市
職業 : 塑膠模具設計.AUTOLISP
愛好 : 音樂
個性 : 隨和
使用年資 : 18年
使用版本 : 2010
積分 : 15
經驗值 : 8075
威望值 : 1188
注冊日期 : 2009-06-03
回復: [已解決]三個lisp的問題
感謝shenhung的詳細說明
這樣確實比較清楚容易理解
每次都能從您及論壇這學得新資訊感恩呢
這樣確實比較清楚容易理解
每次都能從您及論壇這學得新資訊感恩呢
tarpon- 中級會員
- 文章總數 : 209
年齡 : 34
來自 : 台北
職業 : 設計
愛好 : 打球
個性 : 溫和
使用年資 : 5年
使用版本 : 2006
積分 : 6
經驗值 : 6252
威望值 : 263
注冊日期 : 2010-07-01
回復: [已解決]三個lisp的問題
shenhung 寫到:
SAVEAS 儲存提示第一個是儲存格式.. "" 空格只是接受目前內定的儲存格式. 在這地方..輸入"~" COMMAND 是無法判別的.
(COMMADN "SAVEAS" "" "~") 以目前儲存格式.呼叫對話框.
(COMMAND "SAVEAS" "2004" "~") 指定以2004版本格式..儲存檔案..
(COMMAND "SAVEAS" "2008" "~") 指定以2008版本格調.儲存檔案.
希望這樣.你會理解的比較清楚..
好棒,原來也可以這樣寫,謝謝分享......
adslwang- 高級會員
- 文章總數 : 376
年齡 : 46
來自 : 台南
職業 : 自由業
愛好 : 電腦、旅行
個性 : 樂觀
使用年資 : 1年
使用版本 : 2009
積分 : 17
經驗值 : 7211
威望值 : 356
回帖精華 : 1
注冊日期 : 2008-10-02
AutoCAD顧問 :: 技術(發言等級:一般會員) :: :: 進階討論 :: 已解決主題精華區
第1頁(共1頁)
這個論壇的權限:
您 無法 在這個版面回復文章