Sunday, June 10, 2012

Sketchup API Constants

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


ที่ Ruby Console พิมพ์
Object.constants.sort.join("\n")

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

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

*************************
Sketchup API Constants
*************************
ACPToolsObserver
ALT_MODIFIER_KEY
ALT_MODIFIER_MASK
ALeaderModel
ALeaderNone
ALeaderView
ARGF
ARGV
AddDetailTool
Align
ArgumentError
Array
Balustrade
Bignum
Binding
CMD_ARC
CMD_CAMERA_UNDO
CMD_CIRCLE
CMD_COPY
CMD_CUT
CMD_DELETE
CMD_DIMENSION
CMD_DISPLAY_FOV
CMD_DOLLY
CMD_DRAWCUTS
CMD_DRAWOUTLINES
CMD_ERASE
CMD_EXTRUDE
CMD_FREEHAND
CMD_HIDDENLINE
CMD_LINE
CMD_MAKE_COMPONENT
CMD_MEASURE
CMD_MOVE
CMD_NEW
CMD_OFFSET
CMD_OPEN
CMD_ORBIT
CMD_PAGE_DELETE
CMD_PAGE_NEW
CMD_PAGE_NEXT
CMD_PAGE_PREVIOUS
CMD_PAGE_UPDATE
CMD_PAINT
CMD_PAN
CMD_PASTE
CMD_POLYGON
CMD_POSITION_CAMERA
CMD_PRINT
CMD_PROTRACTOR
CMD_PUSHPULL
CMD_RECTANGLE
CMD_REDO
CMD_ROTATE
CMD_RUBY_CONSOLE
CMD_SAVE
CMD_SCALE
CMD_SECTION
CMD_SELECT
CMD_SELECTION_ZOOM_EXT
CMD_SHADED
CMD_SHOWGUIDES
CMD_SHOWHIDDEN
CMD_SKETCHAXES
CMD_SKETCHCS
CMD_TEXT
CMD_TEXTURED
CMD_TRANSPARENT
CMD_UNDO
CMD_VIEW_BACK
CMD_VIEW_BOTTOM
CMD_VIEW_FRONT
CMD_VIEW_ISO
CMD_VIEW_LEFT
CMD_VIEW_PERSPECTIVE
CMD_VIEW_RIGHT
CMD_VIEW_TOP
CMD_WALK
CMD_WIREFRAME
CMD_ZOOM
CMD_ZOOM_EXTENTS
CMD_ZOOM_WINDOW
CONSTRAIN_MODIFIER_KEY
CONSTRAIN_MODIFIER_MASK
COPY_MODIFIER_KEY
COPY_MODIFIER_MASK
ChamferStructures
Class
Clf_Normal_lines_Height
Clf_Vertical_lines_elev
Clf_Vertical_lines_height
Clf_select_outer_edges
Comparable
Continuation
Contours
CylTool
DCConverter
DCDownloader
DCFunctionsV1
DCInteractTool
DCObservers
DCProgressBar
Data
DefaultManager
DimAngleTool
DimensionArrowClosed
DimensionArrowDot
DimensionArrowNone
DimensionArrowOpen
DimensionArrowSlash
Dir
DrapeEdges
DrapeTool
Drop
DynamicComponentsV1
ENV
EOFError
EntitiesObserver
Enumerable
Errno
Exception
ExtendStructures
ExtendStructures2
FALSE
FILE_WRITE_FAILED_INVALID_TYPE
FILE_WRITE_FAILED_UNKNOWN
FILE_WRITE_OK
FalseClass
File
FileTest
FilletTool2D
Fixnum
FlipEdgeTool
Float
FloatDomainError
FootprintFinder
FrameChangeObserver
FromContoursTool
FromScratchTool
GC
GL_LINES
GL_LINE_LOOP
GL_LINE_STRIP
GL_POINTS
GL_POLYGON
GL_QUADS
GL_QUAD_STRIP
GL_TRIANGLES
GL_TRIANGLE_FAN
GL_TRIANGLE_STRIP
Geom
GrowStructureFace
GrowStructures
Hash
IDABORT
IDCANCEL
IDENTITY
IDIGNORE
IDNO
IDOK
IDRETRY
IDYES
IO
IOError
IndexError
Inputbox
Integer
Interrupt
JF
KaraokeSong
Kernel
LAYER_HIDDEN_BY_DEFAULT
LAYER_IS_HIDDEN_ON_NEW_PAGES
LAYER_IS_VISIBLE_ON_NEW_PAGES
LAYER_USES_DEFAULT_VISIBILITY_ON_NEW_PAGES
LAYER_VISIBLE_BY_DEFAULT
LanguageHandler
Layer_Manager_Extension
Length
LineTool
LoadError
LocalJumpError
MB_ABORTRETRYIGNORE
MB_MULTILINE
MB_OK
MB_OKCANCEL
MB_RETRYCANCEL
MB_YESNO
MB_YESNOCANCEL
MF_CHECKED
MF_DISABLED
MF_ENABLED
MF_GRAYED
MF_UNCHECKED
MK_ALT
MK_COMMAND
MK_CONTROL
MK_LBUTTON
MK_MBUTTON
MK_RBUTTON
MK_SHIFT
Marshal
MatchData
MatchingData
Math
Mbox
Method
MirrorTool
Module
MyAppObserver
MyLayersObserver
NIL
NameError
NilClass
NoMemoryError
NoMethodError
NotImplementedError
Numeric
ORIGIN
Object
ObjectSpace
PAGE_NO_CAMERA
PAGE_USE_ALL
PAGE_USE_CAMERA
PAGE_USE_HIDDEN
PAGE_USE_LAYER_VISIBILITY
PAGE_USE_RENDERING_OPTIONS
PAGE_USE_SECTION_PLANES
PAGE_USE_SHADOWINFO
PAGE_USE_SKETCHCS
PLATFORM
ParkingTool
PathCopy
PathCopySpacing
Precision
Proc
Process
RELEASE_DATE
RUBY_PLATFORM
RUBY_RELEASE_DATE
RUBY_VERSION
Range
RangeError
Regexp
RegexpError
Roof
RoofGable
RoofPyramid
RoofTool2
RuntimeError
SB_PROMPT
SB_VCB_LABEL
SB_VCB_VALUE
SKETCHUP_CONSOLE
SKSocket
STDERR
STDIN
STDOUT
SU2KT
SU2KTAnim
SU2KTL
ScriptError
SecurityError
Selection
Set
Signal
SignalException
Singleton
Sketchup
SketchupExtension
SmooveTool
SnapTo_Arbitrary
SnapTo_Horizontal
SnapTo_Sloped
SnapTo_Vertical
Song
SongList
StampTool
StandardError
String
Struct
Symbol
SyntaxError
SystemCallError
SystemExit
SystemStackError
TAKTASK
TB_HIDDEN
TB_NEVER_SHOWN
TB_VISIBLE
TOPLEVEL_BINDING
TRUE
TST_common
Terrain
Test
TextAlignCenter
TextAlignLeft
TextAlignRight
Thread
ThreadError
ThreadGroup
Time
TrackMouseTool
TrueClass
TypeError
UI
UnboundMethod
VERSION
VK_ALT
VK_COMMAND
VK_CONTROL
VK_DELETE
VK_DOWN
VK_END
VK_HOME
VK_INSERT
VK_LEFT
VK_MENU
VK_NEXT
VK_PRIOR
VK_RIGHT
VK_SHIFT
VK_SPACE
VK_UP
ViewSpinner
WIN32OLE
WIN32OLERuntimeError
WIN32OLE_EVENT
WIN32OLE_METHOD
WIN32OLE_PARAM
WIN32OLE_TYPE
WIN32OLE_VARIABLE
WallTool
WebTextures
Win32
Win32API
X_AXIS
Y_AXIS
Z_AXIS
ZeroDivisionError


Keyword:ภาษา Ruby Sketchup plugin

QuickSketchup Ruby : การส่ง Face BOQ ไปยัง Excel ด้วยไฟล์ CSV

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

บทความก่อนหน้า การหา BOQ จากผิวและชื่อวัสดุ

version ใหม่ ในเมนู Plugins ไม่ต้องพิมพ์


แก้ปัญหานับผิวกระจก Translucent ซ้ำสองครั้ง

*****Material ที่เป็นกระจก ต้องขึ้นต้นด้วย Translucent*****
*****โปรแกรมจะนับเฉพาะพื้นที่ด้านหน้า ******"

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

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

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






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

1.เปิดไฟล์ house1.skp ที่ดาวน์โหลดมาจากด้านบน

2.เลือกผิว (Face) ที่ต้องการถอดปริมาณวัสดุ

คลิกที่รูปเพื่อขยาย


3.เปิด Ruby Console พิมพ์ หรือ copy + paste คำสั่งด้านล่าง


Sketchup::load 'c:\\myruby\\faceboqcsv.rbs'


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

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


คลิกที่รูปเพื่อขยาย

4.เปิดไฟล์ c:\myruby\qs_boq.csv ด้วยโปรแกรม Excel

คลิกที่รูปเพื่อขยาย




สรุป




ความรู้พื้นฐานเกี่ยวกับภาษา Ruby

ความรู้พื้นฐานเกี่ยวกับภาษา Sketchup Ruby API


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

QuickSketchup Ruby : การหาพื้นที่หลายผิวมารวมกัน

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

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

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

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

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


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

require 'sketchup'
#กำหนดตัวแปร entities เป็นวัตถุที่เลือกจาก selection
entities = Sketchup.active_model.selection
#กำหนดตัวแปร sumarea เป็นค่า 0
sumarea = 0

#กำหนดตัวแปร sfactor เป็นค่าแปลงหน่วยของพื้นที่จากตารางนิ้วเป็นตารางเมตร
sfactor = (1.m * 1.m)

#เริ่มต้นวน loop
entities.each{|face|
#ถ้าตัวแปร face ไม่ใช้ Sketchup::Face ข้ามไปวัตถุชิ้นถัดไป
next unless (face.class == Sketchup::Face) #ถ้าตัวแปร face เป็น Sketchup::Face ทำบรรทัดข้างล่าง
#ถ้าตัวแปร face เป็น Sketchup::Face
sumarea += (face.area / sfactor)

} #สิ้นสุดการวน loop

#แสดงผลของตัวแปร sumarea
puts "*****Total Area (sq.m.)*****"
#พิมพ์ค่าทศนิยม 2 ตำแหน่งของตัวแปร sumarea
puts (sumarea*100).round / 100.0



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


1.เปิดไฟล์ house1.skp ที่ดาวน์โหลดมาจากด้านบน

2.เลือกผิว (Face) ที่ต้องการรวมพื้นที่

คลิกที่รูปเพื่อขยาย


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

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

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

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

คลิกที่รูปเพื่อขยาย



สรุป



ต่อไป
การหา BOQ จากผิวและชื่อวัสดุ


Keyword:ภาษา Ruby Sketchup plugin

Saturday, June 9, 2012

QuickSketchup Ruby : การหา BOQ จากผิวและชื่อวัสดุ

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

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


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

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

2.ไฟล์ Ruby
ไฟล์ faceboq.rb

Save ไว้ในโฟลเดอร์ C:\myruby


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

require 'sketchup'

#กำหนดตัวแปร entities เป็นวัตถุที่เลือกจาก selection
entities = Sketchup.active_model.selection
#กำหนดตัวแปร sumarea เป็นค่า Hash
#ดูเพิ่มเติมเกี่ยวกับ Ruby Hash ที่ http://ruby.about.com/od/rubyfeatures/a/hashes.htm
sumarea = Hash.new(0)
#กำหนดตัวแปร sfactor เป็นค่าแปลงหน่วยของพื้นที่จากตารางนิ้วเป็นตารางเมตร
sfactor = (1.m * 1.m)

#เริ่มต้นวน loop
entities.each{ |face|
#ถ้าตัวแปร face ไม่ใช่ Sketchup::Face ข้ามไปวัตถุชิ้นถัดไป
next unless (face.class == Sketchup::Face) #ถ้าตัวแปร face เป็น Sketchup::Face ทำบรรทัดข้างล่าง
#ถ้าตัวแปร face เป็น Sketchup::Face และมี Material เทอยู่ด้านหน้า
if face.material
#บวกค่าพื้นที่เพิ่ม สำหรับชื่อวัสดุด้านหน้า
sumarea[face.material.display_name] += (face.area / sfactor)
end
#ถ้าตัวแปร face เป็น Sketchup::Face และมี Material เทอยู่ด้านหลัง
if face.back_material
#บวกค่าพื้นที่เพิ่ม สำหรับชื่อวัสดุด้านหลัง
sumarea[face.back_material.display_name] += (face.area / sfactor)
end
} #สิ้นสุดการวน loop

#แสดงผลของตัวแปร sumarea
puts "*****BOQ Start*****"

#เริ่มต้นวน loop
#กำหนดตัวแปร name คือชื่อ display_name ของ material
#ส่วนตัวแปร area เป็นค่าพื้นที่ของ face มีหน่วยเป็นตารางเมตร
sumarea.each do|name,area|
#กำหนดตัวแปร marea มีค่าเป็นพื้นที่ให้มีค่าทศนิยม 2 ตำแหน่งจากค่าของตัวแปร area
marea = (area*100).round / 100.0
puts "#{name}, #{marea}, sq.m."
end #สิ้นสุดการวน loop

puts "*****BOQ End*****"





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

1.เปิดไฟล์ house1.skp ที่ดาวน์โหลดมาจากด้านบน

2.เลือกผิว (Face) ที่ต้องการถอดปริมาณวัสดุ

คลิกที่รูปเพื่อขยาย


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

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

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

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


คลิกที่รูปเพื่อขยาย




สรุป



ต่อไป
การส่ง BOQ ไปยัง Excel ด้วยไฟล์ CSV


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

Friday, June 8, 2012

สารบัญ Quick Sketchup สำหรับถอด BOQ ผิวอาคาร 3 มิติ


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




Sketchup 2016 มาแล้วจ้า


หัวข้อที่น่าสนใจ


Plugins that work

แนะนำ Plugin ที่นำมาช่วยในการทำงานได้
Read More...

Ruby Programming

แนะนำ พื้นฐานการเขียน Plugin ด้วย Ruby Script

NanoCAD

แนะนำ CAD 2D ที่สามารถมำมาใช้งานร่วมกับ Sketchup ได้ ที่สำคัญเป็น Free Software ที่เทียบเท่า AutoCAD

Libre Office

แนะนำ Office Suite ที่สามารถมำมาใช้งานร่วมกับ Sketchup ได้ ที่สำคัญเป็น Free Software ที่เทียบเท่า MS-Office


Sketchup 2015 มาแล้วจ้า



Link to download...

มีอะไรใหม่ที่น่าสนใจ

  • SketchUp 64 bit แล้ว รอกันมานาน
  • 3 Point Arc Tool
  • Rotated Rectangle สี่เหลี่ยมหมุนระนาบได้
  • IFC import/export ทำงานร่วมกับ BIM ได้


พื้นฐานการ เรนเดอร์ Sketchup ด้วย Kerkythea


Read more...

ถอด BOQ จากวัสดุ คอมโพเน้นท์ และ กรุปที่ตั้งชื่อของ Sketchup


โปรแกรม Ruby สำหรับถอดปริมาณ BOQ จากวัสดุ คอมโพเน้นท์ และ กรุปที่ตั้งชื่อของ Sketchup ในครั้งเดียว
Read more...

3D Printing ด้วย Sketchup 2014

Sketchup 2014 นำมาใช้ในงาน 3D Printing ได้เป็นอย่างดี Read more...

Sketchup 2014 มาแล้ว

Sketchup 2014 ออกมาแล้ว มีการปรับปรุงครั้งใหญ่ เช่น รองรับ BIM ตามมาตรฐาน IFC , ใช้ Ruby 2.0 และอื่นๆอีกมากพอสมควร Read more...

NanoCAD 5.0 มาแล้ว

ในที่สุดเราสามารถพัฒนา Application บน NanoCAD ได้แล้ว แถมเลือกได้หลายวิธีอีกด้วย
Read more...

แก้ปัญหาการใช้งาน Windows 8

หลังติดตั้ง Windows 8 ท่านจะพบความมึนงง ในการปรับแต่ง Windows
เพราะ Control Panel หายไปแล้ว เปิดไฟล์ Excel ที่ทำค้างไว้ก็เป็นตัวยึกยือซะนี่
Read more...

โครงการอบรมผู้ช่วยผู้จัดการ

โครงการอบรมนักศึกษา เพื่อให้สามารถทำงานในหน้าที่ผู้ช่วยผู้จัดการ ของสถานประกอบการ SME ได้
Read more...


การนับปริมาณวัสดุ BOQ ด้วยภาษา Sketchup Ruby

  • การส่ง BOQ Face ไปยัง Excel ด้วยไฟล์ CSV Read more...
  • การส่ง BOQ ของ Components ไปยัง Excel ด้วยไฟล์ CSV Read more...

แนะนำ Sketchup Plugin ที่น่าสนใจ

Plugin คือ คำสั่งที่เขียนเสริมความสามารถของ Sketchup ให้ทำงานได้ง่ายขึ้น ส่วนมากจะเขียนด้วย Sketchup Ruby

แหล่งรวมรวม Sketchup Plugin จะมีดังนี้ คือ

แต่พบว่าผู้ใช้ Sketchup ไม่เข้าใจวิธีติดต้ัง และการใช้งาน plugin เนื่องจากเว็บที่กล่าวมาข้างต้นไม่ได้บอกไว้
ผมเลยขอแนะนำ วิธีติดต้ัง และการใช้งาน plugin ที่มีประโยชน์
โฟลเดอร์ Sketchup Plugins คือ

Sketchup 7
Windows 32 bit
C:\Program Files\Google\Google SketchUp 7\Plugins
Windows 64 bit
C:\Program Files (x86)\Google\Google SketchUp 7\Plugins

Sketchup 8
Windows 32 bit
C:\Program Files\Google\Google SketchUp 8\Plugins
Windows 64 bit
C:\Program Files (x86)\Google\Google SketchUp 8\Plugins
Rotate 90 degree หมุนวัตถุที่เลือก 90 องศา ในแกน X,Y, หรือ Z
Read more...


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

Wednesday, June 6, 2012

Quick Sketchup : เข้าใจการสร้างผนังแบบ Single Wall

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


ดาวน์โหลด


skp



เปิดไฟล์ที่ดาวน์โหลด

Scale แกนสีแดง 3.8m

Scale แกนสีน้ำเงิน 2.8m



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

Quick Sketchup : เข้าใจการใช้ Scale Tool #2

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


ถ้าเราต้องการปรับสเกลในแกนที่ต้องการให้มีระยะใหม่ ทำอย่างไรจึงจะง่ายที่สุดโดยไม่ต้องคำนวณสเกลใหม่

จากตัวอย่าง เรามีคานยาว 4 เมตร อยู่ แต่เราต้องการแก้ไขเป็น 3.2 เมตร




เราใช้ Scale Tool เลือกแกนสีเขียว




แล้วพิมพ์ค่า 3.2m แล้วกดปุ่ม Enter

Quick Sketchup : เข้าใจการใช้ Scale Tool

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





เข้าใจการใช้ Scale Tool

ดาวน์โหลดไฟล์

ไฟล์ skp


ปรับทุกแกนพร้อมกัน (XYZ-axis)

  • เลือก Scale Tool
  • เลือกวัตถุ
  • คลิกที่ Grip สีเขียวที่มุมใดก็ได้ จะเปลี่ยนเป็นสีแดง



  • เลื่อนเมาส์ออกไป
  • พิมพ์ค่า Scale ที่ต้องการ




ปรับเฉพาะแกนสีแดง ( X-axis)

  • เลือก Scale Tool
  • เลือกวัตถุ
  • คลิกที่ Grip สีเขียวตรงกลางในแนวแกนสีแดง จะเปลี่ยนเป็นสีแดง



  • เลื่อนเมาส์ออกไป
  • พิมพ์ค่า Scale ที่ต้องการ




ปรับเฉพาะแกนสีเขียว ( Y-axis)


  • เลือก Scale Tool
  • เลือกวัตถุ
  • คลิกที่ Grip สีเขียวตรงกลางในแนวแกนสีเขียว จะเปลี่ยนเป็นสีแดง



  • เลื่อนเมาส์ออกไป
  • พิมพ์ค่า Scale ที่ต้องการ





ปรับเฉพาะแกนสีน้ำเงิน ( Z-axis)


  • เลือก Scale Tool
  • เลือกวัตถุ
  • คลิกที่ Grip สีเขียวตรงกลางในแนวแกนน้ำเงิน จะเปลี่ยนเป็นสีแดง



  • เลื่อนเมาส์ออกไป
  • พิมพ์ค่า Scale ที่ต้องการ




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

Quick Sketchup : เข้าใจการแก้ไข Group

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


การแก้ไข Group



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

Quick Sketchup : เข้าใจการสร้าง Group

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

เข้าใจการสร้าง Group




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