2026年7月12日 星期日

[AutoTower] 放樣圖

如果不是單純地抄圖,那麼在繪製詳裝圖之前就需要先放樣。

需要先考慮如何輔助快速放樣,之後才來考慮如何輔助快速地將放樣圖轉為詳裝圖。

如果已經有放樣圖了,那麼要如何才能將它快速轉為詳裝圖。


放樣時的情況

1. 線條重疊交錯,需要分層分色管理,包括移動物件。

2. 繪製角鋼、鐵板時,不會同時插入編號球。


放樣圖轉為詳裝圖

1. 需要移除沒有用的線條。

2. 需要搬移重疊的線條。




2026年6月27日 星期六

[Arduino] APDS-9960 手勢感測器

 APDS-9960 手勢感測器可以簡單感測手部揮動的方向,但無法偵測到細微的動作。這個感測器也因為製造商的不同,其感測距離與靈敏度也有所差異。


電路圖



接線

Arduino         APDS9960
3.3V                  VCC
GND                 GND
A4                     SDA
A5                     SCL


下載程式庫

Step1 點擊 Arduino IDE 的 [工具] > [程式庫管理員]。


Step2 在上端欄位內輸入「APDS9960]」,找到「Adafruit APDS9960 library」之後點擊 [安裝],安裝完成後點擊 [關閉]。


修改程式庫

APDS-9960 模組底板上有一顆晶片的 ID 可能與程式庫預設的不同,我們需要先找到這顆晶片的 ID,然後修改程式庫。

Step1 開啟檔案「 i2c_scanner.ino 」,然後開啟「序列埠視窗」,並將鮑率設定在「115200」。

Step2 Upload 程式到 Arduino UNO。

Step3 觀察序列埠視窗內的資料。此次測試模組的 I2C Address 是 0x39,晶片 ID 是 0x9E,如下圖。


Step4 用「小作家」或「記事本」編輯器開啟檔案「Adafruit_APDS9960.cpp」。

Step5 找到「 /* Make sure we're actually connected */」這一行,將其下方的晶片 ID 改成「0x9E」,如下圖。


Step6 儲存檔案,並關閉編輯器。


開啟範例程式

Step1 點擊 Arduino IDE 的 [檔案] > [範例] > [Adafruit APDS9960 Library] > [gesture_sensor]。

Step2 Upload 程式到 Arduino UNO。

Step3 觀察序列埠視窗內的資料。如果出現「Device initialized!」表示模組已正常初始化。

請注意:雖然它已初始化完成,也僅僅只是表示晶片已正常工作,但這並不表示模組已經可以正常感測手勢並輸出訊號。


Step4 此時你可以在模組前面揮一揮手,調整一下會動的距離遠近與揮手速度。如果正常,序列埠視窗會顯示相對應的字元,如下圖。


問題與解決方案

如果序列埠視窗出現 "failed to initialize device! Please check your wiring." 訊息,或是雖然有出現 "Device initialized!" 訊息,但是揮手後它並無任何動作,請如下依序檢查:

Step1. 檢查接線是否正確。

Step2. 檢查 APDS-9960 的晶片 ID 是否正確,是否已正確修改 Adafruit_APDS9960.cpp 內的晶片 ID。

Step3. 檢查 APDS-9960 感測器底板上的「PS」與「I2C PU」跳線銅片是否已短路,如下圖。

有些模組在出廠時並未短路,如下圖。


Step4 我們在實務上發現,有些模組在上電後並無法馬上正常工作。此時,您可以試試,將模組重複多次上電與斷電,之後再對模組揮動手勢,然後就可正常運作了。




相關連結

2026年5月26日 星期二

[AutoTower] 應力圖

 有了鐵塔高度與寬度等基本資料之後,接下來就是計算應力和繪製應力圖了。


鐵塔骨架部位拆解

以積木概念,將鐵塔拆解成數個部位,如此有利於程式之撰寫。

主塔

繼塔

塔腳 --- 立面、腹斜面

橫擔  --- 平面、立面、腹斜面、立斷面

塔身斷面

平台

其它


圖層規劃

圖層名稱         顏色

應力-結構

應力-規格

應力-螺栓

應力-標註


繪圖模式

應力圖的繪圖模式為 0。

切換繪圖模式 c:atDwgMode

取得繪圖模式    _Tower\ (setq at$dwgMode (at_DwgModeGet))  

指定繪圖模式 0-2    _Tower\ (at_DwgModeSet 1)


相關指令

應力圖指令前綴字元為「ata」。

指定圖面單位與比例    atDwgIni

規劃構件規格之圖層名稱、顏色、字型、字高   ataConfig

繪製梯形骨架    ataTrape

繪製梯形節段    ataSegments

繪製主塔骨架    ataBlMain

繪製繼塔骨架    ataBlSub

檢視基點            atBpView

繪製主柱接頭    ataPostJoint

繪製塔腳             ataFoot

繪製橫擔             ataArm

繪製橫擔斷面     ataArmSec

繪製橫擔接頭     ataArmJoint

繪製塔身斷面     ataBodySec

繪製平台             ataPlatForm

繪製平面爬梯     ataLadder

標註角鋼規格     ataStlLSpecAdd

標註螺栓規格數量    ataBoltQtyAdd

修改角鋼規格與螺栓規格數量    ataSpecEdit

修改規格空格    ataSpecSpace

圖塊管理    ataBlock

書寫文字    ataText

標註尺寸    ataDim


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)」。例如:標註構件編號時,程式不僅幫使用者切換到正確的字型,還同時將該文字鎖定於指定的圖層中,這會大幅提升出圖管理的效率。

2026年3月31日 星期二

[AutoTower] 可用資源

VisualLISP IDE

VisualLISP教學影片

VisualLISP教學

LEE MAC

AfraLISP

AutoCAD 2022 Help(英文)

AutoCAD 2022 Help (簡體中文)

VL 函數

在 VsCode 裡發展 AutoLISP





[AutoTower] 關於塔身

 


名稱定義



塔身截面

塔身截面型式

從塔身截取斷面寬度

插入塔身截面基點



[AutoTower] 橫擔



橫擔型式

橫擔有多種型式,如果要考慮到每一種型式都做到完善,需要耗費不少時間,可選擇幾款比較常見的型式來「操練」,進而從其中了解相關知識。

橫擔三面:平面、立面和斜面。


名稱定義



從塔身到橫擔

橫擔可以視為塔身的手,以這個概念來規劃橫擔該如何寫程式。


橫擔需要哪些資料從塔身傳遞過來

塔身截面寬度

主柱規格、Gauge

橫擔主材鐵板厚度


橫擔基本資料

橫擔型式

橫擔寬度



橫擔基點

每一個橫擔平面都需要一個基點作為繪圖的依據。

橫擔截面基點名稱:GW、C1、C2...

橫擔平面東、南、西、北側基點名稱:GW-PE、GW-PS、GW-PW、GW-PN

橫擔立面東、南、西、北側基點名稱:GW-EE、GW-ES、GW-EW、GW-EN


橫擔立截面



圖層規劃

南北向的橫擔,在放樣時可能線條會重疊,或許可以利用圖層來區別它們,或是將整個橫擔平面移動到旁邊。然而,如果上述兩者都做,應該會讓繪圖者更加方便。

圖層規劃需同時考慮到放樣圖、詳細圖、裝建圖和鐵板圖之使用。

以橫擔部位來作為圖層首碼,在於必要時方便選取並移動該圖形。

圖層名稱                顏色

GW-放樣

GW-詳細圖

GW-裝建圖

GW-構件-編號球

GW-構件-規格


結構化繪圖

重點:收集橫擔樣式,找出差異性。

1. 塔身斷面

2. 橫擔主材

3. 橫擔臂材

4. 橫擔分割型式

掛線板





2026年3月23日 星期一

[AutoTower] 基線與基點

正確的斜率可以將空間中鐵塔側面 '攤平' 在地表或是 2D 繪圖面,以利於放樣出實際長度。

基線是鐵塔放樣的依據,一切尺寸都從這裡開始,基線一旦錯了就一切前功盡棄。


鐵塔設計資料

梯形有上寬、下寬、垂高、主柱彎曲點偏移距離,就可以計算出斜率。

若像是繼塔或塔腳,只知道梯形上寬和垂高,該如何計算出下寬和斜率? 

由基點的塔體部位屬性值,就可知道這個基點是UPPER、LOWER、幾米塔身或幾米繼塔!


鐵塔斜率

計算鐵塔斜率 (at_SlopeCal intTW intBW intVH)    RETURN '(realX1 realZ1 realZ2) 

繪出斜率三角符號 (at_SlopeDraw p0 strX1 strZ1 strZ2)




主基線與子基線

主基線  指由基本設計資料所產生的基線,有上塔身、下塔身、繼塔與塔腳。

子基線  指由主基線引申出來的其它基線,例如增設繼塔或加高下塔身...等。


子基線需要知道被引申的斜率, 取得已知斜率的方式:

1. 由基本資料計算得來。

2. 從斜率三角形得來。

3. 使用者輸入一次斜。


基點

用來標定基線位置與儲存基線資料。




基點屬性裡的「梯形控制」

主基線梯形有上寬、下寬、垂高、主柱彎曲點偏移距離,就可以計算出斜率。但是引申基線卻沒有這樣的資料,還好它有梯形的頂邊、左側、右側等圖形物件,讓我們可以從這些物件的端點座標與垂直高度推算出斜率。


主基點、子基點、腳基點與作用基點

用來區分不同的基線樣式,所以區分為主基點、子基點與腳基點。主基點用來產生鐵塔主結構,子基點用來產生繼塔結構、腳基點用來產生塔腳結構。

主基點圖塊名稱      at_BpMain.dwg

子基點圖塊名稱      at_BpSub.dwg

腳基點圖塊名稱      at_BpFoot.dwg

橫擔基點圖塊名稱  at_BpArm.dwg


可以有許多的主基點、子基點、腳基點與橫擔基點,由於需要區分它們之間的不同,所以其屬性裡會有基點名稱與基點類型。

但「作用」基點只有 1 個。


在茫茫線條海中要如何識別基點並找到作用基點?

在建立基點時,會將基點圖塊的 Handle 儲存到「 字典 」裡面,透過內部程式

(at_BpMainSet  "<Handle>")         指定主基點

(at_BpSubSet  "<Handle>")           指定子基點

(at_BpFootSet  "<Handle>")          指定腳基點

(at_BpArmSet  "<Handle>")          指定腳基點

(at_BpCurSet  "<Handle>")           指定作用基點

也可以透過外部程式指定

atBpMainSet    指定主基點

atBpSubSet      指定子基點

atBpFootSet     指定腳基點

atBpArmSet     指定橫擔基點

atBpCurSet      指定作用基點


取得想要的基點,則可以透過

(at_BpMainGet)    取得主基點物件

(at_BpSubGet)      取得子基點物件

(at_BpFootGet)     取得腳基點物件

(at_BpArmGet)     取得橫擔基點物件

(at_BpCurGet)      取得作用基點物件


上面內部程式都會傳回物件的 Handle

可以用 

(handent  <Handle>)   取得元體

(at_bpGetAtts)             取得作用基點物件所有屬性

(at_bpGetPoint)           取得作用基點座標

(at_bpMainPoints)       取得作用主基點梯形的 9 個座標點

(at_bpSubPoints)         取得作用子基點梯形的 6 個座標點

(at_bpCurPoints)         取得作用基點梯形的座標點


主基點梯形的 9 個座標點:

p0---p1---p2

p3---p4---p5

p6---p7---p8


子基點梯形的 6 個座標點

p0---p1---p2

p3---p4---p5


與基點有關的:對稱作圖

(at_BpMirrorSet Boolean)    指定是否要自動畫出鏡射物件

(at_BpMirrorGet)                  取得是否要畫出鏡射物件

atBpMirrorSet                        指定是否要畫出鏡射物件

(at_MirrorPt 原始點p0 鏡射點ps 鏡射角度rot)    計算出鏡射點

(at_bpMirrorPt 原始點p0)       計算出以作用基點為垂直鏡射面的另一側座標點


繪圖

atBpMainAdd    新增主基點與基線,並將它指定為作用基點。

atBpMainMod    選取主基點產生基線,並將它指定為作用基點。

atBpSubAdd      新增子基點與基線,並將它指定為作用基點。繪出主基線


節號、節距與節型


多種高度的下塔身


多種高度的繼塔


多種高度的塔腳

塔腳的節型與塔身不同,需要另外處理。


鐵塔的戶口名簿

        鐵塔各部位的組合關係應該可以參考戶口名簿記載的方式來處理。上下位置可視為兄弟姊妹關係,內外位置可視為父母子女關係。

本人姓名

父母姓名

兄姊姓名

子女姓名

弟妹姓名


在圖塊屬性內有一欄位「關係」,其值為 "本人姓名,父母姓名,兄/姊姓名,子/女姓名,弟/妹姓名"

上述概念是否適合於用來表述塔體各部位之關係?


塔體圖塊  BlockName = "BasePoint_Body"   (圖層 = "基線")

屬性名稱       值    (圖層 = "Defpoints")

鐵塔名稱 = "PP-4JP"

塔體名稱 = "Lower"

接續自 = "Upper"

居內於 = "  "

低降垂距 = "  "

梯形資料 = "頂端寬度, 底端寬度, 垂直高度, 彎曲偏移, 一次斜, 二次斜"

基線Handle = "中軸線, 頂端線, 底端線, 左端線, 右端線"

節距 = "起始編號, 節距1, 節距2, 節距3, ..."

節型 = "   "

主柱規格 = "L90x7,L100x7..."

接續方式 = "(無),外搭,外搭,內搭,對接..."


塔腳圖塊  BlockName = "BasePoint_Foot"   (圖層 = "基線")

屬性名稱       值    (圖層 = "Defpoints")

鐵塔名稱 = "PP-4JP"

塔體名稱 = "10M FT"

接續自 = "  "

梯形資料 = "頂端寬度, 底端寬度, 垂直高度, 彎曲偏移, 一次斜, 二次斜"

左米數 = "3,4,5,6"

左基線Handle = "中軸線, 頂端線, 左端線, 右端線"

右米數 = "4,5,6,7,8"

右基線Handle = "中軸線, 頂端線, 右端線, 左端線"


內部指令

(at_bpSetC handle)   指定作用基點

(at_bpGetC)               取得作用基點  RETURN <圖元名稱: 7ff4561618f0>

(at_bpGetAtts)           取得作用基點物件所有屬性

(at_bpGetPoint)         取得作用基點座標

(at_bpGetPoints)       取得作用基點梯形的6個座標點  RETURN  lstPt 


(at_bpGetPoint4)       取得作用基點梯形的4個座標點  RETURN  lstPt

(at_isInPt4 pt p1 p2 p3 p4)   判斷點pt是否在四邊形(梯形)內部

(at_isInTower pt)       判斷點pt是否在四邊形(梯形)內部

(at_bpMirrorPt pt)    求出以基點為鏡射面的另一側座標點

(at_IsBothSet  "1")    指定是否要畫出鏡射物件

(at_IsBothGet)    取得是否要畫出鏡射物件



外部指令

c:atBpMainAdd    新增主基點與基線,並將它指定為作用基點。

c:atBpMainMod    選取主基點產生基線,並將它指定為作用基點。

c:atBpSubAdd      新增子基點與基線,並將它指定為作用基點。

c:atBpSetC           指定作用基點。

c:atBpShow          顯示作用基點位置。

c:atBpMirror          指定是否要畫出鏡射物件




2026年3月22日 星期日

[AutoTower] 螺栓

 

定義

怎樣的圖形物件,才能被 AutoTower 系統識別為螺栓? 系統規定的位於特定圖層內的圖塊。

平面與側面的螺栓圖塊

同樣直徑的 CIRCLE,程式無法分辨是螺栓還是螺孔,所以最好將這兩者區分成不同的圖層,如此有利於螺栓數量的統計。

at_M16P1

RF


2D 圖面如何解決 3D 世界的數量?

一般在繪製施工圖面時都是以 2D 繪製,但你總是會有一個夢想,想要在繪製完施工圖時也能同時知道螺栓的數量。

解決的方法大概就是點名作記號了。

Xdata

屬性與倍權


舊有物件

與螺栓有關之舊有物件有哪些:

CIRCLE

BLOCK

1-40L


如何將舊有物件處理成可用物件?



螺栓規格(公制與英制)


螺栓圖塊


螺栓外觀型式

at$M16BoltStyles = "at_M16A, at_M16B, at_M16C"

at$M16BoltStyle = at_M16A 


螺栓比例

at$BoltScale = 3.0



螺栓數量與長度


引線


腳踏釘


虛擬螺栓

此類螺栓須放置在「Defpoints」圖層內,看的到但無法繪出圖,使用在特殊地方,用來增補足或刪減螺栓數量。當虛擬螺栓的數量屬性設為負值時,即可用來刪減螺栓數量。


統計螺栓數量的技巧

1. 用色筆畫出分區、分倍權之範圍,最後再加總。


檢核數量的正確性

1. 移除重疊的螺栓 -- 在繪製構建的過程中,難免會有重複畫出螺栓的情況。

2. 移除無效的螺栓 -- 例如腳踏釘孔只是預鑽孔而已,並無實質插上螺栓。

3. 其他特殊的螺栓 -- 例如雙螺帽或不同材質螺栓...等。

4. 檢核螺栓部位、直徑、長度、數量、倍權和材質是否正確。


BOM

在實施置換螺栓或統計螺栓數量時,圖層最好是切換到「裝建圖」環境,如此可以避免將不相關的東西計入近來。


分類

    部位 -- 上塔身、下塔身、繼塔、塔腳...。

    規格 -- M16、M20、1/8"、1/4"...。

    螺帽 -- 單螺帽或雙螺帽。

    材質 -- A36 或其它。

    配件 -- 像是墊圈之類的。


變數

at$BoltScale   3.0  "REAL" "RW" "螺栓及螺栓孔比例"


子程式

(at_BoltLine p1 p2)             畫側面螺栓

(at_BoltInsM BoltName)    重插入短向螺栓(可退回)


外部程式

atBoltStyle.lsp               螺栓外觀型式。

atBoltInsM16.lsp          插入M16螺栓。

atBoltInsM20.lsp          插入M20螺栓。

atBoltInsM22.lsp          插入M22螺栓。

atBoltInsM24.lsp          插入M24螺栓。

atBoltArray.lsp             螺栓陣列。

atStudIns.lsp                 插入螺栓孔。

atHoleIns.lsp                 插入螺栓孔。

atBoltLins.lsp                插入長向螺栓。


atBoltScale.lsp               修改螺栓比例。

atBoltDef.lsp                  舊式螺栓條件定義。

atBoltReplace.lsp          將舊式螺栓置換為新螺栓。

atCirDelInner.lsp          移除內部的同心圓。

atBoltDelDup.lsp          移除重疊螺栓圖塊。

atBoltToHole.lsp           將螺栓置換為螺栓孔(不計入螺栓數量時使用)。


atBoltToQtyLen.lsp      大量將「數量-長度」文字,轉換為圖塊。

atQtyLenMatch.lsp      將「數量-長度」文字轉換為圖塊或修改圖塊屬性

atQtyLenFind.lsp         尋找「數量-長度」文字,可同時轉換為圖塊

atBoltQtyLenIns.lsp     插入螺栓之「數量-長度」圖塊。

atBoltPartChg.lsp         變更「數量-長度」圖塊之"部位"屬性。

atBoltFacChg.lsp          變更「數量-長度」圖塊之"倍權"屬性。

atBoltSpecChg.lsp        變更「數量-長度」圖塊之"規格"屬性。

atBoltQtyLenChg.lsp   變更「數量-長度」圖塊之"數量-長度"屬性。

atBoltBOM.lsp             選取「數量-長度」圖塊,統計螺栓數量。


atStudins.lsp                 插入腳踏釘圖塊。

atStudLins.lsp               插入長向腳踏釘圖塊。

atBoltToStud.lsp           將圓圈或螺栓圖塊轉換為腳踏釘圖塊。

atStudMatch.lsp           將「ST-*L」腳踏釘文字轉換為圖塊或修改圖塊屬性。

atStudFind.lsp              尋找「ST-*L」腳踏釘文字,可同時轉換成圖塊。


atRfIns.lsp                     插入墊圈厚度文字。

atRfMatch.lsp               匹配墊圈。

atRfFind.lsp                  全圖尋找RF文字,可同時匹配墊圈。

atRfBOM.lsp                墊圈材料表。



[AutoTower] 關於鐵板、扁鐵與墊片

 

鐵板的外觀沒有固定的形狀,需等待設計放樣後才能裁切出板型。


定義


鐵板規格



鐵板厚度



鐵板編號

因材料表將鐵板編號與扁鐵編號放在一起,所以這兩者需要同時討論。


型板

鐵板上有螺栓孔,在製作型板時,須把螺栓比例回復為1:1。


內部指令

(at_PlSpecText p0 spec)    書寫鐵板規格


外部指令

atPlSpecTextStyle.lsp    指定鐵板規格字型

atPlSpecTextSize.lsp      指定鐵板規格字高

atPlSpecText.lsp             連續書寫鐵板規格

atPlNobRep.lsp              置換鐵板編號球

atPlQtyCount.lsp           統計鐵板數量


atPlNoFind.lsp               尋找鐵板編號

atPlNoAddAtt.lsp          將鐵板編號轉換為圖塊

atPlPartChg.lsp             變更鐵板的'部位'屬性

atPlFacChg.lsp              變更鐵板的'倍權'屬性

atPlQtyChg.lsp              變更鐵板的'數量'屬性

atPlBOM.lsp                  畫出鐵板材料表



2026年3月21日 星期六

2026年3月20日 星期五

[AutoTower] 快速增強鐵塔設計部門的實力

欲速則不達,採六階段式增強。


階段一 -- 實施標準化

目標:實施標準化,以達到快速畫出標準一致的圖面與報表。

基本數據 -- 例如鋼鐵規格、鐵塔放樣準則...等。

基本圖形 -- 標準圖紙、常用圖塊...等。

標準化鐵塔各式圖面。


階段二 -- 加快繪製詳細圖與裝建圖的速度

繪製角鋼

放置螺栓

處理鐵板

快速出圖


階段三 -- 統計數量與製作材料表

AutoCAD 數量傳到 Excel 材料表。


階段四 -- 放樣與繪圖自動化

基線

塔身主柱

斜材

橫擔

塔腳


階段五 -- 加強 AutoCAD 與 Excel 的溝通

VisualLISP

C#

Python


階段六 -- 應力圖

AutoCAD 與 Excel 資料雙向維護。

[AutoTower] 如何寫一套基於 AutoCAD 的 AutoTower 鐵塔繪圖軟體

大原則是,依據現有資料與需求量身打造。

觀念必須改變,畢竟手繪與程式自動繪圖有很多地方不一樣。


鋼材基本資料

    角鋼 -- 等邊角鋼與不等邊角鋼。

    鐵板 -- 材料表需注意不同材質。

    螺栓 -- 公制 M16、M20、M22、M24 等;英制 5/8"、3/4"、7/8"、1" 等。

    腳踏釘


鐵塔基本資料

    電壓

    型式

    部位

    高度與寬度

    節距

    彎曲點


鐵塔規範


設計資料

    基線

    主柱

    塔身

    橫擔

    繼塔

    塔腳


輸出需求

    應力圖

    放樣圖

    詳細圖

    裝建圖

    Excel材料表


繪圖模式

同樣繪製一支角鋼 ,在繪製不同圖面時使用的狀況會有所不同,如下:

應力圖    單線,規格,螺栓,不需要編號球

放樣圖    多線,規格,螺栓,不需要編號球

詳裝圖    多線,規格,螺栓,需要編號球

基於因應以上各種繪圖狀況需求,因此需要以設定繪圖模式的方式來解決。

繪圖模式: 0 = 應力圖  1 = 放樣圖  2 = 詳裝圖

切換繪圖模式 c:atDwgMode

取得繪圖模式    _Tower\ (setq at$dwgMode (at_DwgModeGet))  

指定繪圖模式 0-2    _Tower\ (at_DwgModeSet 1)


實作順序

1. 型鋼基本資料、鐵塔放樣規則、程式基本常數與變數之管理。

2. 繪圖單位與比例,圖紙與圖框。

3. 斜率三角形與基線梯形。

4. 放置螺栓、書寫螺栓數量長度。

5. 書寫構件規格、長度與插入編號。

6. 繪製角鋼。

7. 書寫鐵板規格與插入編號。

8. 放置主柱。

9. 放置斜材角鋼。


11. 橫擔。


優先建立的幾個開發邏輯

  1. 資料結構化 (Data Driven): 鐵塔的節間(Panel)通常是有規律的。建議你建立一個 List 來儲存塔身的寬度與高度。

    • 例如:'((Height . 3000) (TopWidth . 1200) (BottomWidth . 1800))

    • 這樣在繪圖與標註時,只需調用這個清單,就不需要手動輸入座標。

  2. 標註型式自動化: 鐵塔圖面通常包含「零件圖」與「組裝圖」。零件圖需要極精確的標註(如:螺栓孔位),組裝圖則需要較大的字體。

    • 建議在 SmartDim 執行前,加入我們之前討論的標註型式切換功能。

  3. 座標運算子 (Helper Functions): 鐵塔充滿了「斜線」。建議你寫一些專門計算塔身斜度(Slope)與斜撐長度(Bracing length)的微型子程式。

    • 例如:給定高度與上下寬差,自動算出斜材的角度。



應力圖

應力圖的鐵塔骨架是以單線形式呈現,在寫程式時相對於多線條的角鋼構件而言相對單純。因此從這部分開始撰寫鐵塔程式,將有助於嘹解日後鐵塔各部位的資料連結。