Saturday, May 19, 2012

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

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

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


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

สิ่งที่เราอยากรู้ต่อไป คือ ชื่อวัสดุของ face


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

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

2.ไฟล์ Ruby
ไฟล์ area2th.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
##ตรวจสอบว่า entity มีค่า material หรือไม่
if entity.material
##กรณีที่ entity มีค่า material
puts "************************"
##พิมพ์ค่าของ entity.material
puts "entity.material is "
puts entity.material
puts "************************"
##พิมพ์ค่าของ entity.material.name
puts entity.material.name
puts "************************"
##พิมพ์ค่าของ entity.material.display_name
puts "entity.material.display_name is"
puts entity.material.display_name
else
##กรณีไม่มีวัสดุ
puts "entity has no material it's value is"
puts entity.material
end ##if entity.material not nil

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



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

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

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


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



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

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

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

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

กรณีที่ face มีวัสดุ


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

ถ้าท่านสร้างผิวขึ้นมาใหม่ โดยที่ไม่เทวัสดุ เลือกผิวใหม่แล้ว Run

กรณีที่ face ไม่มีวัสดุ


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







สรุป


face จะมีคุณสมบัติเกี่ยวกับวัสดุ อยู่ 3 ประเภท คือ

1.ค่า entity.material เป็นค่าที่ Sketchup Ruby ใช้เก็บข้อมูล แต่เราอ่านไม่ออก เช่น #<Sketchup::Material:0x83cccc0>

2.ค่า entity.material.name เป็นค่าที่ Sketchup Ruby ใช้เก็บข้อมูลชื่อของวัสดุ เช่น [Stone_Flagstone_Ashlar]

3.ค่า entity.material.display_name เป็นค่าที่ Sketchup Ruby แสดงชื่อของวัสดุใน paint Bucket เช่น

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



ต่อไป

การหาพื้นที่หลายผิวมารวมกัน
Keyword: อบรม Sketchup

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

Sunday, May 6, 2012

QuickSketchup Ruby : หาพื้นที่จากผิวที่เลือก

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

บทความก่อนหน้า โปรแกรมแรก hello.rb

ปรกติแล้วสิ่งที่เราอยากทราบจาก โมเดลก็คือปริมาณงาน และส่วนมากก็จะเป็น ผิว (Face) ที่มีวัสดุเทอยู่

เราลองเริ่มจากเขียนโปรแกรม หาพื้นที่ผิวจากวัตถุที่เราเลือกมาดูสัก 1 ชิ้นก่อน


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

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

2.ไฟล์ Ruby
ไฟล์ area1.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

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



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

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

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



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



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

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

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

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



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


จะเห็นว่าพื้นที่ไม่ใช่ค่า 2 ตารางเมตร แต่เป็น 3100.0062 ตารางนิ้ว



สรุป


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


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


ดังนั้นต้องแปลงค่าหน่วยให้เป็น เมตร หรือ ตารางเมตร ก่อน สำหรับปริมาณงานที่ต้องการ

แต่ในการคำนวณต้องแปลงค่ากลับไปเป็นค่าของ ระบบนิ้ว เสมอ ฟังก์ชันของ Sketchup Ruby จึงจะทำงานถูกต้อง


บทความต่อไป

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


Keyword:ภาษา Ruby Sketchup plugin

Saturday, May 5, 2012

โปรแกรมแรก hello.rb

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


บทความก่อนหน้า เลือกใช้ Notepad++ สำหรับเขียน Ruby

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

ถ้าท่านยังไม่อยากพิมพ์ ให้ดาวน์โหลดไฟล์ตัวอย่าง hello.rb แล้ว Save ไฟล์ชื่อ hello.rb ลงในโฟลเดอร์ C:\myruby

ขั้นตอนเขียนโปรแกรม hello.rb ด้วย Notepad++

  1. สร้างโฟลเดอร์ C:\myruby
  2. เปิดโปรแกรม Notepad++
  3. เมนู File > New
  4. พิมพ์
    puts "Hello World"


  5. เมนู File > Save As ตั้งชื่อไฟล์ hello.rb ลงในโฟลเดอร์ C:\myruby


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


ทดสอบโปรแกรม hello.rb

- รันโปรแกรม Sketchup

- ที่โปรแกรม Sketchup เลือกเมนู Window > Ruby Console


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

พิมพ์ในช่องว่างของ Ruby Console

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

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


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

*แต่ถ้าไม่อยากพิมพ์ให้ Copy แล้ว Paste ลงในช่องว่างของ Ruby Console แล้วกดปุ่ม Enter บนคีย์บอร์ด ก็ได้เช่นกัน ดูผลลัพธ์ใน Ruby Console


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

แก้โปรแกรม hello.rb

กลับไปที่โปรแกรม Notepad++ แก้คำว่า Hello World เป็น
puts "Hello World Again."

Save ไฟล์ซ้ำชื่อเดิม

ทดสอบโปรแกรม hello.rb อีกครั้ง


คลิกที่ช่องว่างใน Ruby Console กดปุ่มลูกศร Up บนคีย์บอร์ด จะเป็นการเรียกคำสั่งที่พิมพ์ ก่อนหน้ากลับมาใช้ได้อีก โดยไม่ต้องพิมพ์ใหม่ load 'c:\\myruby\\hello.rb' แล้วกดปุ่ม Enter บนคีย์บอร์ด

ดูผลลัพธ์ใน Ruby Console จะเห็นการเปลี่ยนแปลง


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




สรุป

เราจะเห็นขั้นตอนการเขียนโปรแกรม และใช้งาน Ruby บน Sketchup ดังนี้
  1. ที่โปรแกรม Notepad++ เขียนโปรแกรม Ruby
  2. ที่โปรแกรม Notepad++ Save ไฟล์ลงในโฟลเดอร์ที่ต้องการเก็บไฟล์ ในตัวอย่างคือ c:\myruby\hello.rb
  3. ที่โปรแกรม Sketchup เปิดวินโดว์ Ruby Console
  4. ที่โปรแกรม Sketchup โหลดไฟล์มาใช้งานโดย คำสั่ง load 'c:\\myruby\\hello.rb' แล้วกดปุ่ม Enter บนคีย์บอร์ด
  5. ที่โปรแกรม Sketchup ดูผลลัพธ์ที่วินโดว์ Ruby Console
  6. ที่โปรแกรม Notepad++ กลับไปแก้ไขโปรแกรม Ruby แล้ว Save ในชื่อไฟล์เดิม
  7. ที่โปรแกรม Sketchup กดปุ่มลูกศร UP บนคีย์บอร์ด จะได้คำสั่งเดิมกลับมา แล้วกดปุ่ม Enter บนคีย์บอร์ด เพื่อโหลดไฟล์ Ruby ที่เพิ่งแก้ไขกลับมาใหม่อีกครั้ง จะเห็นการเปลี่ยนแปลง

บทความต่อไป หาพื้นที่จากผิวที่เลือก
Keyword:ภาษา Ruby Sketchup plugin

QuickSketchup Ruby : เลือกใช้ Notepad++ สำหรับเขียน Ruby

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

บทความก่อนหน้า QuickSketchup Ruby

ก่อนอื่นเราต้องมี Ruby editor ที่เหมาะสมในการพัฒนาสักโปรแกรมก่อน

ดาวน์โหลดโปรแกรม Notepad++


ดาวน์โหลดโปรแกรม Notepad++ ได้จาก http://notepad-plus-plus.org/


เมื่อดาวน์โหลดเสร็จ ก็ติดตั้งโปรแกรม Notepad++ ได้เลย


เป็นอันว่าท่านมีเครื่องมือพัฒนา Sketchup Ruby อย่างง่ายเรียบร้อยแล้ว


บทความต่อไป...

โปรแกรมแรก hello.rb


Keyword:ภาษา Ruby Sketchup plugin

QuickSketchup Ruby

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


เราจะมาลองเขียนโปรแกรม Ruby เสริมให้ Sketchup สามารถถอด BOQ ของ Face กันสักหน่อย

สิ่งที่ต้องเตรียมก่อนล่วงหน้า

1. หัดใช้คำสั่ง Sketchup ให้เป็นก่อน

เพราะการเขียนโปรแกรม Ruby จะเป็นการเลียนแบบการสร้างโมเดล Sketchup ด้วยมือ ถ้าท่านไม่สามารถสร้างโมเดลด้วยมือได้ ก็ไม่สามารถเขียนโปรแกรม Ruby ได้เช่นกัน

2.ภาษาอังกฤษ สำหรับอ่านเอกสารประกอบ
ผมอธิบายเฉพาะหลักการสำคัญ ส่วนรายละเอียดท่านต้องอ่านเพิ่มเติมจาก Link ที่ผมจะให้ไว้ในตอนท้าย ซึ่งแน่นอนว่าเป็น ภาษาอังกฤษ ทั้งหมด


3. บทความนี้จะเน้นเฉพาะการถอด BOQ ของ Face เท่านั้น
เพื่อให้ง่ายต่อความเข้าใจ เพราะความจริงการเขียน Sketchup Ruby เกือบทั้งหมดเป็นคำสั่งของ Sketchup มีส่วนที่เป็น Ruby น้อยกว่ามาก และใช้ความรู้เกี่ยวกับ Vector, Matrix, Analytical Geometry ค่อนข้างมาก เอาเป็นว่าท่านไม่ต้องสนใจที่กล่าวมา เรามาเตรียมตัวเขียนโปรแกรม Sketchup Ruby เพื่อถอด BOQ ของ Face กันเลยดีกว่า

ดูบทความต่อไปได้เลยครับ




ต่อไป

เลือกใช้ Notepad++ สำหรับเขียน Ruby


Keyword:ภาษา Ruby Sketchup plugin

เข้าใจขั้นตอนการสร้าง Component ที่มีช่องเปิด Opening #2

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


บทความนี้ ต่อเนื่องมาจาก เข้าใจขั้นตอนการสร้าง Component ที่มีช่องเปิด Opening

ขั้นตอนการสร้างComponent ที่มีช่องเปิด (Opening)



จแสดงให้เห็นว่า ถ้า Component มีความหนาจะเป็นอย่างไร


สร้าง Component ที่จุด 0,0




Push/Pull ลงด้านล่าง เพิ่มความหนา



ลบผิวด้านบนสุดออก


เราได้ต้นแบบเรียบร้อยแล้ว ต่อไปนำไปสร้างเป็น Component

สร้างเป็น Component


เลือกวัตถุทั้งหมด



คลิกขวา เลือก Make Component


ตั้งชื่อ Component เป็น W-102 แล้วคลิกที่ Set Component Axes



คลิกที่จุด 0,0



เลื่อนมาทางแกน X หรือ แกนสีแดง แล้วคลิก



เลื่อนมาทางแกน Y หรือ แกนสีเขียวแล้วคลิก



กลับมาที่ หน้าจอสร้าง Component


เลือก Glue To Any และ Cut Opening เป็นเครื่องหมายถูก จะมองเห็นระนาบตัดเป็นสีจางๆ แล้วคลิกปุ่ม Create



เสร็จการสร้าง Component


ทดสอบการทำงานของ Component


สร้างสี่เหลี่ยมขนาด 4x4 ตารางเมตร



Push/Pull ขึ้นมา 3 เมตร


ที่เมนู Window>Components



แล้วคลิกที่รูปบ้าน ให้แสดงเฉพาะ Component ที่อยู่ในไฟล์นี้เท่านั้น


คลิกที่ W-102 แล้วลากมาวางบนผนังห้อง




จะเห็นว่าผนังจะถูกตัดออก



มุมมองในห้อง





ตัวอย่างไฟล์ทดสอบ


ไฟล์ทดสอบ Cut Opening2


Keyword:ภาษา Ruby Sketchup plugin, การใช้ Sketchup, cut opening

Wednesday, May 2, 2012

ขั้นตอนการใช้คำสั่ง FollowMe

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


สิ่งที่ต้องเตรียมขึ้นมาก่อน


1. ผิว หรือ เส้นต่อกัน แทน Path ที่จะให้หน้าตัด (profile) วิ่งไปตาม Path

2. หน้าตัด (profile) ที่ตั้งฉากกับ Path


ขั้นตอนการใช้คำสั่ง FollowMe


1. เลือก Path

ถ้าเป็น ผิวให้คลิกที่ผิว

ถ้าเป็นเส้น กดปุ่ม Shift ค้างไว้ แล้วเลือกเส้นทีละเส้นจนครบ






2. คลิกที่คำสั่ง FollowMe





3. เลือก หน้าตัด (profile)


Bingo



ตัวอย่างไฟล์ skp

ตัวอย่างไฟล์ skp สำหรับทดลอง


Keyword:ภาษา Ruby Sketchup plugin, การใช้ Sketchup

Tuesday, May 1, 2012

เข้าใจการใช้ FollowMe

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


FollowMe เป็นคำสั่งที่นำมาใช้สร้างวัตถุ ที่มีรูปทรงซับซ้อนได้เป็นอย่างดี โดยสิ่งที่ต้องเตรียม คือ

1. ผิว หรือ เส้นต่อกัน แทน Path ที่จะให้หน้าตัด (profile) วิ่งไปตาม Path

2. หน้าตัด (profile)

ตัวอย่างด้านล่าง แสดงให้เห็นว่า ถึงจะใช้ หน้าตัด (profile) เดียวกัน แต่เปลี่ยน Path ที่อยู่ด้านล่าง ก็จะได้ผลลัพธ์ต่างๆกัน






Path เป็นวงกลม



Path เป็นรูป 12 เหลี่ยม




Path เป็นรูป 6 เหลี่ยม




Path เป็นรูป 4 เหลี่ยม




Path เป็นรูป 3 เหลี่ยม




Keyword:ภาษา Ruby Sketchup plugin, การใช้ Sketchup , Followme

เข้าใจการใช้ Material กับ Group

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

หลักการใช้ Material กับ Group


1.ถ้าต้องการให้ทุกผิวของ Group แสดง Material เหมือนกัน ให้เท Material ที่ Group

2.แต่ถ้าต้องการแสดง Material บางผิวที่แตกต่างกัน ต้องเข้าไปใน Group แล้วเท Material เฉพาะผิวที่ต้องการ



Group เป็นวัตถุที่เกิดจากการนำ Face หรือ Edge หลายชิ้นมาประกอบกัน เป็นเสมือนวัตถุชิ้นเดียว

สิ่งที่ทำให้สับสนคือการ เท material ลงที่ Group แล้วท่านพบว่ามีบางอย่างที่สับสน

ถ้าใช่ ลองมาทำความเข้าใจการใช้ Material กับ Group ดูนะครับ

Material ใน group จะแบ่งออกเป็น 2 ลักษณะ ดังนี้


1.Group จะมีคุณสมบัติ Material แยกออกมาจาก Face ที่อยู่ภายใน Group ถ้าเราเทวัสดุลงที่ Group จะทำให้ทุกผิวใน Group แสดง Material ให้เห็น




แต่ที่ Face ที่อยู่ภายใน Group แต่ละ Face จะไม่มีคุณสมบัติ Material


ในกรณีนี้ เราจะเห็นทุกผิว (Face) ที่อยู่ภายใน Group มีวัสดุตาม Group



2.Face ที่อยู่ภายใน Group จะมีคุณสมบัติ Material เป็นของตัวเองได้ ดังนั้นถ้าเราเข้าไปเทวัสดุ Face ที่อยู่ภายใน Group โดยเท Material เฉพาะผิวที่ต้องการ


Face จะแสดงวัสดุเฉพาะผิวที่เทวัสดุ โดยไม่สนใจคุณสมบัติ Material ของ Group ว่ามีคุณสมบัติวัสดุเป็นอะไร





สรุป


1.ถ้าต้องการให้ทุกผิวของ Group แสดง Material เหมือนกัน ให้เท Material ที่ Group

2.แต่ถ้าต้องการแสดง Material บางผิวที่แตกต่างกัน ต้องเข้าไปใน Group แล้วเท Material เฉพาะผิวที่ต้องการ


Keyword:ภาษา Ruby Sketchup plugin, การใช้ Sketchup

เข้าใจขั้นตอนการสร้าง Component ที่มีช่องเปิด Opening

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


การสร้าง Component ที่มีช่องเปิด (Opening) ค่อนข้างจะทำให้สับสน พอสมควร ลองมาทำความเข้าใจกันนะครับ

ดาวน์โหลดไฟล์ทดสอบ


ไฟล์ทดสอบ cut opening


ขั้นตอนการสร้างComponent ที่มีช่องเปิด (Opening)






ลองมาดูตัวอย่างการสร้างหน้าต่าง

1.New ไฟล์ แล้วสร้างส่วนประกอบต่างๆ โดยใช้จุด 0,0 หรือ origin เป็นจุดเริ่มต้น




2.สร้างในระนาบ xy ถ้าต้องการให้มองผ่านกระจกทะลุผนัง ควรสร้างเป็นแบบ Face แผ่นเดียว


สร้างสีเหลี่ยม ขนาด 1.10x0.7


กลับด้านของผิวให้ ผิวด้านหน้าที่มีสีอ่อนกว่าอยู่ข้างบน


ขีดเส้นแบ่งครึ่ง


Offset จากขอบเข้ามา 0.05 เมตร


Offset จากขอบอีกข้าง เข้ามา 0.05 เมตร


เท Material แบบโปร่งแสง แทนกระจก


ได้ต้นแบบของหน้าต่างแบบผิวแผ่นเดียว



สร้างเป็น Component โดยเลือกวัตถุที่เห็นทั้งหมด



คลิกขวา แล้วเลือก Make Component


ตั้งชื่อให้กับ Component ในตัวอย่างคือ W-101




3.กำหนดจุดอ้างอิงก่อน กำหนด Cut Opening


ต่อไปคลิกที่ Set Component Axes เพื่อกำหนดจุดอ้างอิง



คลิกที่จุด 0,0 ของแกน XYZ


แล้วลากไปตามแกนสีแดง หรือ แกน X


แล้วลากไปตามแกนสีเขียว หรือ แกน Y



จะกลับมาหน้าจอสร้าง Component แล้วจึงเลือกเงื่อนไข Glue To เป็น Any


แล้วเช็คที่ Cut Opening ให้เป็นเครื่องหมายถูก รวมทั้งที่ Replace Selection with Component ให้เป็นเครื่องหมายถูกด้วย เพื่อเปลี่ยนผิวต้นแบบให้กลายเป็น Component แทน


แล้วจึงคลิกที่ปุ่ม Create เพื่อสร้าง Component





สร้าง Component เรียบร้อย



4.ทดสอบกับ Face จนแน่ใจว่าพื้นที่ Face ถูกตัดออกไป


สร้างสี่เหลี่ยมแทนพื้นห้อง ขนาด 4x4



Push/Pull พื้นห้องขึ้นมา 3 เมตร


เลือกเมนู Window>Components วาง W-101 ลงบนผิวผนัง



ลองเปลี่ยนมุมมองให้เอียง จะต้องมองเห็นมุมห้องด้านใน


ถ้ามีวัตถุด้านหลังผนังที่มีหน้าต่าง เช่นต้นไม้ จะต้องมองเห็น


คลิกที่ผนังห้อง แล้วคลิกขวา เลือก Entity Info จะเห็นว่ามีพื้นที่ 11.23 ตร.ม. เท่านั้น




คลิกที่ Component W-101 ที่วางอยู่บนผนัง แล้วคลิกขวา เลือก Hide


คลิกที่ผนังห้อง แล้วคลิกขวา เลือก Entity Info จะเห็นว่ามีพื้นที่ 12 ตร.ม. แสดงว่า Component W-101 หักพื้นที่ผนังออกไปจริง


เลือกเมนู Edit > Unhide > All แสดง Component W-101 กลับคืนมา





5. Save as ไปเก็บเอาไว้ใช้ต่อไป


คลิกที่ Component W-101 แล้วคลิกขวา เลือก Save As


บทความต่อไป
เข้าใจขั้นตอนการสร้าง Component ที่มีช่องเปิด Opening #2


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