3
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

RubyでSketchUpメモ

Posted at

#はじめに
SketchUpは立体的な絵を描くことができる(言い換えれば立体モデルを作ることができる)ソフトウエアです。SketchUpは、手作業で立体モデルを作っていくことができますが、さらに、プログラミング言語であるRubyを使って、立体モデルを作ることもできます。

本記事は、rubyを使ってSketchUpで立体モデルを作成することに関しての筆者の覚書記事です。随時更新します。筆者はRubyはほぼ初めて、SketchUpは以前、手作業でこんなの ↓ を作ったり、していたことがあります(これは、実験で使うプラスチック製のチューブで、俗にエッペンというやつです)。

image.png

先の投稿では、タンパク質の立体構造データをもとに、SketchUpで立体モデルを作ることができました。

この記事は、さらに色々調べたことを随時更新する記事です。

#注釈を立体モデル上に配置する (Textクラスの使い方)
手作業では、このような注釈を、立体モデル上につけることができます。
image.png
Ruby APIではどのようにすれば良いでしょうか?

調べてみると、これはSketchupのTextクラスのオブジェクトです。Textクラスは、SketchupのDrawingelementクラスのサブクラスです。

image.png

選択した状態で以下を実行してみます。

selectedObjects = Sketchup.active_model.selection
t = selectedObjects[0]
t.arrow_type
# 3

typeを変更してみます。

t.arrow_type = 0  #矢印なし 
t.arrow_type = 1  #横棒
t.arrow_type = 2  #丸
t.arrow_type = 3  #上の例の通り
t.arrow_type = 4  #ちょっと大きめの矢印

デフォルトのやつが一番良い感じな気がします。
Textから対象までを結んだ線はleaderと呼ぶようです。
##Textをrubyで描画する
ここまで調べたらあとはrubyでTextを描くのは簡単だろうと思ったら、leaderを表示できずに手こずりました。以下のコードを見てください。

model = Sketchup.active_model
entities = model.entities
point = Geom::Point3d.new([10,100,0])  #テキストを関連づける点
text = entities.add_text( "Text", point)  #テキストを追加する
 
p text.has_leader?
# true
p text.display_leader?
# false
p text.vector
# Vector3d(0, 0, 0)

要は、新規に作ったTextオブジェクトは、(1) leaderは持っているけれども非表示、(2) Textをセットした点と、表示文字をつなぐvectorがゼロベクトル、であるのが問題でした。ここを変更してやれば、表示されるようになります。

text.display_leader = true #leaderを表示する設定
text.vector = Geom::Vector3d.new(10,10,10) #テキストをセットしたポイントと、テキストまでのベクターをセット

こうなりました。
image.png

他に関連しそうなのは、線の太さと、表示テキストの変更でしょうか。

t.line_weight = 10
t.text = "変更後のテキスト"
image.png 線を太くすると、先端の矢印が埋まってしまうようですね。

Textは、ほかのDrawingElementに、アタッチできるようですが、SketchUp 2019以降で使用可能だということで、試せませんでした。

これで、例えば、タンパク質立体構造上のアミノ酸残基に、注釈テキストをつけることができるようになりました。

#次の記事
調べたら、続けてここに書きます..............

3
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?