0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

中古ノート、買ってみた。 その69

Posted at

概要

中古ノート買ってみた。
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コンソールから、起動。

写真

image.png

以上。

0
0
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
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?