概要
中古ノート買ってみた。
sketchup v6 入れてみた。
プロデルで、12面体を作って、sketchupで、表示する。
手順
プロデルで、12面体を作る。
正二十Aという、正二十を作る
正二十Aの大きさは、1.0
正二十Aを生成する
objとは
+大きさ=0
+センター={0,0,0}
自分を生成する手順
ファイル名は「[デスクトップ]test.obj」
内容は、「
v 0 0 0
v 0 0 0
v 0 0 0
v 0 0 0
f 1// 2// 3//
f 1// 4// 2//
」
内容をファイル名へ保存する
終わり
終わり
正二十とは
objを受け継ぐ
自分を生成する手順
ファイル名は「[デスクトップ]test.obj」
r2 = 平方根(2)
r3 = 平方根(3)
r5 = 平方根(5)
x1 = 2 / r5
x2 = (5 - r5) / 10
x3 = (5 + r5) / 10
y1 = 平方根((5 + r5) / 10)
y2 = 平方根((5 - r5) / 10)
z1 = 1 / r5
vは、{
{ 0, 0, 1 },
{ x1, 0, z1 },
{ x2, y1, z1 },
{ x2, -y1, z1 },
{ -x3, y2, z1 },
{ -x3, -y2, z1 },
{ x3, -y2, -z1 },
{ x3, y2, -z1 },
{ -x2, -y1, -z1 },
{ -x2, y1, -z1 },
{ -x1, 0, -z1 },
{ 0, 0, -1 }
}
内容は、「
v [v(1)(1)] [v(1)(2)] [v(1)(3)]
v [v(2)(1)] [v(2)(2)] [v(2)(3)]
v [v(3)(1)] [v(3)(2)] [v(3)(3)]
v [v(4)(1)] [v(4)(2)] [v(4)(3)]
v [v(5)(1)] [v(5)(2)] [v(5)(3)]
v [v(6)(1)] [v(6)(2)] [v(6)(3)]
v [v(7)(1)] [v(7)(2)] [v(7)(3)]
v [v(8)(1)] [v(8)(2)] [v(8)(3)]
v [v(9)(1)] [v(9)(2)] [v(9)(3)]
v [v(10)(1)] [v(10)(2)] [v(10)(3)]
v [v(11)(1)] [v(11)(2)] [v(11)(3)]
v [v(12)(1)] [v(12)(2)] [v(12)(3)]
f 1// 2// 3//
f 1// 3// 5//
f 1// 5// 6//
f 1// 6// 4//
f 1// 4// 2//
f 2// 4// 7//
f 2// 7// 8//
f 2// 8// 3//
f 3// 8// 10//
f 3// 10// 5//
f 4// 6// 9//
f 4// 9// 7//
f 5// 10// 11//
f 5// 11// 6//
f 6// 11// 9//
f 7// 9// 12//
f 7// 12// 8//
f 8// 12// 10//
f 9// 11// 12//
f 10// 12// 11//
」
内容をファイル名へ保存する
終わり
終わり
正十二とは
objを受け継ぐ
自分を生成する手順
ファイル名は「[デスクトップ]test.obj」
r2 = 平方根(2)
r3 = 平方根(3)
r5 = 平方根(5)
x1 = 2 / 3
x2 = 1 / 3
x3 = r5 / 3
x4 = (3 - r5) / 6
x5 = (3 + r5) / 6
y1 = 1 / r3
y2 = 平方根((3 + r5) / 6)
y3 = 平方根((3 - r5) / 6)
z1 = r5 / 3
z2 = 1 / 3
vは、{
{ 0, 0, 1 },
{ x1, 0, z1 },
{ -x2, y1, z1 },
{ -x2, -y1, z1 },
{ x3, y1, z2 },
{ x3, -y1, z2 },
{ x4, y2, z2 },
{ x4, -y2, z2 },
{ -x5, y3, z2 },
{ -x5, -y3, z2 },
{ x5, -y3, -z2 },
{ x5, y3, -z2 },
{ -x4, -y2, -z2 },
{ -x4, y2, -z2 },
{ -x3, -y1, -z2 },
{ -x3, y1, -z2 },
{ x2, -y1, -z1 },
{ x2, y1, -z1 },
{ -x1, 0, -z1 },
{ 0, 0, -1 }
}
内容は、「
v [v(1)(1)] [v(1)(2)] [v(1)(3)]
v [v(2)(1)] [v(2)(2)] [v(2)(3)]
v [v(3)(1)] [v(3)(2)] [v(3)(3)]
v [v(4)(1)] [v(4)(2)] [v(4)(3)]
v [v(5)(1)] [v(5)(2)] [v(5)(3)]
v [v(6)(1)] [v(6)(2)] [v(6)(3)]
v [v(7)(1)] [v(7)(2)] [v(7)(3)]
v [v(8)(1)] [v(8)(2)] [v(8)(3)]
v [v(9)(1)] [v(9)(2)] [v(9)(3)]
v [v(10)(1)] [v(10)(2)] [v(10)(3)]
v [v(11)(1)] [v(11)(2)] [v(11)(3)]
v [v(12)(1)] [v(12)(2)] [v(12)(3)]
v [v(13)(1)] [v(13)(2)] [v(13)(3)]
v [v(14)(1)] [v(14)(2)] [v(14)(3)]
v [v(15)(1)] [v(15)(2)] [v(15)(3)]
v [v(16)(1)] [v(16)(2)] [v(16)(3)]
v [v(17)(1)] [v(17)(2)] [v(17)(3)]
v [v(18)(1)] [v(18)(2)] [v(18)(3)]
v [v(19)(1)] [v(19)(2)] [v(19)(3)]
v [v(20)(1)] [v(20)(2)] [v(20)(3)]
f 1// 2// 5// 7// 3//
f 1// 3// 9// 10// 4//
f 1// 4// 8// 6// 2//
f 2// 6// 11// 12// 5//
f 3// 7// 14// 16// 9//
f 4// 10// 15// 13// 8//
f 5// 12// 18// 14// 7//
f 6// 8// 13// 17// 11//
f 9// 16// 19// 15// 10//
f 11// 17// 20// 18// 12//
f 13// 15// 19// 20// 17//
f 14// 18// 20// 19// 16//
」
内容をファイル名へ保存する
終わり
終わり
正八とは
objを受け継ぐ
自分を生成する手順
ファイル名は「[デスクトップ]test.obj」
vは、{
{0, -1, 0},
{1, 0, 0},
{0, 0, 1},
{-1, 0, 0},
{0, 1, 0},
{0, 0, -1}
}
内容は、「
v [v(1)(1)] [v(1)(2)] [v(1)(3)]
v [v(2)(1)] [v(2)(2)] [v(2)(3)]
v [v(3)(1)] [v(3)(2)] [v(3)(3)]
v [v(4)(1)] [v(4)(2)] [v(4)(3)]
v [v(5)(1)] [v(5)(2)] [v(5)(3)]
v [v(6)(1)] [v(6)(2)] [v(6)(3)]
f 1// 2// 3//
f 4// 1// 3//
f 5// 4// 3//
f 2// 5// 3//
f 4// 5// 6//
f 5// 2// 6//
f 2// 1// 6//
f 1// 4// 6//
」
内容をファイル名へ保存する
終わり
終わり
板とは
objを受け継ぐ
自分を生成する手順
ファイル名は「[デスクトップ]test.obj」
内容は、「
v 0 0 0
v [大きさ] [大きさ] 0
v 0 [大きさ] 0
v [大きさ] 0 0
f 1// 2// 3//
f 1// 4// 2//
」
内容をファイル名へ保存する
終わり
終わり
箱とは
objを受け継ぐ
自分を生成する手順
ファイル名は「[デスクトップ]test.obj」
内容は、「
v 0 -[大きさ] -[大きさ]
v [大きさ] -[大きさ] -[大きさ]
v [大きさ] -[大きさ] [大きさ]
v 0 -[大きさ] [大きさ]
v 0 [大きさ] -[大きさ]
v [大きさ] [大きさ] -[大きさ]
v [大きさ] [大きさ] [大きさ]
v 0 [大きさ] [大きさ]
f 8// 7// 3//
f 8// 3// 4//
f 7// 6// 2//
f 7// 2// 3//
f 6// 1// 5//
f 6// 1// 2//
f 5// 8// 4//
f 5// 4// 1//
f 2// 1// 4//
f 2// 4// 3//
f 5// 6// 7//
f 5// 7// 8//
」
内容をファイル名へ保存する
終わり
終わり
球とは
objを受け継ぐ
自分を生成する手順
resは、「」
stacksは、 12
slicesは、 16
stacks + 1回,stに0からカウントしながら繰り返す
aは、 π * st / stacks
yは、コサイン(a)
rは、 サイン(a)
slices + 1回,slに0からカウントしながら繰り返す
bは、 2 * π * sl / slices + π
zは、 コサイン(b)
xは、 サイン(b)
res = res & 「v [x * r] [y] [z * r]」 & 改行
そして
そして
stacks回,stに0からカウントしながら繰り返す
h0は、 (slices + 1) * st
h1は、 (slices + 1) * (st + 1)
slices回,slに0からカウントしながら繰り返す
i0は、 h0 + sl + 1
i1は、 h1 + sl + 1
i2は、 h0 + sl + 2
i3は、 h1 + sl + 2
res = res & 「f [i0]// [i1]// [i2]//」 & 改行
res = res & 「f [i3]// [i2]// [i1]//」 & 改行
そして
そして
ファイル名は「[デスクトップ]test.obj」
// resを報告する
resをファイル名へ保存する
終わり
終わり
sketchupで、表示する。
obj_ld.rb
require "sketchup.rb"
def obj_ld
entities = Sketchup.active_model.entities
groups = {}
vertices = []
f = UI.openpanel "Select .obj file", "", "*.obj"
return unless f
lines = IO.readlines(f)
lines.each do |line|
next if line[0] == ?#
line.strip!
values = line.split
next if values.length == 0
cmd = values.shift
case cmd
when "v"
v = values.map { |e|
Float(e)
}
vertices << v
when "g"
gname = values.join "_"
if (groups[gname].nil?)
groups[gname] = Sketchup.active_model.entities.add_group
groups[gname].name = gname
end
entities = groups[gname].entities
when "f"
face = []
values.each do |v|
w = v.split("/")
face << Integer(w[0])
end
verts = face.map { |v|
vertices[v - 1]
}
begin
entities.add_face verts
rescue
#UI.messagebox line
end
end
end
end
- C:\Program Files (x86)\Google\Google SketchUp 6\Pluginsに、置く。
- rubyコンソールから、起動。
写真
以上。
