ภาษา Ruby ถูกใช้เป็นภาษาสคริปต์สำหรับโปรแกรม SketchUp โดยเป็นภาษาแบบเชิงวัตถุ จะมีความคล้ายคลึง กับ Python แต่ก็มีบางส่วนแบบภาษา C การเรียนรู้ภาษา Ruby สำหรับคนที่เคยเขียนโปรแกรมมาบ้างแล้วจะไม่ยากเลย แต่คนที่ไม่เคยเขียนโปรแกรมมาก่อนผมว่ามันก็ไม่ยากอีกแหล่ะ ภาษาคอมพิวเตอร์มันจะยากช่วงแรกๆ คือมันไม่ค่อยรู้เรื่อง แต่พอเข้าใจมันก็จะรู้เรื่อง สรุปคือถ้าจะเขียน Extension สำหรับ SketchUp ก็ต้องหัดเรียนภาษา Ruby จบ
____ กฎ 10,000 ชั่วโมง เป็นจริง ผมไม่ได้หัดเขียนโปรแกรมเมื่อ ปี หรือสองปี ผมเริ่มฝึกเขียนโปรแกรมด้วยความตั้งใจของตนเองที่ไม่ใช่วิชาเรียนภาคบังคับ ต้้งแต่ผมเรียนปริญญาตรีปี 4
ในการสร้าง Extension ต้องมีองค์ความรู้ประกอบหลายส่วน
ภาษา Ruby เพราะ Extension แบบไม่ซับซ้อนมากใช้ Ruby เขียนได้ ไม่ต้องเป็น C++(อันนี้ผมก็ไม่เป็น) ดังนั้นต้องมีความเข้าใจภาษา Ruby เพื่อเขียนเป็นคำสั่งควบคุม
ระดับ Basic เพื่อคุมทางเลือก if , วนรอบในแบบของ Ruby , การใช้ตัวแปรประเภทต่างๆ , การใช้งาน Array และ Hash
ระดับกลาง เขียนฟังค์ชัน ส่งผ่านตัวแปร arguments และการครอบด้วย Module เพื่อแยกส่วนของโค้ด
ระดับสูง เขียนเป็น class เพื่อควบคุมการเขียนให้ใช้งานสะดวกขึ้น(อาจจะยังไม่จำเป็นสำหรับมือใหม่)
การสร้างวัตถุสามมิติใน SketchUp เนื่องจาก SketchUp เป็นโปรแกรมสร้างแบบจำลองสามมิติ ดังนั้นต้องศึกษา Ruby API ต่างๆ ที่ใช้ในการควบคุมการสร้างให้เราด้วยมาโครแทนการคลิ๊กเม้าส์ หัดสร้าง
เส้นตรง , วงกลม , สี่เหลี่ยม พื้นฐานของ SketchUp จะเป็นการสร้างผิวแล้วดึง
กล่อง , ทรงกระบอก , ฝึก PushPull , FollowMe
การสร้าง Extension ของ SketchUp
พื้นฐาน การสร้าง UI แบบ inputbox ชนิดพื้นฐาน แล้วส่งคำสั่งไปเรียก Ruby เพื่อสร้างวัตถุ
สร้าง Toolbar และ เมนู เพื่อกดปุ่มเรืยก UI
การ Pack Extension เป็น .rbz ตามสไตล์ Extension ของ SketchUp ถ้าขึ้นสูงหน่อยก็ก๊อปไปวางเองที่ตำแหน่ง PlugIns
การ Sign Extension ผ่านเว็บ Trimble เพื่อให้ไฟล์ .rb กลายเป็น .rbe แล้วค่อย distribute ต่อไป
การสร้าง UI แบบ HtmlDialog เพื่อความสวยงาม และควบคุมข้อมูล input ได้
พื้นฐาน การสร้าง UI แบบ HtmlDialog ต้องมีความรู้พื้นฐานการเขียนเว็บเพจ HTML,CSS และ JavaScript รวมถึงการใช้ FrameWork ต่างๆ เข้าช่วย เช่น jQuery, VueJS, ReactJS เป็นต้น
การสร้าง Extension นอกจากจะต้องเข้าใจทางด้านเทคนิคการเขียนโปรแกรมแล้ว ต้องเข้าใจ WorkFlow ของการทำงาน และสามารถแปลงเป็น Data ที่เป็น Input นำไป Process ให้ได้ Output ดังนั้นจะต้องมี I-P-O กำหนดไว้ในใจก่อนจะเขียน Extension