AutoCAD顧問
還沒有註冊嗎...即日起免費註冊,所有最完整的AutoCAD討論、教學及資源都在論壇裡喔~

[已解決] LISP 指令 TEXT的問題

上一篇主題 下一篇主題 向下

[已解決] LISP 指令 TEXT的問題

發表 由 r1543761189 于 2011-10-21, 14:42

請教各位前輩

(defun c:123()
(setvar "cmdecho" 0)
(setq T00 (getpoint "Enter Left/Low Point:"))
(command "-text" t00 50 0 "abcd" "")
(setvar "cmdecho" 1)
(prin1)
)


上面的程式 我在同一台電腦 執行(我的是cad 2006)有的圖檔可以用,有的不行用.
比方說 我在A圖檔 執行 就出現 abcd <--正常
我在B圖檔 執行 就出現 0 <---這個0的角度是50度

我在cad裡直接執行text , 在A檔 執行 text 需要輸入高度
在B檔 執行 text 不需要輸入高度




請問各位前輩,問題出在哪???
如果我想在每個檔案都可以使用,那程式應該怎麼寫??
謝謝!!





r1543761189 在 2011-10-24, 00:52 作了第 1 次修改
avatar
r1543761189
一般會員
一般會員

文章總數 : 21
年齡 : 37
來自 : 彰化
職業 : 設計
愛好 : 布袋戲
個性 : 安靜
使用年資 : 新手初學
使用版本 : 新手初學
經驗值 : 2304
威望值 : 0
注冊日期 : 2011-09-30
男 天秤座 猴

回頂端 向下

回復: [已解決] LISP 指令 TEXT的問題

發表 由 明~ 于 2011-10-21, 17:42

r1543761189 寫到:請教各位前輩


上面的程式 我在同一台電腦 執行(我的是cad 2006)有的圖檔可以用,有的不行用.
比方說 我在A圖檔 執行 就出現 abcd <--正常
我在B圖檔 執行 就出現 0 <---這個0的角度是50度

我在cad裡直接執行text , 在A檔 執行 text 需要輸入高度
在B檔 執行 text 不需要輸入高度



這是因為B圖檔的文字樣式有設定字高的關係~
avatar
明~
高級會員
高級會員

文章總數 : 307
年齡 : 37
來自 : 彰化
職業 : 機械
愛好 : 打球 騎車 健行 音樂 電影 (說不完...)
個性 : 不與人爭
使用年資 : 從學生時代接觸到現在(工作中不一定使用)
使用版本 : 2004和2008
積分 : 17
經驗值 : 4611
威望值 : 670
注冊日期 : 2009-12-24
藍鵲292號
男 雙魚座 猴

回頂端 向下

回復: [已解決] LISP 指令 TEXT的問題

發表 由 adslwang 于 2011-10-23, 14:08

(defun c:123()
(setvar "cmdecho" 0)
(command "-STYLE" "STANDARD" "CHINESET.SHX" "" "" "" "" "" "")
;;加入這一行,將型式直接指定為內定的字型及字高(2.5),應該就沒有問題
;;如果使用的字型及字高需另外控制,就需要別的方法再加入一些變數控制

(setq T00 (getpoint "Enter Left/Low Point:"))
(command "-text" t00 50 0 "abcd" "")
(setvar "cmdecho" 1)
(prin1)
)
我想你要的應該是有答案的,試一試吧! 我只會基本的而已.....
avatar
adslwang
高級會員
高級會員

文章總數 : 372
年齡 : 39
來自 : 台南
職業 : 自由業
愛好 : 電腦、旅行
個性 : 樂觀
使用年資 : 1年
使用版本 : 2009
積分 : 17
經驗值 : 4605
威望值 : 355
回帖精華 : 1
注冊日期 : 2008-10-02
藍鵲88號
男 處女座 馬

回頂端 向下

回復: [已解決] LISP 指令 TEXT的問題

發表 由 r1543761189 于 2011-10-24, 00:50

恩~
adslwang 前輩的方法可以用了!謝謝
avatar
r1543761189
一般會員
一般會員

文章總數 : 21
年齡 : 37
來自 : 彰化
職業 : 設計
愛好 : 布袋戲
個性 : 安靜
使用年資 : 新手初學
使用版本 : 新手初學
經驗值 : 2304
威望值 : 0
注冊日期 : 2011-09-30
男 天秤座 猴

回頂端 向下

回復: [已解決] LISP 指令 TEXT的問題

發表 由 djh1006 于 2013-04-28, 07:37

r1543761189 寫到:請教各位前輩
(defun c:123()
 (setvar "cmdecho" 0)
 (setq T00 (getpoint "Enter Left/Low Point:"))
 (command "-text"  t00 50 0 "abcd" "")
 (setvar "cmdecho" 1)
(prin1)
)
代碼:
(defun c:123()
(setvar "cmdecho" 0)
(setq PT1 (getpoint "Enter Left/Low Point:"))
(setq TH (cdr (assoc 40 (tblsearch "style" (getvar "textstyle")))));查詢文字型式style中的高度是否有設定
(if (= TH nil)
(command "-text" PT1 "3" "0" "abcd");文字型式的字高沒設定,高度3,角度0,記得,非變數要加雙引號
(command "-text" PT1 "0" "abcd");文字型式的字高有設定,角度0
)
(setvar "cmdecho" 1)
(prin1)
)
指令:(tblsearch "style" (getvar "textstyle"))
((0 . "STYLE") (2 . "Standard") (70 . 0) (40 . 1.735) (41 . 0.75) (50 . 0.0)
(71 . 0) (42 . 3) (3 . "romans.shx") (4 . "chineset.shx"))

上述為文字型式的DXF群碼,(40 . 1.735)就是文字高度
------------------------------------------------------------------------------------
(cdr (assoc 40 (tblsearch "style" (getvar "textstyle"))))

上述為取出文字型式中的文字高度,以判斷有沒有設定文字高度,若有設定高度,則標註註型式中文字高度會變成這個高度,意思是不管標註註型式中文字高度設定多少,都會變成文字型式中的文字高度,除非把文字型式中的文字高度設定為0
------------------------------------------------------------------------------------
SYTLE文字型式有設定文字高度

------------------------------------------------------------------------------------
SYTLE文字型式沒有設定文字高度

------------------------------------------------------------------------------------
if的用法
(if (條件成立)
執行此行(command "-text" PT1 "3" "0" "abcd")
否則
執行此行(command "-text" PT1 "0" "abcd")

Tiger&蘋果爸 寫到:讚啦!! 謝謝熱心圖文回覆~< 積分 +1>
[公告]關於團隊成員的回文及貢獻
avatar
djh1006
中級會員
中級會員

文章總數 : 156
年齡 : 46
來自 : 彰化縣員林鎮中山路二段369巷二弄15-14號
職業 : 沖壓模具設計工程師
愛好 : UG,SOLIDWORKS,AUTOCAD 2D,autolisp
個性 : 內向偏外
使用年資 : 18以上
使用版本 : 2014
積分 : 6
經驗值 : 3407
威望值 : 294
注冊日期 : 2011-06-16
男 獅子座 豬

回頂端 向下

上一篇主題 下一篇主題 回頂端


 
這個論壇的權限:
無法 在這個版面回復文章