2008年08月18日

sketup ruby api viewの幅と高さ

viewの幅と高さは

vpwidth

vpheight

で求めます。






model = Sketchup.active_model
view = model.active_view
width = view.vpwidth
height = view.vpheight

puts width
puts height
posted by 3D at 06:31| Comment(14) | TrackBack(0) | 日記

2008年08月12日

2008年08月05日

sketchup ruby api 線の位置

sketchup ruby api 線の開始位置と終了位置は
次のように求めます。

entがSketchup::Edgeのとき
ent.start.positionで開始位置
ent.end.positionで終了位置を求めます。




def puts_position()

model = Sketchup.active_model
ss = model.selection
if( ss.empty? )
return nil
end

for ent in ss
if( ent.is_a? Sketchup::Edge )
puts ent.start.position
puts ent.end.position
end
end

end

posted by 3D at 08:03| Comment(0) | TrackBack(0) | 日記

2008年08月03日

3DSデータのインポート

http://www.model-wave.com/page.cgi?page=html/freedata.html
に無料の3DSファイルがあったので、ダウンロードして、
sketchupのファイルメニューのインポートで
インポートしてみました。

s2.jpg

えらく大きい、テレビがインポートできました。
人とサイズを比べてください。
posted by 3D at 07:28| Comment(2) | TrackBack(0) | 日記

2008年08月02日

sketchup ruby api send_action

sketchupのrubyのapiでsend_actionというものがあります。

Sketchup.send_action( "viewBack:")
とすると、
背面からのビューに切り替わります。

以下のアクションがあります。

showRubyPanel:
viewBack:
viewBottom:
viewFront:
viewIso:
viewLeft:
viewRight:
viewTop:
viewPerspective:
viewShowAxes:
viewShowHidden:
viewZoomExtents:
viewZoomToSelection:
viewUndo:
selectOrbitTool:
selectPositionCameraTool:
selectDollyTool:
selectTurnTool:
selectWalkTool:
selectZoomTool:
selectFieldOfViewTool:
selectZoomWindowTool:
pageAdd:
pageDelete:
pageUpdate:
pageNext:
pagePrevious:
renderWireframe:
renderHiddenLine:
renderMonochrome:
renderShaded:
renderTextures:
selectArcTool:
selectAxisTool:
selectCircleTool:
selectEraseTool:
selectFreehandTool:
selectLineTool:
selectMeasureTool:
selectMoveTool:
selectOffsetTool:
selectPaintTool:
selectPolygonTool:
selectProtractorTool:
selectPushPullTool:
selectRectangleTool:
selectRotateTool:
selectScaleTool:
selectSectionPlaneTool:
selectTextTool:
selectDimensionTool:
selectExtrudeTool:
selectSelectionTool:
editUndo:
editRedo:
editHide:
editUnhide:
fixNonPlanarFaces:

http://groups.google.com/group/SketchUp-Plugins-Dev/web/Ruby-Sketchup.html#send_action
posted by 3D at 07:30| Comment(0) | TrackBack(0) | 日記

2008年08月01日

sketchup ruby api 角度

2本のベクターの角度を求めるのには angle_betweenを使います。
結果はラジアンで帰ってきます。

def angle vector = Geom::Vector3d.new 1,0,0 vector2 = Geom::Vector3d.new 0,1,0 angle = vector.angle_between vector2 puts angle puts angle*180/Math::PI end

posted by 3D at 06:36| Comment(0) | TrackBack(0) | 日記

2008年07月30日

sketchup ruby api 非表示

選択したものを非表示にします。 i.hidden = true で非表示となります。
posted by 3D at 21:07| Comment(0) | TrackBack(0) | 日記

2008年07月29日

sketchup ruby 選択したもの

選択したものはmodel.selectionで、得ることができる。

サンプル

def puts_area()

model = Sketchup.active_model
ss = model.selection
if( ss.empty? )
return nil
end

for ent in ss
if( ent.is_a? Sketchup::Face )
puts ent.area
end
end
end

では、ssに選択したものをいれ、それが面(Sketchup::Face)
なら面積をコンソールに表示している。

エッジなら
Sketchup::Edge
円弧なら
Sketchup::ArcCurve
で判断する。
posted by 3D at 06:13| Comment(0) | TrackBack(0) | 日記

2008年07月28日

sketchup ruby apiのサンプルコードのある場所

SketchUp Ruby API
http://download.sketchup.com/OnlineDoc/gsu6_ruby/Docs/ruby-classes.html
に、
Example Code: animationtests.rb
等、書いてあるけどリンクが切れている。

実は、以下にあります。

http://download.sketchup.com/downloads/downloads/rubyscripts/RubyTests.zip

posted by 3D at 06:29| Comment(0) | TrackBack(0) | 日記

2008年07月27日

sketchup rubyスクリプトの実行

rubyで書いたスクリプトを拡張子をrbにして
C:\Program Files\Google\Google SketchUp 6\Plugins
に置くと、sketchup起動時に読み込まれ、実行されます。

デバッグ時は
ウィンドウメニューのRubyコンソールを開いておきます。

load "ファイル名"
でファイルをロードできます。

メソッド名を入力して、実行します。

カーソルの上キーで、過去の入力が再表示されいますので、繰り返し入力するときは
便利です。

rubyスクリプトでputsで、rubyコンソールに出力できます。

posted by 3D at 06:26| Comment(0) | TrackBack(0) | 日記