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) | 日記

2008年07月26日

SketchUpのWebDialog rubyとの連携

SketchUpのWebDialogでrubyと連携ができます。


WebDialog classは以下の特徴があります。

htmlでダイアログボックスを記述できる。
htmlの要素にrubyからアクセスできる。
rubyからhtml内のjavascriptの関数を実行できる。
htmlのjavascriptからrubyのメソッドを実行できる。


詳しくはこちら

SketchUp Ruby API Reference

http://download.sketchup.com/OnlineDoc/gsu6_ruby/Docs/ruby-webdialog.html

手順
(1)

test.html

ダイアログに表示したい内容をhtmlで用意します。
-------------------------------------------------
<html>
<head>
<script language="javascript">
<!--
function onOK()
{
window.location='skp:on_ok';
}

function ruby(msg)
{
document.getElementById("result").innerHTML = msg;
}

-->
</script>
</head>
<body>
<h1 id="result">h1</h1>
<div id="message">
This is a test.<br>
</div>
<input type=text id="myTextInput">
<input onClick="onOK()" type="button" size="100" value="Continue">
<input onClick="ruby('call from html')" type="button" size="100" value="ruby">

</body>
</htm>
-------------------------------------------------


window.location='skp:on_ok';でrubyのメソッドを呼び出します。

<input type=text id="myTextInput">
のようにidを付けておけばrubyから値を取り出せます。


(2)
ruby スクリプトはこんな感じ。
-------------------------------------------------
def web
dlg = UI::WebDialog.new("WEBDialog", true, "WEBDialog", 739, 641, 150, 150, true)

dlg.add_action_callback("on_ok") {|d,p|
t = d.get_element_value("myTextInput")
puts t
d.execute_script("ruby('call from ruby')");
}

html = File.dirname(__FILE__) +"/test.html"

dlg.set_file html

dlg.show

end
-------------------------------------------------

UI::WebDialog.newで新しくWebDialogを作ります。

dlg.add_action_callback("on_ok") でjavascriptからの呼び出しを受けます。

d.get_element_value("myTextInput") で、htmlの要素の値を取り出せます。

d.execute_script("ruby('call from ruby')")でjavascriptの関数を実行できます。

dlg.set_file htmlでhtmlをセットします。

dlg.showでhtmlを表示します。

サンプルの画像は飾りも無く、さびしいですが、htmlなので、好きなデザインにしてください。

インターネット上のファイルも表示できるので、いろいろ使えそうです。

sketchupのwebdialog
クリックで拡大します。
posted by 3D at 09:08| Comment(0) | TrackBack(0) | 日記

2008年07月25日

スケッチアップのショートカット

sketchupのキーボードショートカット

選択 - Space バー
線 - L
移動 - M
長方形 - R
プッシュ/プル - P
消しゴム ー E
円 - C
回転 - Q
尺度 - S
メジャー - T
オービット - O
ズーム - Z
ペイント - B
円弧 - A
オフセット - F
パン - H

線を引いていて、終わるときはスペースキーを
押すと良い。
posted by 3D at 07:17| Comment(0) | TrackBack(0) | 日記

2008年07月24日

sketchup ボーナスパック

sketchup ボーナスパック

http://sketchup.google.co.jp/bonuspacks.html

建築 建設 映画と舞台製作 景観設計 機械設計 人物 記号 交通
のコンポーネントが多数ダウンロードできます。
また
マテリアルも多数あります。
posted by 3D at 07:25| Comment(0) | TrackBack(0) | 日記

2008年07月22日

Windowsムービーメーカーで動画を作る

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

2008年07月21日

今度はやきそば

1時間並んで食べました。
おいしかったです。
写真を撮って、スケッチアップで3Dにしました。
PIC_0044.JPG


にこにこ動画
posted by 3D at 21:51| Comment(0) | TrackBack(0) | 日記

2008年07月20日

中国料理チャンピオン


no-title



高速道路のサービスエリアで
こんな写真を撮ってきたので
google sketchup スケッチアップで遊んでみた。


no-title

ニコニコ動画に投稿しました。
posted by 3D at 21:30| Comment(0) | TrackBack(0) | 日記

2008年07月19日

星を描くsketchupのruby スクリプト

googleが無料で配布している3Dソフトのsketchupでは
rubyでスクリプトを組めます。

外径、内径、角の数を入力すると、
星を描くスクリプトを作ってみました。

star.jpg



以下の
sketchupのrubysスクリプトをPluginのディレクトリに置いて、sketchupを起動してください。
Pluginsのメニューにstarという項目が現れます。


star.rb
posted by 3D at 08:05| Comment(0) | TrackBack(0) | 日記