Saturday, May 19, 2012

QuickSketchup Ruby : หาพื้นที่จากผิวที่เลือกเป็นตารางเมตร

โดย ประยุทธ พันธุลาภ

บทความก่อนหน้า หาพื้นที่จากผิวที่เลือก


จากตัวอย่างที่แล้ว เราหาพื้นที่ของ face เป็น ตารางนิ้วจากคุณสมบัติของ face.area

ในตัวอย่างนี้เราจะแปลงพื้นที่จาก ตารางนิ้ว เป็น ตารางเมตร ด้วยค่าคงที่ 1.m ของ Sketchup Ruby

ซึ่งมีค่าเท่ากับ 39.3700787401575


ดาวน์โหลดไฟล์ตัวอย่าง

1.ไฟล์ Sketchup
ไฟล์ area1.skp
Save ไว้ในโฟลเดอร์ C:\myruby

2.ไฟล์ Ruby
ไฟล์ area1m.rb
Save ไว้ในโฟลเดอร์ C:\myruby


โปรแกรมเริ่มใต้เส้น #ตัวอักษรสีเขียว คือ คอมเมนท์


##กำหนดให้ตัวแปร model เป็น Sketchup active model
model = Sketchup.active_model

##กำหนดให้ตัวแปร selection เป็น object ทั้งหมดที่ถูกเลือกบนหน้าจอ
##ถ้าไม่มีวัตถุถูกเลือก selection จะมีค่าเป็น nil
selection = model.selection

##กำหนดให้ตัวแปร entity เป็น วัตถุชิ้นแรกที่ถูกเลือกใน selection
## selection[0] = วัตถุชิ้นแรก selection[1] = วัตถุชิ้นที่สอง
entity = selection[0]

##ตรวจสอบว่า entity เป็นผิว (Face) หรือไม่
if entity.class == Sketchup::Face ##ถ้าentity เป็นผิว ( Face) ทำงานจนกว่าจะพบคำว่า end
##พิมพ์ข้อความด้านล่าง
puts "Face area in sq.inch is"
##พิมพ์ค่าพื้นที่ของ entity จะมีหน่วยเป็น ตารางนิ้ว
puts entity.area
##พิมพ์คำว่า Value of 1.m is เป็นค่าแปลงหน่วยจาก เมตรเป็นนิ้ว ของ Sketchup Ruby
puts "Value of 1.m is"
##พิมพ์ค่า 1.m
puts 1.m
##แปลงค่าพื้นที่ของ entity เก็บไว้ในตัวแปรชื่อ area_m จะมีหน่วยเป็น ตารางเมตร
area_m = entity.area / (1.m * 1.m)
##พิมพ์ค่าพื้นที่ของ entity จะมีหน่วยเป็น ตารางเมตร
puts "Face area in sq.m. is"
puts area_m

end ##จบคำสั่ง if entity.class == Sketchup::Face



ทดสอบกับโปรแกรม Sketchup

1. สร้างสี่เหลี่ยม ขนาด 1x2 ตร.ม. หรือ เปิดไฟล์ area1.skp ที่ดาวน์โหลดมาจากด้านบน

2. คลิกที่ผิว



คลิกที่ภาพเพื่อขยาย



3. เปิด Ruby Console พิมพ์

load 'c:\\myruby\\area1m.rb'

แล้วกดปุ่ม Enter บนคีย์บอร์ด

ดูผลลัพธ์ใน Ruby Console



คลิกที่ภาพเพื่อขยาย


จะเห็นว่ามีพื้นที่ค่า 2 ตารางเมตร เพิ่มขึ้นมา



สรุป


หน่วยความยาวใน Sketchup Ruby เป็น นิ้ว


หน่วยพื้นที่ใน Sketchup Ruby เป็น ตารางนิ้ว


ดังนั้นต้องแปลงค่าหน่วยให้เป็น เมตร หรือ ตารางเมตร ก่อน ด้วยค่า 1.m หรือ 39.3700787401575

สำหรับปริมาณงานที่ต้องการ


บทความต่อไป

การหาชื่อวัสดุของผิวที่เลือก

Keyword:ภาษา Ruby Sketchup plugin, อบรม Sketchup