ใช้สำหรับเขียนเรขาคณิต 2 มิติใน SketchUp เส้น, วงกลม, ข้อความ ฯลฯ สร้างภาพประกอบให้โมเดลมีความสวยงาม หรือมีความชัดเจนมากขึ้น
เริ่มใช้งานได้ตั้งแต่ รุ่น v0.1.17+ ผมได้เริ่มเขียนโปรแกรมประมาณ 2 กุมภาพันธ์ 2565 จนประมาณ ปลายเดีอนมีนาคม 2565 ก็พอจะเป็นรูปร่าง แล้วได้ตัดสินใจเพิ่มไปในรุ่น 0.1.17(15 เมษายน 2565)
รูปแบบคำสั่งอยู่ข้างล่าง ดูคลิปแล้วลองทำตามดูครับนักศึกษา
กำหนดชื่อให้กับ Group ของ Draw2D โดยถ้าไม่กำหนดจะเป็น "Draw2D" โดยเอาไว้จำว่าเราเขียนอะไรไว้
รูปแบบ :
Name ชื่อกลุ่มของลายเส้น
ตัวอย่าง :
Name Door
สร้าง และกำหนด active layer
รูปแบบ :
Layer "ชื่อเลเยอร์"
ตัวอย่าง :
Layer "Floor1"
ลากเส้นตรงกำหนดจุดพิกัด (x1,y1) และ (x2,y2) โดยใส่หน่วยที่ต้องการ ถ้าไม่ใส่จะเป็น นิ้ว ตามค่าพื้นฐานของ API SKP
รูปแบบ :
line x1, y1, x2, y2
ตัวอย่าง :
line 100.mm, 200.mm, 1.m, 1.m
ลากเส้นตรงกำหนดจุดพิกัด (x1,y1) และ (x2,y2) โดยใส่หน่วยที่ต้องการ ถ้าไม่ใส่จะเป็น นิ้ว ตามค่าพื้นฐานของ API SKP
รูปแบบ :
cline x1, y1, x2, y2
ตัวอย่าง :
cline 100.mm, 200.mm, 1.m, 1.m
ลากเส้นแบบต่อเนื่อง กำหนดจุดพิกัด (x1,y1) , (x2,y2) และ (x3,y3) ไปเรื่อยๆเป็นชุด โดยใส่หน่วยที่ต้องการ ถ้าไม่ใส่จะเป็น นิ้ว ตามค่าพื้นฐานของ API SKP
รูปแบบ :
polyline [(x1,y1),(x2,y2),(x3,y3)]
ตัวอย่าง :
polyline [(0,0),(100.mm, 30.mm),(100.mm,150.mm) , (300.mm,150.mm) ]
ลากเส้นตรงแบบปะ กำหนดจุดพิกัด (x1,y1) และ (x2,y2) โดยใส่หน่วยที่ต้องการ ถ้าไม่ใส่จะเป็น นิ้ว ตามค่าพื้นฐานของ API SKP กำหนด [l1,s1] เป็นความยาวเส้น กับ ระยะช่องว่าง แต่อัลกอริทึม ยังมีปัญหาอยู่ ความยาวยังไม่แท้จริง
รูปแบบ :
linedash x1, y1, x2, y2, [l1,s1]
ตัวอย่าง :
linedash 0, 0, 500.mm, 500.mm,[50.mm,10.mm]
เขียนโครงกรอบสี่เหลี่ยม(เฉพาะเส้นไม่สร้างผิว, แต่ถ้า มี fill ก็ได้ผิว)
รูปแบบ :
RECT x,y,w,h [,fill='none']
ตัวอย่าง :
rect 0, 0, 200.mm, 400.mm
rect 250.mm, 0, 200.mm, 400.mm , 'yellow'
เขียนโครงกรอบสี่เหลี่ยมขอบมน หรือ ขอบโค้ง
รูปแบบ :
RoundRect x,y,w,h,r [,fill='none']
ตัวอย่าง :
RoundRect 0, 0, 200.mm, 400.mm , 15.mm
RoundRect 250.mm, 0, 200.mm, 400.mm , 20.mm , 'yellow'
เขียนวงกลม
รูปแบบ :
circle x,y,r , fillColor , nArc
ตัวอย่าง :
circle 100.mm, 100.mm, 100.mm, 'None', 12
circle 350.mm, 100.mm, 100.mm, 'red', 24
เขียนวงกลม
รูปแบบ :
arc x,y, r , start_angle , end_angle , nArc
ตัวอย่าง :
arc 0.mm,0.mm, 150.mm , 0.degrees , 75.degrees , 10
arc 0.mm,0.mm, 200.mm , 90.degrees , 180.degrees , 6
arc 0.mm,0.mm, 100.mm , 90.degrees , 270.degrees , 16
arc 0.mm,0.mm, 120.mm , -90.degrees , 45.degrees , 16
arc 40.mm,100.mm, 1000.mm , 0.degrees , 90.degrees , 12
เขียนวงรี แต่ยังมีปัญหา คือ a>b เท่านั้น ไม่งั้น error
รูปแบบ :
oval x, y, a, b
ตัวอย่าง :
oval 0,0 , 200.mm , 150.mm
เขียนรูปโพลีกอน หรือรูปหลายเหลี่ยม
รูปแบบ :
polygon [(x1,y1),(x2,y2),(x3,y3)] , fillColor
ตัวอย่าง :
polygon [(0,0),(-100.mm,-150.mm),(100.mm,-150.mm)] , 'None'
เขียนข้อความ
รูปแบบ :
Text x,y, string , fontSize [,angle]
ตัวอย่าง :
Text 0,0, "มหาวิทยาลัยเอเชียอาคเนย์" , 100.mm
Text 50.mm , 100.mm, "สาขาโยธา" , 100.mm , 45.degrees
TextMid 0,0, "1000.mm" , 100.mm
หมุนกลุ่มของลายเส้น
รูปแบบ :
rotate point , axis , angle
ตัวอย่าง :
rotate [0,0,0] , [0,0,1] , 90.degrees
เลื่อนกลุ่มของลายเส้น
รูปแบบ :
translate dx,dy,dz
ตัวอย่าง :
translate 500.mm, 100.mm,100.mm
คำสั่งสร้างเส้นกริด
รูปแบบ :
Grid x,y, label , r , fontSize , direction(N,S,E,W) , Len
ตัวอย่าง :
grid 0.mm,0.mm,'A',100.mm,75.mm, N , 2.m
grid 500.mm,-2.6.m,'B',100.mm,75.mm, S , 2.1.m
grid -1.m,-700.mm,'1',100.mm,75.mm, W , 2.m
grid 1.5.m,-1700.mm,'2',100.mm,75.mm, E , 2.m
คำสั่งสร้างเส้นบอกระยะ
รูปแบบ :
Dim x,y, w, h, text , fontSize , rotate
ตัวอย่าง :
dim 0.mm, 20.mm , 500.mm, 300.mm ,'500' , 45.mm, 0.degrees
คำสั่งสร้างเส้นกรอบตาราง
รูปแบบ :
Table x,y, width_List, height_List
ตัวอย่าง :
table 0,0, [(1500.mm, 300.mm, 300.mm, 250.mm, 250.mm, 250.mm, 250.mm, 50.mm) , (100.mm,300.mm , 300.mm, 600.mm)]
คำสั่งวาดเหล็กเสริม ทำ bar cutting
direction กำหนดเป็น 'U' หรือ 'D'
angle เป็นมุมหมุน ถ้าไม่ระบุ จะเป็น 0 องศา
รูปแบบ :
Rebar x,y, x,y,code , params , dia , r , direction , angle=0.degrees
ตัวอย่าง :
set ShowRebarText = true
rebar 100.mm, -300.mm ,'41' , [100.mm,200.mm, 900.mm , 300.mm,100.mm ] , 12.mm , 2.5*12.mm , 'U'
rebar 100.mm, -650.mm ,'21' , [200.mm, 700.mm , 175.mm ] , 12.mm , 2.5*12.mm , 'U'
rebar 100.mm, -1000.mm ,'11' , [200.mm, 815.mm ] , 12.mm , 2.5*12.mm , 'U'
angle เป็นมุมหมุน ถ้าไม่ระบุ จะเป็น 0 องศา
รูปแบบ :
PileSection x,y, name [, angle]
ตัวอย่าง :
PileSection 0,0, 'R220'
PileSection 0,0, 'H150' # มีเบอร์เดียว v0.2.15+
PileSection 0,0, 'I18x18' # ขนาดตาม มอก v0.2.15+
รับค่าตัวแปร แบบ inputbox (v 0.2.9)
รูปแบบ:
inputbox title, prompts, defaults, list, variableName
ตัวอย่าง:
inputbox 'Test InpuBox' , ['B=','L=','t='],[1000.mm,1000.mm,300.mm],['','','200mm|300mm|400mm'] , ['B' , 'L' , 't']
กำหนดข้อมูลให้กับ draw2D ที่เขียนจากสคริปต์ปัจจุบัน เพื่อใช้อ้างอิงในการใช้งาน
รูปแบบ :
set_attribute dict_name, var_name , type , data
ตัวอย่าง :
set_attribute "chakkree_tools", "type", 'STRING' , "Footing_2DTOP"
อ้านข้อมูลจาก draw2D ที่เลือก เพื่อนำเข้ามาเป็นตัวแปรใช้งานในการวาดของสคริปต์
รูปแบบ :
get_attribute dict_name, var_name , type
ตัวอย่าง :
get_attribute "chakkree_tools", "type", 'STRING'
Var x = 100.mm
Set x = $x + 100.mm
# --- คำสั่งพื้นฐาน
Name B1
Layer 'Wall'
rect x,y,w,h [, angle] รออัพเกรด angle
Line x1,y1,x2,y2
linedash x1, y1 , x2 , y2 , [50.mm,10.mm]
circle x,y,r , fillColor , nArc
hex x,y, h
arc x,y, r , start_angle , end_angle , nArc
oval x,y,a,b
polygon [(x1,y1),(x2,y2),(x3,y3)] , fillColor
Text x,y, string , fontSize
# ---- คำสั่งสำหรับงานเขียนแบบบ้าน
Grid x,y, label , r , fontSize , direction(N,S,E,W) , Len
wall x,y , L , angle
DOOR x , y , w [, angle]
# -------- คำสั่งพิเศษ
include 'Dim1'
Repeat 10
End
var n = 1
if $n<=5
line 0,0,100.mm,400.mm
line 0, -100.mm, -200.mm, 500.mm
end
# -------- คำสั่งเพื่อ เลื่อนและหมุน Group
rotate [0,0,0] , [0,0,1] , 90.degrees
translate dx,dy,dz