เป็นสคริปท์ที่ใช้ในการช่วยสร้าง Grid แล้วก็ชิ้นส่วน ฐานราก, เสา , คาน เป็นส่วนหนึ่งของ chakkree_tools เครื่องมือตัวนี้มาจากความขี้เกียจของผมที่จะต้องสร้างชิ้นส่วนด้วยการคลิ๊ก ฐานราก เสา คาน ถึงมันจะเป็นลูกบาศก์ง่ายๆ แต่ให้คลิ๊กหลายๆทีก็เมือยนะ โดยเฉพาะตอนทำ Group ผมเรื่องมากด้วยต้องกำหนด Local coordinate ให้ตรงจะได้ใช้ RebarScript รันต่อได้ ดังนั้นสร้างสคริปท์ซะ ก็เบาแรงได้เยอะเลยในการสร้างโมเดลบ้านสักหลังนึง เมื่อตอนที่เราต้องการใช้ประกอบการสอน
กำหนดข้อมูลเส้นกริด x และ y
ตัวอย่าง:
GridX A:0.mm , B:r4500.mm , C : 10000.mm
GridY 1:0.mm , 2:r4000.mm , 3 : 8000.mm
Make Grids
จะเป็นชุดข้อมูลในลักษณะ ชื่อกริด:ระยะตำแหน่ง โดยระยะตำแหน่งถ้ากำหนดเป็นตัวเลขจะเป็นแบบค่าสัมบูรณ์อ้างอิงกันorigin(0,0) แต่ถ้ามี r นำหน้าตัวเลขจะเป็นแบบสัมพันธ์อ้างอิงกับตัวแรก
และเมื่อกำหนดข้อมูลแล้ว เราสามารถสร้างกริดด้วยคำสั่ง Make หรือ Build ตามด้วย Grids เพื่อบอกว่าจะสร้างเส้นกริด
กริดรอง:
MinorGridX 1':-1500.mm
make MinorGrids
กริดรอง จะไม่แสดง แต่ใข้ในการอ้างอิงจุดพิกัด
ตัวแปรเพิ่มเติมในการกำหนดระยะห่างป้ายบอกระยะของ Grids
set GRIDX_EXTEND=5000.mm
set GRIDY_EXTEND=5000.mm
คำสั่งเพื่อกำหนดคุณสมบัติของ ฐานราก, หน้าตัดเสา , หน้าตัดคาน ตามสัญญลักษณ์
_______________________________________
สร้างสัญญลักษณ์ฐานราก :
DEF Footing, symbol , type, SizeParams , rebarX, rebarY , Stir
ตัวอย่าง:
DEF Footing, F1, R , [1000.mm,1000.mm,250.mm] , [6 , 9.mm] , [6 , 9.mm] ,[1, 9.mm, 100.mm]
DEF Footing, F1, R , [1000.mm,1000.mm,250.mm]
DEF Footing, F2 , 3P2 , \
[[1100.mm,500.mm], \
[1050.mm,450.mm,300.mm] , 200.mm]
DEF Footing, F3, Rstep , [ \
[2400.mm,2400.mm,250.mm], \
[450.mm,700.mm,150.mm]]
DEF Footing, F4, PS , [ \
[-550.mm,-450.mm] , \
[ 550.mm,-450.mm] , \
[ 550.mm,-72.mm] , \
[ 177.mm, 600.mm] , \
[ -177.mm, 600.mm] , \
[ -550.mm,-72.mm] \
] , 250.mm
DEF Footing, F7, PS , [ \
[-300.mm,-1100.mm] , \
[ 300.mm,-1100.mm] , \
[ 750.mm, -500.mm] , \
[ 750.mm, 500.mm] , \
[ 300.mm,1100.mm] , \
[-300.mm,1100.mm] , \
[ -750.mm, 500.mm] , \
[ -750.mm, -500.mm] , \
] , 600.mm
_______________________________________
สร้างสัญญลักษณ์เสา :
DEF ColumnSection, symbol , type , SizeParams
ตัวอย่าง:
DEF ColumnSection, C1 , R , [200.mm,200.mm]
DEF ColumnSection, C1 , C , [200.mm]
DEF ColumnSection, C1 , PS , [ \
[ 0.mm, 0.mm], \
[ 200.mm,0.mm], \
[ 200.mm, -100.mm], \
[ -100.mm, -100.mm], \
[ -100.mm, 200.mm], \
[ 0.mm, 200.mm], \
]
# หน้าตัดเสาเหล็กรูปพรรณ H ------------
var H=150.mm
var B=150.mm
var t1=7.mm # เอว
var t2=10.mm # ปีก
DEF ColumnSection, H150x150 , PS , [ \
[ -$B/2, -$H/2], \
[ +$B/2, -$H/2], \
[ +$B/2, -$H/2+$t2], \
[ +$t1/2 , -$H/2+$t2], \
[ +$t1/2 , +$H/2-$t2], \
[ +$B/2, +$H/2-$t2], \
[ +$B/2, +$H/2], \
[ -$B/2, +$H/2], \
[ -$B/2, +$H/2-$t2], \
[ -$t1/2 , +$H/2-$t2], \
[ -$t1/2 , -$H/2+$t2], \
[ -$B/2, -$H/2+$t2], \
]
_______________________________________
สร้างสัญญลักษณ์คาน : (0.1.16.b+)
DEF BeamSection, symbol , SectionType , SizeParams
กรณี SectionType='R' คือ หน้าตัดสี่เหลี่ยม กำหนดพารามิเตอร์เป็น [b , h] คือความกว้างและความลึกของหน้าตัด
กรณี SectionType='RF' คือ หน้าตัดสี่เหลี่ยมที่มีครีบห้อยอยู่ข้างล่าง กำหนดพารามิเตอร์เป็น [b , h , alignment , w , h] โดย alignment กำหนดเป็น 'R' หรือ 'L' คือ ชิดขวาหรือชิดซ้าย w และ h คือความกว้างและความลึกของครีบ(Fin)
กรณี SectionType='PS' คือ กำหนดเป็นชุดของค่าพิกิดหน้าตัด (x,y) หรือ PointSet กำหนดเป็นชุดของพิกัด [[x1,y1],[x2,y2],[x3,y3],[x4,y4],...,[xn,yn]]
ตัวอย่าง: กรณีหน้าตัดสี่เหลี่ยมทั่วไป
DEF BeamSection, B1 , R , [150.mm,300.mm]
DEF BeamSection, B2 , R , [200.mm,400.mm]
Def BeamSection, B3 , RF , [200.mm,400.mm, 'R' , 100.mm , 200.mm ]
Def BeamSection, B4 , RF , [200.mm,400.mm, 'L' , 100.mm , 200.mm ]
Def BeamSection, B5 , PS , [[0,0],[0.mm,400.mm],[200.mm,400.mm],[200.mm,0.mm]]
ยังไม่มีแต่ ร่างไว้ก่อน ว่าอยากได้คำสั่งแบบนี้
Def
เป็นคำสั่งที่ให้สร้างชิ้นส่วนที่เราต้องการ
สร้างเส้นกริด :
Make Grids
_______________________________________
สร้างฐานราก :
Make Footing, id, symbol, position, z , elev_name
ตัวอย่าง:
Make Footing , 1 , F1, A-1 , -700.mm , 'ฐานราก'
_______________________________________
สร้างเสา :
Make Column, id, symbol, position, z1, z2
ตัวอย่าง:
Make Column, 1 , C1, A-1 , -700.mm , 3500.mm
_______________________________________
สร้างคาน :
Make Beam, id , symbol , position1 , position2 ,z
ในกรณีข้างบนจะกำหนดค่า [offsetStart,offsetEnd,Alignment] จากค่า default คือ [-100.mm,-100.mm , 0.mm]
หรือ
Make Beam, id , symbol , position1 , position2 ,z , [offsetStart,offsetEnd,Alignment]
ตัวอย่าง1:
Make Beam, flr1-01 , B1, A-1 , A-2 , 500.mm
Make Beam , Flr1-V1 , B1 , 1-C , 1-B , 1500.mm , [0.mm,-100.mm, -100.mm]
กำหนดสีให้กับโครงสร้าง ต้องประกาศก่อนจะ Make โดยสีกำหนดจากชื่อสีของ SketchUp Ruby API หรือกำหนดเป็นรหัสค่าแบบ RGB ค่าฐานสิบหก ถ้าเปิดตัวแปรที่ 2 จะเป็นค่าความโปร่งใส 1.0 ใสสุด หายไปเลย
ตัวอย่าง:
Color "red"
Color "FF0000"
Color "90EE90"
color "DDDDDD" , 0.5
เป็นคำสั่งสร้างกำแพง
รูปแบบ 1 :
Wall id, pos1, pos2, z1, z2, t, align
id คือ ชื่อของกำแพงที่นำไปสร้างเป็นชื่อของ Group เอาไว้อ้างอิงตอนแก้ไขค่า ปกติไม่ควรซ้ำกัน แต่ไม่ได้เขียนโปรแกรมดักไว้ ดังนั้นผู้ใช้ต้องกำหนดเองเพื่อให้เข้าใจ
pos1, pos2 เป็นตำแหน่งที่ใช้อ้างอิงกับ Grids ที่ได้ประกาศเอาไว้แล้ว เช่น ในรูปแบบของ A-1 เป็นต้น (แต่ตั้งค่าเป็น ซ้ายไปขวา , ล่างไปบน ยังไม่ได้เขียนโค้ดควบคุมให้ครบ)
z1 , z2 คือ ค่าระดับของ ขอบล่างและขอบบนของกำแพง
t คือ ครวามหนา
align กำหนดได้ 3 ค่า 'R' ชิดขวา 'L' ชิดซ้าย 'M' หรือ 'C' อยู่ตรงกลาง
รูปแบบ 2 : เมื่อกำแพงมีขนาดและคำแหน่งไม่ปกติ
Wall id, pos1, pos2, z1, z2, t, align, [offsetStart , offsetEnd, Alignment]
ในรูปแบบนี้จะมีการ เพิ่ม ตัวแปรในรูปแบบเซ็ต 3 ค่า
offsetStart คือ ระยะเลื่อนของความยาวกำแพงเมื่อเทียบกับจุด 1 หรือจุดเริ่มของกำแพง โดยค่าปกติจะเป็น -100.mm
offsetEnd คือ ระยะเลื่อนของความยาวกำแพงเมื่อเทียบกับจุด 2 หรือจุดท้ายของกำแพง โดยค่าปกติจะเป็น -100.mm
Alignmentt คือ ระยะเลื่อนไปทางซ้ายหรือขวา ของกำแพง เมื่อเทียบกับแนวของ pos1 กับ pos2
รูปแบบ 3 : เมื่อกำแพงต้องการช่องเปิด
Wall id, pos1, pos2, z1, z2, t, align, [offsetStart , offsetEnd, Alignment] , [ [[x1,y1 , w1,h1] , [x2,y2 , w2,h2] , ... ]
ตัวอย่าง :
GridX A:0.mm , B:r4000.mm , C : r4000.mm
GridY 1:0.mm , 2:r-2000.mm , 3 : r-2000.mm
Make Grids
var z1 = 0.m
var z2 = 3.m
color 'beige'
Wall W1 , A-1 , B-1 , $z1 , $z2 , 100.mm , 'R'
Wall W2 , A-2 , B-2 , $z1 , $z2 , 100.mm , 'C' ,[-1.m,0,1.m]
Wall W3 , A-3 , B-3 , $z1 , $z2 , 100.mm , 'C' ,[0,0,0] , \
[ [500.mm , 2050.mm , 1100.mm , 2050.mm - 1.mm ] ]
Wall W4 , C-2 , C-1 , $z1 , $z2 , 100.mm , 'R'
Wall W5 , B-2 , C-1 , $z1 , $z2 , 100.mm , 'R'
สร้างเลเยอร์ แล้ว ตั้งเป็น ActiveLayer เพื่อใช้กำหนดเลเยอร์ให้กับคำสั่ง Make
Layer "Columns"
รุ่น v0.1.16.b ลงไป ยังไม่มี ออกแบบไวยากรณ์ เอาไว้ก่อน
สร้างฐานรากแบบคอมโพเนนต์
component Footing, F1, R, [L, B, t]
เมื่อต้องการสร้างฐานรากจากคอมโพเเนต์
add id , F1 , position