在AUTOCAD一次更換所有字型的字體檔(changing all text ...

文章推薦指數: 80 %
投票人數:10人

(if (= “n" (getkword “\n 本程式為從Inventor工程圖轉檔至AutoCAD dwg檔之後,字型轉換需求而設計\n 本程式將對本圖檔之所有字型字體檔更改 ... DavidHouIT專欄 熱愛IT的人 關於 在AUTOCAD一次更換所有字型的字體檔(changingalltextstylesinAutoCADat once) AutoLisp 2015年03月02日 Comments:3 生管常需要將AutoCAD2D圖檔傳給外包廠商,進行加工製作之依據。

但有些零件是研發部用Inventor繪製出的3Dipt零件檔及其2Didw工程圖檔。

但對方僅使用AutoCAD,無法讀取idw檔案。

此時就必須將idw檔轉成AutoCADdwg檔格式,再傳給對方。

但是轉成dwg之後,發現文字怪怪的,有些是細明體有些是亂碼。

究其原因,乃出在Inventor工程圖之字型與AutoCAD字型不僅名稱不同,定義也不同。

而且Inventor之字型繁多,若轉成AutoCAD之後再一一修改,要花費很多時間與人力精神。

但不修改,傳給對方,若因判讀錯誤,導致加工出錯,問題就大了。

為解決此問題,便設計一個Lisp程式。

可以一次性更換圖檔內所有字型定義。

凡英數字均使用Romans.shx,中文字均使用Chineset.shx。

如此圖面文字變成正確、格式一致又清爽。

載入程式ChgAllStylesToCht.LSP,再執行指令ChgAllStylesToCht,即完成轉換。

當然,程式還是要放到功能表之按鈕,給使用者使用。

原Inventoridw工程圖,如圖示:(original:Inventoridw) 轉成AutoCADdwg圖檔,有些是細明體,有些是亂碼。

如圖示:(whenconvertedtoAutoCAD, sometextstylesarechaotic,can’tseeoriginal content) 原因就是從Inventor帶過來的繁多字型定義,使用字體不一致,如圖示:( Because ofconverting(idw->dwg),tobring textstyleschaotic ) 經過程式轉換之後,圖面文字變成正確、格式一致,又清爽。

如圖示:(afterrunninglisp,textstyle has beencorrected) 程式ChgAllStylesToCht.LSP (mainprogram) (defunc:ChgAllStylesToCht() (defunmyerr(m) (setq*error*olderr) (princm) ) (setqolderr*error**error*myerr) (initget1“yn") (if(=“n"(getkword“\n本程式為從Inventor工程圖轉檔至AutoCADdwg檔之後,字型轉換需求而設計\n本程式將對本圖檔之所有字型字體檔更改為romans+chineset,確定執行?“)) (exit) ) (setqstylst (list)) (setqstydata(tblnext“style"t) styname(cdr(assoc2stydata)) stylst (append(liststyname)stylst) ) (while(setqstydata(tblnext“style")) (setqstyname(cdr(assoc2stydata)) stylst (append(liststyname)stylst) ) ) (setqn0) (repeat(lengthstylst) (chgstyletocht(nthnstylst)) (setqn(+1n)) ) (alert“***作業完成***") (setq*error*olderr) (princ) ) ;—–程式用到的函式:chgstyletocht()(subrutineprogram)– (defunchgstyletocht(stname) (if(tblsearch“style"stname) (progn (command“-style"stname“romans.shx,chineset.shx"010“n"“n"“n") ) (princc) ) ) (princ) ;;———————————————————————– 程式到此結束 後續提醒:本程式是在2004&2005版開發。

AutoCAD在不同版本,style指令的使用程序可能會有差異,必須修改程式中的這行內容: (command“-style"stname“romans.shx,chineset.shx"010“n"“n"“n") 分享此文:TwitterFacebook請按讚:喜歡正在載入... 相關 Tagged:AutoCAD,AutoLisp 文章分頁導航 ←利用遞迴設計逆展BOM(RecursiveMethodUsedinBOM implosion) 對AutoCAD圖框自動填寫出圖比例(writingthedrawingscaleinAutoCAD automatically)→ 3thoughtson“在AUTOCAD一次更換所有字型的字體檔(changingalltextstylesinAutoCADat once)” Evan 2021年05月13日at10:49:31Reply ;錯誤:損壞的引數類型:stringpnil 請問我執行後出現這行警語,而且字型也沒有轉換… 讚讚 侯安恭 2021年05月21日at10:19:46Reply 請問程式執行到哪裡出現次錯誤? 讚讚 侯安恭 2021年05月21日at10:21:06Reply 或是你傳dwg給我,幫你試試看 讚讚 發表迴響取消回覆 在此輸入你的回應… 在下方填入你的資料或按右方圖示以社群網站登入: 電子郵件(必須填寫)(電子郵件地址不會公開) 名稱(必須填寫) 個人網站 您的留言將使用WordPress.com帳號。

( 登出 /  變更 ) 您的留言將使用Twitter帳號。

( 登出 /  變更 ) 您的留言將使用Facebook帳號。

( 登出 /  變更 ) 取消 連結到%s 透過電子郵件通知我後續回應。

有新文章時用Email通知我。

Δ DavidHou 侯安恭 熱愛IT的人 顯示完整個人檔案→ 搜尋 文章分類文章分類 選擇分類 AutoLisp  (94) BorlandC++Builder  (29) C  (9) C#  (2) C++  (5) 疑難雜症  (2) 英文  (1) Inventor3D設計  (6) SQL  (12) VB,VBA  (2) Windows  (7) 未分類  (2) 文章歷程 文章歷程 選擇月份 2022年八月 (2) 2022年六月 (5) 2022年三月 (2) 2021年九月 (1) 2021年七月 (2) 2021年五月 (1) 2021年四月 (6) 2021年三月 (15) 2021年二月 (18) 2021年一月 (21) 2020年十二月 (10) 2020年十一月 (4) 2019年二月 (3) 2019年一月 (1) 2018年一月 (2) 2017年十二月 (1) 2017年十一月 (1) 2017年五月 (2) 2017年四月 (5) 2016年十二月 (4) 2016年七月 (2) 2016年六月 (1) 2016年三月 (1) 2016年二月 (3) 2015年十月 (1) 2015年六月 (1) 2015年五月 (1) 2015年四月 (4) 2015年三月 (8) 2015年二月 (2) 2015年一月 (3) 2014年十二月 (8) 最多人點選dropbox.com/sh/e7izgrbq0c…網誌統計 99,191點擊次數 在WordPress.com建立免費網站或網誌. 隱私權與Cookie:此網站可使用Cookie。

繼續使用此網站即表示你同意使用Cookie。

若要瞭解更多資訊,包括如何控制Cookie,請參閱此處: Cookie政策 追蹤 已追蹤 DavidHouIT專欄 我要註冊 已經有WordPress.com帳號了?立即登入。

DavidHouIT專欄 自訂 追蹤 已追蹤 註冊 登入 複製短網址 回報此內容 以閱讀器檢視 管理訂閱 收合此列   載入迴響中...   發表迴響… 電子郵件(必要) 名稱(必要) 網站 %d位部落客按了讚:



請為這篇文章評分?