2026年4月14日 星期二

[AutoTower] 檢核與除錯

 

自動檢查邊距(Edge Distance)

輸入角鋼寬度與螺栓準距,如果螺栓孔太靠近邊緣,程式就發出警告。


尺寸標註

鐵塔的尺寸標註,數值大都是經過四捨五入後的整數,在細部尺寸加總後,不一定會剛好等於構件長度,因此需要核對這兩部分是否長度相等。


統計數量

2D作圖時,構件、鐵板和螺栓的倍權與數量有可能會設置錯誤,以至於影響數量的正確性,所以需要練習並熟悉知道那些地方的倍權與數量。例如

立面橫擔主材與吊材是不應計入數量的,所以它們的數量是0,至於倍權多少則不重要了,因為這部分的數量是放在橫擔平面圖內計入。


2026年4月12日 星期日

[AutoTower] 輔助作圖

在從事鐵塔繪圖時,常常會需要先畫出特定的輔助線,才能決定決定正確位置。


輔助線

atPtToPer.lsp  從一交點畫一條垂直線到其它直線。線條圖層「Defpoints」。

atPtToPerO.lsp  從一交點畫一條垂直線到其它直線,然後加做偏移複製。線條圖層「Defpoints」。

atOffsetDef.lsp  畫出平行線。線條圖層「Defpoints」。適用於輔助標示出螺栓間距。


變更線型

atSideToHidden.lsp   根據一條邊界線,把其中一邊做出隱藏線。適用於角鋼被鐵板遮蔽處。

atHiddenLine.lsp       把選到的線變更成隱藏線。

atHiddenLine1.lsp     根據一條邊界線,把其中一邊做出隱藏線。

atHiddenLine2.lsp     把介於兩條邊界線之間的線,做出隱藏線。




2026年4月11日 星期六

[AutoTower] AutoCAD 物件資料

AutoCAD 物件,大略可區分為圖形物件與非圖形物件。圖形物件是以 DXF 群碼方式為架構。 

AutoCAD 建立圖形物件的指令,在不同版本間不盡相同。因此如果 AutoLISP 程式使用 AutoCAD 基本繪圖指令來建立圖形,有可能會產生錯誤,這一點值得注意。

因此,使用非 AutoCAD 基本繪圖指令,也就是使用 DXF 群碼來建立圖形,應該是較為明智的。


圖形物件 DXF 群碼

POINT

LINE

CIRCLE

ARC

ELLIPSE

XLINE

RAY

POLYLINE

POLYGON

RECTANG

REGION

HATCH

TEXT

MTEXT

BLOCK

TABLE


建立圖形物件


非圖形物件 DXF 群碼


建立非圖形物件

2026年4月10日 星期五

[AutoTower] 事件反應器

 當繪圖員做了哪些事,進而觸發事件反應器時,AutoTower系統似乎就可以因應做些甚麼。


[AutoTower] 尺寸標註

同一張圖面,因應實際需求,會有不同大小比例或不同標註形式的尺寸。因此需要預先設定多款標註型式。


標註比例

因應不同圖面單位與比例,需要設定不同的標註比例。

整體標註比例最好應跟隨圖面單位與比例的係數縮放。


匯出與匯入標註型式

把舊有圖面的標註型式匯出成為標準檔案,然後在新的圖面中匯入,成為可用的標準型式。

提醒:在開始一個新的圖面時,最好先匯入標註型式。


預設的標註型式

Standard


精確度

與基線、斜率有關的數值其精確度應到小數第 3 位,角鋼孔距則為個位數整數。所以在標註型式上應該妥為因應。



尺寸文字避讓

在狹小的間距標註尺寸,會讓尺寸數據顯得擁擠,因此需要手動或程式自動避讓。

在不同的標註用途與標註型式下,因地制宜可以設定一個「避讓係數」:

  • 主材標註:文字固定向外推 80 單位。

  • 斜材標註:文字依斜率方向偏移。

  • 螺栓孔位:文字垂直於準距線彈開。


內部子程式

(at_DimCStyGet)    取得目前標註型式  RETURN "(目前標註型式)"

(at_DimCStySet  styleName)               設定目前標註型式

(at_DimDetails ent)                               提取標註物件的所有關鍵變數

(at_DimStyUpdate sl styleNew)           將新的標註型式套用到物件

(at_DimSetLinearScale ent fac)           修改主要單位的線性比例

(at_DimRoundOverride ent)                將測量值四捨五入後寫入置換文字

(at_DimOffset ent ang dist)                  錯開標註文字位置

(at_DimSmart style p0 rt ps strDist)   標註尺寸


外部指令

atDimExport.lsp   匯出目前圖面的標註型式,檔名 "C:\\AutoTower\\User\\_DimStyle.dwg"。

提醒:標註型式名稱為中文的,將無法匯出與匯入。

atDimImport.lsp         匯入標註型式到目前圖面

atDimStyDup.lsp        套用標註型式

atDimRoundAll.lsp     將測量值四捨五入成為整數後寫入文字置換

atDimOffset.lsp           將標註的文字錯開位置

atDimFixScale.lsp       修改主要單位的線性比例

atDimDetail.lsp           將物件另行縮放比例,但尺寸標註維持原樣



[AutoTower] 線型

 


預設的線型



整體線型比例



物件線型比例


2026年4月9日 星期四

[AutoTower] 錯誤處理

 

*error*


AutoLISP 程式語言神奇之處,是可以把 '函式' 當作參數。

  • vl-exit-with-error  將控制從 VLX 錯誤處理器傳遞給調用它的名稱空間的 *error* 函數

2026年4月6日 星期一

[AutoTower] 文字型式

舉凡鐵塔設計尺寸,構件編號、規格、長度、尺寸標註,鐵板編號、規格,螺栓規格、數量和其它註解...等,都跟文字型式有關。


建立標準文字型式

大原則,依需求建立。

分析、歸納與定義。

利用AutoCAD原有的指令建立文字型式。


在實務上,字型寬度有可能設定到 0.7,所以同一種字型似乎可以如下這樣建立:

尺寸線-大

尺寸線-中

尺寸線-小

構件編號

構件規格

構件長度

單線10

單線09

單線08

單線07


利用程式將繪圖區內已建立之許多文字型式儲存到外部檔案,作為標準字型。


如何使用

程式需要使用到字型時,先偵測特定字型是否存在,如果不存在,則從外部檔案讀入字型。


自訂變數

構件編號字型  --  "StlNoTextStyle" "構件-編號" "STR" "RW" "構件編號字型")

規格  --  ("StlSpecTextStyle" "構件-規格" "STR" "RW" ""構件規格字型")

長度  --  ("StlLenTextStyle" "構件-長度" "STR" "RW" "構件長度之字型")

尺寸標註

鐵板編號

規格

螺栓規格

數量

其它註解


文字型式管理員

1. c:atTxtStyExport 可以將目前圖面內的文字型式匯出成 "_varTextStyle.txt " 檔,其內容格式如下:

; AutoTower 自動生成,請勿手動編輯此文件

; 字型名稱  字體檔名  長寬比

("標準-07" "Arial.ttf" 0.7)

("單線-1"  "simplex.shx,chineset.shx" 1.0)


2. (at_TxtStyImport) 可以讀取外部 "_varTextStyle.txt " 檔,將文字型式匯入到目前圖面內。


系統開發與管理建議

在處理鐵塔2D佈樣與各種構件標註時,這套解決方案有幾個可以進一步優化或考量的面向:

1. 建立字體缺失的防呆機制 (findfile) 在匯入字體時,如果使用者電腦缺少特定的 .shx.ttf 檔案,AutoCAD 會彈出警告或自動以替代字體取代,這可能會導致斜率標註或構件編號的排版跑位。您可以在 entmake 之前,加入 (findfile fontFile) 的檢查。如果找不到字體,可以透過警示訊息提醒使用者,或者在程式內部自動降級(Fallback)使用如 txt.shx 等系統預設字體。

2. 與您現有的 DCL 介面整合 您可以將匯入文字型式的功能整合到參數輸入介面(DCL)中。例如,在啟動 AutoTower 佈樣程式時,自動在背景讀取這個 .txt 檔並載入必要的文字型式;或者在 DCL 面板中提供一個下拉選單,讓使用者根據不同業主(例如台電或其他客戶)的規範,一鍵切換整套「標註配置檔」。

3. 考慮註解性文字 (Annotative Text) 不同於一般的機械圖,鐵塔佈樣圖面中常會有大量極微小的細節與巨觀視圖的切換。如果您未來希望在不同的視埠(Viewport)比例下,構件編號與規格文字都能保持一致的列印字高,可以考慮在建立文字型式時加入註解屬性(Annotative)。不過這會牽涉到延伸字典(Extension Dictionary)的建立,會比上述純 DXF 碼複雜一些,通常搭配樣板檔(.dwt)會是比較簡單的作法。

4. 擴充文字對齊與圖層屬性 目前的 .txt 格式只記錄了「名稱、字體、長寬比」。未來若有需要,您的格式還可以擴充加入「預設圖層 (Layer)」與「文字高度 (TextHeight)」。例如:標註構件編號時,程式不僅幫使用者切換到正確的字型,還同時將該文字鎖定於指定的圖層中,這會大幅提升出圖管理的效率。