[已解決]請教一個標註LISP問題
3 posters
AutoCAD顧問 :: 技術(發言等級:一般會員) :: :: 進階討論 :: 已解決主題精華區
第1頁(共1頁)
[已解決]請教一個標註LISP問題
這是我的程式,我要標一個尺寸是有固定公差的,執行沒問題,但是我如果只要標尺寸不要公差dimlinear還是會帶出公差
(defun C:qq(/ tpenter tmenter temptp)
(setq tpenter "0.05")
(setq tmenter "-0.02")
(setq temptp "2")
(command "dimtol" "on")
(command "dimlinear" "dimtdec" temptp "dimtp" tpenter "dimtm" tmenter)
(princ)
)
所以我的想法是加這一行(command "dimtol" "OFF"),但是變沒公差了
(defun C:qq(/ tpenter tmenter temptp)
(setq tpenter "0.05")
(setq tmenter "-0.02")
(setq temptp "2")
(command "dimtol" "on")
(command "dimlinear" "dimtdec" temptp "dimtp" tpenter "dimtm" tmenter)
(command "dimtol" "OFF")
(princ)
)
請問這要如何改善?
感謝幫忙!!!
(defun C:qq(/ tpenter tmenter temptp)
(setq tpenter "0.05")
(setq tmenter "-0.02")
(setq temptp "2")
(command "dimtol" "on")
(command "dimlinear" "dimtdec" temptp "dimtp" tpenter "dimtm" tmenter)
(princ)
)
所以我的想法是加這一行(command "dimtol" "OFF"),但是變沒公差了
(defun C:qq(/ tpenter tmenter temptp)
(setq tpenter "0.05")
(setq tmenter "-0.02")
(setq temptp "2")
(command "dimtol" "on")
(command "dimlinear" "dimtdec" temptp "dimtp" tpenter "dimtm" tmenter)
(command "dimtol" "OFF")
(princ)
)
請問這要如何改善?
感謝幫忙!!!
lcskc 在 2015-12-10, 20:12 作了第 1 次修改
lcskc- 一般會員
- 文章總數 : 59
年齡 : 52
來自 : 高雄
職業 : 模具
愛好 : pc相關
個性 : 安靜
使用年資 : 10
使用版本 : R12
經驗值 : 4172
威望值 : 31
注冊日期 : 2014-05-02
回復: [已解決]請教一個標註LISP問題
我的建議是....你應該是設定二種標註的型式,而不是寫lisp
一種是有公差的標註型式,一種是無公差的...
因為你的程式,
第一個是將目前的標註型式 公差的功能打開...
第二個是打開後,又關閉,當然顯示不出來....((因為你把它關了))
一種是有公差的標註型式,一種是無公差的...
因為你的程式,
第一個是將目前的標註型式 公差的功能打開...
第二個是打開後,又關閉,當然顯示不出來....((因為你把它關了))
luswlife- 一般會員
- 文章總數 : 103
年齡 : 45
來自 : 台北
職業 : 繪圖
愛好 : 吃喝玩樂
個性 : 怪異
使用年資 : 10年
使用版本 : 2014
積分 : 4
最佳解答 : 1
經驗值 : 5868
威望值 : 132
注冊日期 : 2010-01-28
回復: [已解決]請教一個標註LISP問題
感謝,試了一下用標註型式是可以
(defun c:qq3()
(command "dimstyle" "r" "iso-25-3")
(command "dimlinear")
(command "dimstyle" "standard")
(princ)
)
但是 (command "dimstyle" "standard")無法變回原先的標註型式,這有解嗎?
感謝!!!
(defun c:qq3()
(command "dimstyle" "r" "iso-25-3")
(command "dimlinear")
(command "dimstyle" "standard")
(princ)
)
但是 (command "dimstyle" "standard")無法變回原先的標註型式,這有解嗎?
感謝!!!
lcskc- 一般會員
- 文章總數 : 59
年齡 : 52
來自 : 高雄
職業 : 模具
愛好 : pc相關
個性 : 安靜
使用年資 : 10
使用版本 : R12
經驗值 : 4172
威望值 : 31
注冊日期 : 2014-05-02
回復: [已解決]請教一個標註LISP問題
因為你中間少了"r"
你切換到iso-25-3時前面加了"r"
當然切換回來就要加....
你切換到iso-25-3時前面加了"r"
當然切換回來就要加....
luswlife- 一般會員
- 文章總數 : 103
年齡 : 45
來自 : 台北
職業 : 繪圖
愛好 : 吃喝玩樂
個性 : 怪異
使用年資 : 10年
使用版本 : 2014
積分 : 4
最佳解答 : 1
經驗值 : 5868
威望值 : 132
注冊日期 : 2010-01-28
回復: [已解決]請教一個標註LISP問題
加了沒用耶???
(defun c:qq3()
(command "dimstyle" "r" "iso-25-3")
(command "dimlinear")
(command "dimstyle" "r" "iso-25")
(princ)
)
變不回來!!!
(defun c:qq3()
(command "dimstyle" "r" "iso-25-3")
(command "dimlinear")
(command "dimstyle" "r" "iso-25")
(princ)
)
變不回來!!!
lcskc- 一般會員
- 文章總數 : 59
年齡 : 52
來自 : 高雄
職業 : 模具
愛好 : pc相關
個性 : 安靜
使用年資 : 10
使用版本 : R12
經驗值 : 4172
威望值 : 31
注冊日期 : 2014-05-02
回復: [已解決]請教一個標註LISP問題
(defun c:qq3()
(setq p1(getpoint "\n 第一點"))
(setq p2(getpoint "\n 第二點"))
(setq p3(getpoint "\n 第三點"))
(command "dimstyle" "r" "iso-25-3")
(command "dimlinear" p1 p2 p3)
(command "dimstyle" "r" "iso-25")
(princ)
)
(setq p1(getpoint "\n 第一點"))
(setq p2(getpoint "\n 第二點"))
(setq p3(getpoint "\n 第三點"))
(command "dimstyle" "r" "iso-25-3")
(command "dimlinear" p1 p2 p3)
(command "dimstyle" "r" "iso-25")
(princ)
)
luswlife- 一般會員
- 文章總數 : 103
年齡 : 45
來自 : 台北
職業 : 繪圖
愛好 : 吃喝玩樂
個性 : 怪異
使用年資 : 10年
使用版本 : 2014
積分 : 4
最佳解答 : 1
經驗值 : 5868
威望值 : 132
注冊日期 : 2010-01-28
回復: [已解決]請教一個標註LISP問題
luswlife 寫到:(defun c:qq3()
(setq p1(getpoint "\n 第一點"))
(setq p2(getpoint "\n 第二點"))
(setq p3(getpoint "\n 第三點"))
(command "dimstyle" "r" "iso-25-3")
(command "dimlinear" p1 p2 p3)
(command "dimstyle" "r" "iso-25")
(princ)
)
不一樣的思維,但是是可以符合需求的,還要好好研究,感謝!
不過還是要在問一下,如果要像我開始問得那樣,用設定上下限公差值的方式有辦法做到嗎?
因為如果用標註型式的方式,可能要設十幾個==!
感謝!
lcskc- 一般會員
- 文章總數 : 59
年齡 : 52
來自 : 高雄
職業 : 模具
愛好 : pc相關
個性 : 安靜
使用年資 : 10
使用版本 : R12
經驗值 : 4172
威望值 : 31
注冊日期 : 2014-05-02
回復: [已解決]請教一個標註LISP問題
先說明一下
不是不一樣的思維,而是語法錯誤
因為
原本的你執行的(command "dimlinear")<==指令不完整,
在執行標註的指令後要給二個端點位置,及放置標註的位置,
你因為沒有給後面就執行(command "dimstyle" "r" "iso-25"),所以出現了錯誤訊息,因此不成功
另外你先前問的~可以執行,加工一下
(defun C:qq(/ tpenter tmenter temptp)
(setq tpenter(getreal "\n 輸入上限值:"))
(setq tmenter(getreal "\n 輸入下限值:"))
(setq temptp (getint "\n 輸入小數點位數:"))
(setq p1(getpoint "\n 第一點:"))
(setq p2(getpoint "\n 第二點:"))
(setq p3(getpoint "\n 第三點:"))
(command "dimstyle" "r" "iso-25-3")
(command "dimtol" "on")
(command "dimlinear" "dimtdec" temptp "dimtp" tpenter "dimtm" tmenter p1 p2 p3)
(command "dimstyle" "r" "iso-25")
(princ)
)
以上給你參考,可自行調整需求,太難的要求就不行了,要等其他高手幫忙嚕
不是不一樣的思維,而是語法錯誤
因為
原本的你執行的(command "dimlinear")<==指令不完整,
在執行標註的指令後要給二個端點位置,及放置標註的位置,
你因為沒有給後面就執行(command "dimstyle" "r" "iso-25"),所以出現了錯誤訊息,因此不成功
另外你先前問的~可以執行,加工一下
(defun C:qq(/ tpenter tmenter temptp)
(setq tpenter(getreal "\n 輸入上限值:"))
(setq tmenter(getreal "\n 輸入下限值:"))
(setq temptp (getint "\n 輸入小數點位數:"))
(setq p1(getpoint "\n 第一點:"))
(setq p2(getpoint "\n 第二點:"))
(setq p3(getpoint "\n 第三點:"))
(command "dimstyle" "r" "iso-25-3")
(command "dimtol" "on")
(command "dimlinear" "dimtdec" temptp "dimtp" tpenter "dimtm" tmenter p1 p2 p3)
(command "dimstyle" "r" "iso-25")
(princ)
)
以上給你參考,可自行調整需求,太難的要求就不行了,要等其他高手幫忙嚕
luswlife- 一般會員
- 文章總數 : 103
年齡 : 45
來自 : 台北
職業 : 繪圖
愛好 : 吃喝玩樂
個性 : 怪異
使用年資 : 10年
使用版本 : 2014
積分 : 4
最佳解答 : 1
經驗值 : 5868
威望值 : 132
注冊日期 : 2010-01-28
回復: [已解決]請教一個標註LISP問題
感謝熱心指導!
可能我表達的不是很好,我所謂不一樣思維是說用標註型式的方式和我一開始問的那種方式,
你用的這些使用標註型式的方法我都照著試了ok沒問題,可以正常使用.
我要請教的是為何下面這種方式公差不顯示
(command "dimtol" "OFF")如果加這一行,他把公差關了,但上一行的標註為何會被關掉一直搞不懂,明明不同行,
我試著手動方式在cad裡執行lisp步驟
公差上限dimtp
公差下限dimtm
打開公差dimtol on
標註 (ok 正常執行)
關閉公差顯示
標註 (ok 沒公差)
手動方式正常,不知怎麼把手動過程寫成lisp變不正常,一直搞不定!
可能我表達的不是很好,我所謂不一樣思維是說用標註型式的方式和我一開始問的那種方式,
你用的這些使用標註型式的方法我都照著試了ok沒問題,可以正常使用.
我要請教的是為何下面這種方式公差不顯示
- 代碼:
(defun C:qq(/ tpenter tmenter temptp)
(setq tpenter "0.05")
(setq tmenter "-0.02")
(setq temptp "2")
(command "dimtol" "on")
(command "dimlinear" "dimtdec" temptp "dimtp" tpenter "dimtm" tmenter)
(command "dimtol" "OFF")
(princ)
)
(command "dimtol" "OFF")如果加這一行,他把公差關了,但上一行的標註為何會被關掉一直搞不懂,明明不同行,
我試著手動方式在cad裡執行lisp步驟
公差上限dimtp
公差下限dimtm
打開公差dimtol on
標註 (ok 正常執行)
關閉公差顯示
標註 (ok 沒公差)
手動方式正常,不知怎麼把手動過程寫成lisp變不正常,一直搞不定!
lcskc- 一般會員
- 文章總數 : 59
年齡 : 52
來自 : 高雄
職業 : 模具
愛好 : pc相關
個性 : 安靜
使用年資 : 10
使用版本 : R12
經驗值 : 4172
威望值 : 31
注冊日期 : 2014-05-02
回復: [已解決]請教一個標註LISP問題
.把公差系統變數先用setvar 設定好..再執行dimlinear 就可正常運作.
pause 會讓LISP先暫停讓操作者輸入後.後面才會再繼續執行.
(defun C:qq()
(setvar "dimtp" 0.05)
(setvar "dimtm" -0.02)
(setvar "dimtdec" 2)
(command "dimtol" "on")
(command "dimlinear" pause pause pause )
(command "dimtol" "off")
(princ)
)
pause 會讓LISP先暫停讓操作者輸入後.後面才會再繼續執行.
(defun C:qq()
(setvar "dimtp" 0.05)
(setvar "dimtm" -0.02)
(setvar "dimtdec" 2)
(command "dimtol" "on")
(command "dimlinear" pause pause pause )
(command "dimtol" "off")
(princ)
)
shenhung- 高級會員
- 文章總數 : 281
年齡 : 57
來自 : 新北市
職業 : 塑膠模具設計.AUTOLISP
愛好 : 音樂
個性 : 隨和
使用年資 : 18年
使用版本 : 2010
積分 : 15
經驗值 : 8075
威望值 : 1188
注冊日期 : 2009-06-03
回復: [已解決]請教一個標註LISP問題
shenhung 寫到:.把公差系統變數先用setvar 設定好..再執行dimlinear 就可正常運作.
pause 會讓LISP先暫停讓操作者輸入後.後面才會再繼續執行.
(defun C:qq()
(setvar "dimtp" 0.05)
(setvar "dimtm" -0.02)
(setvar "dimtdec" 2)
(command "dimtol" "on")
(command "dimlinear" pause pause pause )
(command "dimtol" "off")
(princ)
)
好厲害,解決我一開始的困擾了,感謝!
也感謝 luswlife 的幫忙!
lcskc- 一般會員
- 文章總數 : 59
年齡 : 52
來自 : 高雄
職業 : 模具
愛好 : pc相關
個性 : 安靜
使用年資 : 10
使用版本 : R12
經驗值 : 4172
威望值 : 31
注冊日期 : 2014-05-02
AutoCAD顧問 :: 技術(發言等級:一般會員) :: :: 進階討論 :: 已解決主題精華區
第1頁(共1頁)
這個論壇的權限:
您 無法 在這個版面回復文章