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?

windows11で、sketchup6 その84

Last updated at Posted at 2025-04-28

概要

windows11に、sketchup6を入れてみた。
rubyで、3Dを書く。
ICチップのワイヤーボンディング、見つけたので、やってみた。

写真

image.png

サンプルコード


def make_sip_model
	require "sketchup.rb"
	model = Sketchup.active_model
	inss = [];
	dels = []
	model.active_entities.each do |e|
		next if not e.is_a? Sketchup::ComponentInstance
		next if not e.definition.name == "desc"
		inss << e.name
		inss << e.transformation
		dels << e
	end
	if ((not dels.empty?) || model.definitions["desc"])
		print "replacing existing data (removing now, and will replace later)..\n"
		model.active_entities.erase_entities(dels) if (not dels.empty?)
		model.definitions.purge_unused
	end
	layer = model.layers["00 desc"]
	if (not layer)
		layer = model.layers.add("00 desc")
		rc = layer.visible = true
	end
	gpdb0 = model.entities.add_group
	gpdb0.name = "desc"
	gpdb0.layer = "00 desc"
	subst = gpdb0.entities.add_group
	subst.name = "subst and mold"
	subst.layer = model.layers[0]
	layer = model.layers["60 subst (wireframe)"]
	if (not layer)
		layer = model.layers.add("60 subst (wireframe)")
		rc = layer.visible = true
	end
	layer = model.layers["61 subst (surface)"]
	if (not layer)
		layer = model.layers.add("61 subst (surface)")
		rc = layer.visible = false
	end
	material = model.materials["solidedge"]
	if (not material)
		material = model.materials.add("solidedge")
		material.alpha = 1.0
		material.color = 0x000000
	end
	material = model.materials["subst"]
	if (not material)
		material = model.materials.add("subst")
		material.alpha = 0.4
		material.color = 0x3f3f3f
	end
	outhorwk = subst.entities.add_group
	outhorwk.name = "outhorwk"
	outhorwk.layer = model.layers[0]
	add_line_to_chain(outhorwk, [-2500.0.inch,-2500.0.inch,0.0.inch], [2500.0.inch,-2500.0.inch,0.0.inch], "60 subst (wireframe)")
	add_line_to_chain(outhorwk, [2500.0.inch,-2500.0.inch,0.0.inch], [2500.0.inch,2500.0.inch,0.0.inch], "60 subst (wireframe)")
	add_line_to_chain(outhorwk, [2500.0.inch,2500.0.inch,0.0.inch], [-2500.0.inch,2500.0.inch,0.0.inch], "60 subst (wireframe)")
	add_line_to_chain(outhorwk, [-2500.0.inch,2500.0.inch,0.0.inch], [-2500.0.inch,-2500.0.inch,0.0.inch], "60 subst (wireframe)")
	edges = close_chain(outhorwk, "60 subst (wireframe)")
	face = outhorwk.entities.add_face(edges)
	set_lay_and_mat(outhorwk, "60 subst (wireframe)", "61 subst (surface)", "solidedge","subst")
	outhorwk.explode
	face = pull_ceiling(subst, face, 240.0.inch, ["60 subst (wireframe)","60 subst (wireframe)"],["61 subst (surface)","61 subst (surface)"],["solidedge","solidedge"],["subst","subst"])
	layer = model.layers["10 pkg mold (wireframe)"]
	if (not layer)
		layer = model.layers.add("10 pkg mold (wireframe)")
		rc = layer.visible = false
	end
	layer = model.layers["11 pkg mold (surface)"]
	if (not layer)
		layer = model.layers.add("11 pkg mold (surface)")
		rc = layer.visible = false
	end
	material = model.materials["mold"]
	if (not material)
		material = model.materials.add("mold")
		material.alpha = 0.4
		material.color = 0x404040
	end
	face = pull_ceiling(subst, face, 560.0.inch, ["10 pkg mold (wireframe)","10 pkg mold (wireframe)"],["11 pkg mold (surface)","11 pkg mold (surface)"],["mold","mold"],["mold","mold"])
	diele = gpdb0.entities.add_group
	diele.name = "dielectric layers"
	diele.layer = model.layers[0]
	layer = model.layers["50 dielectric layer 1-2"]
	if (not layer)
		layer = model.layers.add("50 dielectric layer 1-2")
		rc = layer.visible = false
	end
	material = model.materials["diele"]
	if (not material)
		material = model.materials.add("diele")
		material.alpha = 0.4
		material.color = 0x104060
	end
	tmp = diele.entities.add_group
	tmp.name = "tmp"
	tmp.layer = model.layers[0]
	outhorwk = tmp.entities.add_group
	outhorwk.name = "outhorwk"
	outhorwk.layer = model.layers[0]
	add_line_to_chain(outhorwk, [-2500.0.inch,-2500.0.inch,20.0.inch],[2500.0.inch,-2500.0.inch,20.0.inch],"50 dielectric layer 1-2")
	add_line_to_chain(outhorwk, [2500.0.inch,-2500.0.inch,20.0.inch],[2500.0.inch,2500.0.inch,20.0.inch],"50 dielectric layer 1-2")
	add_line_to_chain(outhorwk, [2500.0.inch,2500.0.inch,20.0.inch],[-2500.0.inch,2500.0.inch,20.0.inch],"50 dielectric layer 1-2")
	add_line_to_chain(outhorwk, [-2500.0.inch,2500.0.inch,20.0.inch],[-2500.0.inch,-2500.0.inch,20.0.inch],"50 dielectric layer 1-2")
	edges = close_chain(outhorwk, "50 dielectric layer 1-2")
	face = outhorwk.entities.add_face(edges)
	set_lay_and_mat(outhorwk, "50 dielectric layer 1-2","50 dielectric layer 1-2","diele","diele")
	outhorwk.explode
	face = pull_ceiling(tmp, face, 200.0.inch, ["50 dielectric layer 1-2","50 dielectric layer 1-2"],["50 dielectric layer 1-2","50 dielectric layer 1-2"],["diele","diele"],["diele","diele"])
	tmp.explode
	layer = model.layers["02 die1"]
	if (not layer)
		layer = model.layers.add("02 die1")
		rc = layer.visible = true
	end
	die = gpdb0.entities.add_group
	die.name = "die1"
	die.layer = "02 die1"
	print "loading die1 ..\n"
	bulk = die.entities.add_group
	bulk.name = "bulk"
	bulk.layer = model.layers[0]
	layer = model.layers["20 die bulk (wireframe)"]
	if (not layer)
		layer = model.layers.add("20 die bulk (wireframe)")
		rc = layer.visible = true
	end
	layer = model.layers["21 die bulk (surface)"]
	if (not layer)
		layer = model.layers.add("21 die bulk (surface)")
		rc = layer.visible = true
	end
	material = model.materials["die"]
	if (not material)
		material = model.materials.add("die")
		material.alpha = 0.5
		material.color = 0x7f7f7f
	end
	outhorwk = bulk.entities.add_group
	outhorwk.name = "outhorwk"
	outhorwk.layer = model.layers[0]
	add_line_to_chain(outhorwk, [-1000.0.inch,-1250.0.inch,280.0.inch],[1000.0.inch,-1250.0.inch,280.0.inch],"20 die bulk (wireframe)")
	add_line_to_chain(outhorwk, [1000.0.inch,-1250.0.inch,280.0.inch],[1000.0.inch,1250.0.inch,280.0.inch],"20 die bulk (wireframe)")
	add_line_to_chain(outhorwk, [1000.0.inch,1250.0.inch,280.0.inch],[-1000.0.inch,1250.0.inch,280.0.inch],"20 die bulk (wireframe)")
	add_line_to_chain(outhorwk, [-1000.0.inch,1250.0.inch,280.0.inch],[-1000.0.inch,-1250.0.inch,280.0.inch],"20 die bulk (wireframe)")
	edges = close_chain(outhorwk, "20 die bulk (wireframe)")
	face = outhorwk.entities.add_face(edges)
	set_lay_and_mat(outhorwk, "20 die bulk (wireframe)", "21 die bulk (surface)", "solidedge","die")
	outhorwk.explode
	face = pull_ceiling(bulk, face, 200.0.inch, ["20 die bulk (wireframe)","20 die bulk (wireframe)"],["21 die bulk (surface)","21 die bulk (surface)"],["solidedge","solidedge"],["die","die"])
	diepads = die.entities.add_group
	diepads.name = "diepads"
	diepads.layer = model.layers[0]
	material = model.materials["sig"]
	if (not material)
		material = model.materials.add("sig")
		material.alpha = 0.8
		material.color = [191,145,59]
	end
	comp = model.definitions["dp_sig_rect_w300h200t0r0"]
	if (not comp)
		tmp = diepads.entities.add_group
		tmp.name = "tmp"
		tmp.layer = model.layers[0]
		face = tmp.entities.add_face([-150.0.inch,-100.0.inch,0], [150.0.inch,-100.0.inch,0], [150.0.inch,100.0.inch,0],[-150.0.inch,100.0.inch,0])
		tmp.entities.each do |e|
			if (e.is_a? Sketchup::Face)
				e.layer = "20 die bulk (wireframe)"
				e.material = "sig"
				e.back_material = "sig"
			elsif (e.is_a? Sketchup::Edge)
				e.layer = "20 die bulk (wireframe)"
				e.material = "solidedge"
			end
		end
		ins = tmp.to_component
		comp = ins.definition
		comp.name = "dp_sig_rect_w300h200t0r0"
		diepads.entities.erase_entities(ins)
	end
	ins = diepads.entities.add_instance(comp, Geom::Transformation.translation([700.0.inch,-400.0.inch,480.0.inch]))
	ins.name = "d:die1/1"
	comp = model.definitions["dp_sig_rect_w300h200t0r0"]
	ins = diepads.entities.add_instance(comp, Geom::Transformation.rotation([0,0,0],Z_AXIS,4.71238898038469))
	ins.transform!(Geom::Transformation.translation([200.0.inch,-950.0.inch,480.0.inch]))
	ins.name = "d:die1/10"
	comp = model.definitions["dp_sig_rect_w300h200t0r0"]
	ins = diepads.entities.add_instance(comp, Geom::Transformation.translation([700.0.inch,0.0.inch,480.0.inch]))
	ins.name = "d:die1/2"
	comp = model.definitions["dp_sig_rect_w300h200t0r0"]
	ins = diepads.entities.add_instance(comp, Geom::Transformation.translation([700.0.inch,400.0.inch,480.0.inch]))
	ins.name = "d:die1/3"
	comp = model.definitions["dp_sig_rect_w300h200t0r0"]
	ins = diepads.entities.add_instance(comp, Geom::Transformation.rotation([0,0,0],Z_AXIS,1.5707963267948966))
	ins.transform!(Geom::Transformation.translation([200.0.inch,950.0.inch,480.0.inch]))
	ins.name = "d:die1/4"
	comp = model.definitions["dp_sig_rect_w300h200t0r0"]
	ins = diepads.entities.add_instance(comp, Geom::Transformation.rotation([0,0,0],Z_AXIS,1.5707963267948966))
	ins.transform!(Geom::Transformation.translation([-200.0.inch,950.0.inch,480.0.inch]))
	ins.name = "d:die1/5"
	comp = model.definitions["dp_sig_rect_w300h200t0r0"]
	ins = diepads.entities.add_instance(comp, Geom::Transformation.rotation([0,0,0],Z_AXIS,3.141592653589793))
	ins.transform!(Geom::Transformation.translation([-700.0.inch,400.0.inch,480.0.inch]))
	ins.name = "d:die1/6"
	comp = model.definitions["dp_sig_rect_w300h200t0r0"]
	ins = diepads.entities.add_instance(comp, Geom::Transformation.rotation([0,0,0],Z_AXIS,3.141592653589793))
	ins.transform!(Geom::Transformation.translation([-700.0.inch,0.0.inch,480.0.inch]))
	ins.name = "d:die1/7"
	comp = model.definitions["dp_sig_rect_w300h200t0r0"]
	ins = diepads.entities.add_instance(comp, Geom::Transformation.rotation([0,0,0],Z_AXIS,3.141592653589793))
	ins.transform!(Geom::Transformation.translation([-700.0.inch,-400.0.inch,480.0.inch]))
	ins.name = "d:die1/8"
	comp = model.definitions["dp_sig_rect_w300h200t0r0"]
	ins = diepads.entities.add_instance(comp, Geom::Transformation.rotation([0,0,0],Z_AXIS,4.71238898038469))
	ins.transform!(Geom::Transformation.translation([-200.0.inch,-950.0.inch,480.0.inch]))
	ins.name = "d:die1/9"
	nets = gpdb0.entities.add_group
	nets.name = "pattern and bwires"
	nets.layer = model.layers[0]
	print "loading sig ..\n"
	nettype = nets.entities.add_group
	nettype.name = "sig"
	nettype.layer = model.layers[0]
	print "loading sig1 (1/10) .. \n"
	net = nettype.entities.add_group
	net.name = "sig1"
	net.layer = model.layers[0]
	layer = model.layers["40 conductor layer 1"]
	if (not layer)
		layer = model.layers.add("40 conductor layer 1")
		rc = layer.visible = false
	end
	land = net.entities.add_group
	land.name = "p:die1/_9 land"
	land.layer = model.layers[0]
	ringwk = land.entities.add_group
	ringwk.name = "ringwk"
	ringwk.layer = model.layers[0]
	add_line_to_chain(ringwk, [1500.0.inch,-1300.0.inch,220.0.inch],[2400.0.inch,-1300.0.inch,220.0.inch],"40 conductor layer 1")
	add_line_to_chain(ringwk, [2400.0.inch,-1300.0.inch,220.0.inch],[2400.0.inch,-600.0.inch,220.0.inch],"40 conductor layer 1")
	add_line_to_chain(ringwk, [2400.0.inch,-600.0.inch,220.0.inch],[1800.0.inch,-600.0.inch,220.0.inch],"40 conductor layer 1")
	add_line_to_chain(ringwk, [1800.0.inch,-600.0.inch,220.0.inch],[1500.0.inch,-900.0.inch,220.0.inch],"40 conductor layer 1")
	add_line_to_chain(ringwk, [1500.0.inch,-900.0.inch,220.0.inch],[1500.0.inch,-1300.0.inch,220.0.inch],"40 conductor layer 1")
	edges = close_chain(ringwk, "40 conductor layer 1")
	face = ringwk.entities.add_face(edges)
	ringwk.explode
	if (face)
		set_lay_and_mat(land, "40 conductor layer 1","40 conductor layer 1","sig","sig")
	end
	face = pull_ceiling(land, face, 20.0.inch, ["40 conductor layer 1","60 subst (wireframe)"],["40 conductor layer 1","40 conductor layer 1"],["sig","solidedge"],["sig","sig"])
	layer = model.layers["31 bonding plate"]
	if (not layer)
		layer = model.layers.add("31 bonding plate")
		rc = layer.visible = false
	end
	material = model.materials["btplate"]
	if (not material)
		material = model.materials.add("btplate")
		material.alpha = 1.0
		material.color = 0x60d0d0
	end
	face = pull_ceiling(land, face, 20.0.inch, ["31 bonding plate","31 bonding plate"],["31 bonding plate","31 bonding plate"],["btplate","btplate"],["btplate","btplate"])
	bwire = net.entities.add_group
	bwire.name = "bw (d:die1/1,p:die1/_9)"
	bwire.layer = model.layers[0]
	layer = model.layers["30 bwire stk1,stg0"]
	if (not layer)
		layer = model.layers.add("30 bwire stk1,stg0")
		rc = layer.visible = true
	end
	material = model.materials["sig(bwire)"]
	if (not material)
		material = model.materials.add("sig(bwire)")
		material.alpha = 0.8
		material.color = [191,145,59]
	end
	edges = []
	edge = bwire.entities.add_line([700.0.inch, -400.0.inch,480.0.inch], [704.6.inch,-402.6.inch,559.5.inch])
	edges << edge
	edge = bwire.entities.add_line([704.6.inch, -402.6.inch,559.5.inch], [1049.4.inch,-594.1.inch,626.4.inch])
	edges << edge
	edge = bwire.entities.add_line([1049.4.inch,-594.1.inch,626.4.inch], [1448.0.inch,-815.5.inch,528.8.inch])
	edges << edge
	edge = bwire.entities.add_line([1448.0.inch,-815.5.inch,528.8.inch], [1588.9.inch,-893.8.inch,458.9.inch])
	edges << edge
	edge = bwire.entities.add_line([1588.9.inch,-893.8.inch,458.9.inch], [1782.8.inch,-1001.5.inch,324.5.inch])
	edges << edge
	edge = bwire.entities.add_line([1782.8.inch,-1001.5.inch,324.5.inch], [1902.0.inch,-1067.7.inch,260.0.inch])
	edges << edge
	normal = edges[0].vertices[1].position - edges[0].vertices[0].position
	circle = bwire.entities.add_circle(edges[0].vertices[0].position, normal, 15.0.inch)
	face = bwire.entities.add_face(circle)
	face.followme(edges)
	bwire.entities.erase_entities(edges)
	set_lay_and_mat(bwire,"30 bwire stk1,stg0","30 bwire stk1,stg0","sig(bwire)","sig(bwire)")
	print "loading VSS1 (2/10) .. \n"
	net = nettype.entities.add_group
	net.name = "VSS1"
	net.layer = model.layers[0]
	land = net.entities.add_group
	land.name = "p:die1/_4 land"
	land.layer = model.layers[0]
	ringwk = land.entities.add_group
	ringwk.name = "ringwk"
	ringwk.layer = model.layers[0]
	add_line_to_chain(ringwk, [-2400.0.inch,600.0.inch,220.0.inch],[-1900.0.inch,600.0.inch,220.0.inch],"40 conductor layer 1")
	add_line_to_chain(ringwk, [-1900.0.inch,600.0.inch,220.0.inch],[-1800.0.inch,700.0.inch,220.0.inch],"40 conductor layer 1")
	add_line_to_chain(ringwk, [-1800.0.inch,700.0.inch,220.0.inch],[-1500.0.inch,700.0.inch,220.0.inch],"40 conductor layer 1")
	add_line_to_chain(ringwk, [-1500.0.inch,700.0.inch,220.0.inch],[-1500.0.inch,1200.0.inch,220.0.inch],"40 conductor layer 1")
	add_line_to_chain(ringwk, [-1500.0.inch,1200.0.inch,220.0.inch],[-1700.0.inch,1200.0.inch,220.0.inch],"40 conductor layer 1")
	add_line_to_chain(ringwk, [-1700.0.inch,1200.0.inch,220.0.inch],[-1900.0.inch,1400.0.inch,220.0.inch],"40 conductor layer 1")
	add_line_to_chain(ringwk, [-1900.0.inch,1400.0.inch,220.0.inch],[-2400.0.inch,1400.0.inch,220.0.inch],"40 conductor layer 1")
	add_line_to_chain(ringwk, [-2400.0.inch,1400.0.inch,220.0.inch],[-2400.0.inch,600.0.inch,220.0.inch],"40 conductor layer 1")
	edges = close_chain(ringwk, "40 conductor layer 1")
	face = ringwk.entities.add_face(edges)
	ringwk.explode
	if (face)
		set_lay_and_mat(land, "40 conductor layer 1","40 conductor layer 1","sig","sig")
	end
	face = pull_ceiling(land, face, 20.0.inch, ["40 conductor layer 1","60 subst (wireframe)"],["40 conductor layer 1","40 conductor layer 1"],["sig","solidedge"],["sig","sig"])
	face = pull_ceiling(land, face, 20.0.inch, ["31 bonding plate","31 bonding plate"],["31 bonding plate","31 bonding plate"],["btplate","btplate"],["btplate","btplate"])
	bwire = net.entities.add_group
	bwire.name = "bw (d:die1/6,p:die1/_4)"
	bwire.layer = model.layers[0]
	edges = []
	edge = bwire.entities.add_line([-700.0.inch,400.0.inch,480.0.inch], [-704.7.inch,402.1.inch,559.5.inch])
	edges << edge
	edge = bwire.entities.add_line([-704.7.inch,402.1.inch,559.5.inch], [-1052.2.inch,555.9.inch,626.4.inch])
	edges << edge
	edge = bwire.entities.add_line([-1052.2.inch,555.9.inch,626.4.inch], [-1473.0.inch,742.2.inch,528.8.inch])
	edges << edge
	edge = bwire.entities.add_line([-1473.0.inch,742.2.inch,528.8.inch], [-1621.8.inch,808.0.inch,458.9.inch])
	edges << edge
	edge = bwire.entities.add_line([-1621.8.inch,808.0.inch,458.9.inch], [-1826.5.inch,898.6.inch,324.5.inch])
	edges << edge
	edge = bwire.entities.add_line([-1826.5.inch,898.6.inch,324.5.inch], [-1952.3.inch,954.3.inch,260.0.inch])
	edges << edge
	normal = edges[0].vertices[1].position - edges[0].vertices[0].position
	circle = bwire.entities.add_circle(edges[0].vertices[0].position, normal, 15.0.inch)
	face = bwire.entities.add_face(circle)
	face.followme(edges)
	bwire.entities.erase_entities(edges)
	set_lay_and_mat(bwire, "30 bwire stk1,stg0","30 bwire stk1,stg0","sig(bwire)","sig(bwire)")
	print "loading sig2 (3/10) .. \n"
	net = nettype.entities.add_group
	net.name = "sig2"
	net.layer = model.layers[0]
	comp = model.definitions["sig_lay1_btplate20_tes_rectline_a500t20len400"]
	if (not comp)
		compwk = net.entities.add_group
		compwk.name = "compwk"
		compwk.layer = model.layers[0]
		ringwk = compwk.entities.add_group
		ringwk.name = "ringwk"
		ringwk.layer = model.layers[0]
		add_line_to_chain(ringwk, [-450.0.inch,250.0.inch,0.0.inch],[-450.0.inch,-250.0.inch,0.0.inch],"40 conductor layer 1")
		add_line_to_chain(ringwk, [-450.0.inch,-250.0.inch,0.0.inch],[450.0.inch,-250.0.inch,0.0.inch],"40 conductor layer 1")
		add_line_to_chain(ringwk, [450.0.inch,-250.0.inch,0.0.inch],[450.0.inch,250.0.inch,0.0.inch],"40 conductor layer 1")
		add_line_to_chain(ringwk, [450.0.inch,250.0.inch,0.0.inch],[-450.0.inch,250.0.inch,0.0.inch],"40 conductor layer 1")
		edges = close_chain(ringwk, "40 conductor layer 1")
		face = ringwk.entities.add_face(edges)
		ringwk.explode
		if (face)
			set_lay_and_mat(compwk, "40 conductor layer 1","40 conductor layer 1","sig","sig")
		end
		face = pull_ceiling(compwk, face, 20.0.inch, ["40 conductor layer 1","60 subst (wireframe)"],["40 conductor layer 1","40 conductor layer 1"],["sig","solidedge"],["sig","sig"])
		face = pull_ceiling(compwk, face, 20.0.inch, ["31 bonding plate","31 bonding plate"],["31 bonding plate","31 bonding plate"],["btplate","btplate"],["btplate","btplate"])
		ins = compwk.to_component
		comp = ins.definition
		comp.name = "sig_lay1_btplate20_tes_rectline_a500t20len400"
		net.entities.erase_entities(ins)
	end
	ins = net.entities.add_instance(comp, Geom::Transformation.rotation([0,0,0],Z_AXIS,3.141592653589793))
	ins.transform!(Geom::Transformation.translation([1950.0.inch,50.0.inch,220.0.inch]))
	ins.name = "p:die1/_10 land"
	bwire = net.entities.add_group
	bwire.name = "bw (d:die1/2,p:die1/_10)"
	bwire.layer = model.layers[0]
	edges = []
	edge = bwire.entities.add_line([700.0.inch,0.0.inch,480.0.inch], [704.6.inch,0.0.inch,559.5.inch])
	edges << edge
	edge = bwire.entities.add_line([704.6.inch,0.0.inch,559.5.inch], [1049.4.inch,-3.7.inch,626.4.inch])
	edges << edge
	edge = bwire.entities.add_line([1049.4.inch,-3.7.inch,626.4.inch], [1448.0.inch,-7.8.inch,528.8.inch])
	edges << edge
	edge = bwire.entities.add_line([1448.0.inch,-7.8.inch,528.8.inch], [1588.9.inch,-9.3.inch,458.9.inch])
	edges << edge
	edge = bwire.entities.add_line([1588.9.inch,-9.3.inch,458.9.inch], [1782.8.inch,-11.4.inch,324.5.inch])
	edges << edge
	edge = bwire.entities.add_line([1782.8.inch,-11.4.inch,324.5.inch], [1902.0.inch,-12.6.inch,260.0.inch])
	edges << edge
	normal = edges[0].vertices[1].position - edges[0].vertices[0].position
	circle = bwire.entities.add_circle(edges[0].vertices[0].position, normal, 15.0.inch)
	face = bwire.entities.add_face(circle)
	face.followme(edges)
	bwire.entities.erase_entities(edges)
	set_lay_and_mat(bwire,"30 bwire stk1,stg0","30 bwire stk1,stg0","sig(bwire)","sig(bwire)")
	print "loading sig3 (4/10) .. \n"
	net = nettype.entities.add_group
	net.name = "sig3"
	net.layer = model.layers[0]
	land = net.entities.add_group
	land.name = "p:die1/_2 land"
	land.layer = model.layers[0]
	ringwk = land.entities.add_group
	ringwk.name = "ringwk"
	ringwk.layer = model.layers[0]
	add_line_to_chain(ringwk, [1500.0.inch,800.0.inch,220.0.inch],[2400.0.inch,800.0.inch,220.0.inch],"40 conductor layer 1")
	add_line_to_chain(ringwk, [2400.0.inch,800.0.inch,220.0.inch],[2400.0.inch,1700.0.inch,220.0.inch],"40 conductor layer 1")
	add_line_to_chain(ringwk, [2400.0.inch,1700.0.inch,220.0.inch],[1700.0.inch,1700.0.inch,220.0.inch],"40 conductor layer 1")
	add_line_to_chain(ringwk, [1700.0.inch,1700.0.inch,220.0.inch],[1500.0.inch,1500.0.inch,220.0.inch],"40 conductor layer 1")
	add_line_to_chain(ringwk, [1500.0.inch,1500.0.inch,220.0.inch],[1500.0.inch,800.0.inch,220.0.inch],"40 conductor layer 1")
	edges = close_chain(ringwk,"40 conductor layer 1")
	face = ringwk.entities.add_face(edges)
	ringwk.explode
	if (face)
		set_lay_and_mat(land, "40 conductor layer 1","40 conductor layer 1","sig","sig")
	end
	face = pull_ceiling(land, face, 20.0.inch, ["40 conductor layer 1","60 subst (wireframe)"],["40 conductor layer 1","40 conductor layer 1"],["sig","solidedge"],["sig","sig"])
	face = pull_ceiling(land, face, 20.0.inch, ["31 bonding plate","31 bonding plate"],["31 bonding plate","31 bonding plate"],["btplate","btplate"],["btplate","btplate"])
	bwire = net.entities.add_group
	bwire.name = "bw (d:die1/3,p:die1/_2)"
	bwire.layer = model.layers[0]
	edges = []
	edge = bwire.entities.add_line([700.0.inch,400.0.inch,480.0.inch], [704.6.inch,403.9.inch,559.5.inch])
	edges << edge
	edge = bwire.entities.add_line([704.6.inch,403.9.inch,559.5.inch], [1049.4.inch,693.0.inch,626.4.inch])
	edges << edge
	edge = bwire.entities.add_line([1049.4.inch,693.0.inch,626.4.inch], [1448.0.inch,1027.2.inch,528.8.inch])
	edges << edge
	edge = bwire.entities.add_line([1448.0.inch,1027.2.inch,528.8.inch], [1588.9.inch,1145.3.inch,458.9.inch])
	edges << edge
	edge = bwire.entities.add_line([1588.9.inch,1145.3.inch,458.9.inch], [1782.8.inch,1307.9.inch,324.5.inch])
	edges << edge
	edge = bwire.entities.add_line([1782.8.inch,1307.9.inch,324.5.inch], [1902.0.inch,1407.8.inch,260.0.inch])
	edges << edge
	normal = edges[0].vertices[1].position - edges[0].vertices[0].position
	circle = bwire.entities.add_circle(edges[0].vertices[0].position, normal, 15.0.inch)
	face = bwire.entities.add_face(circle)
	face.followme(edges)
	bwire.entities.erase_entities(edges)
	set_lay_and_mat(bwire,"30 bwire stk1,stg0","30 bwire stk1,stg0","sig(bwire)","sig(bwire)")
	print "loading sig4 (5/10) .. \n"
	net = nettype.entities.add_group
	net.name = "sig4"
	net.layer = model.layers[0]
	land = net.entities.add_group
	land.name = "p:die1/_3 land"
	land.layer = model.layers[0]
	ringwk = land.entities.add_group
	ringwk.name = "ringwk"
	ringwk.layer = model.layers[0]
	add_line_to_chain(ringwk, [-1400.0.inch,2400.0.inch,220.0.inch],[-1400.0.inch,1500.0.inch,220.0.inch],"40 conductor layer 1")
	add_line_to_chain(ringwk, [-1400.0.inch,1500.0.inch,220.0.inch],[-1000.0.inch,1500.0.inch,220.0.inch],"40 conductor layer 1")
	add_line_to_chain(ringwk, [-1000.0.inch,1500.0.inch,220.0.inch],[-700.0.inch,1800.0.inch,220.0.inch],"40 conductor layer 1")
	add_line_to_chain(ringwk, [-700.0.inch,1800.0.inch,220.0.inch],[-700.0.inch,2400.0.inch,220.0.inch],"40 conductor layer 1")
	add_line_to_chain(ringwk, [-700.0.inch,2400.0.inch,220.0.inch],[-1400.0.inch,2400.0.inch,220.0.inch],"40 conductor layer 1")
	edges = close_chain(ringwk, "40 conductor layer 1")
	face = ringwk.entities.add_face(edges)
	ringwk.explode
	if (face)
		set_lay_and_mat(land, "40 conductor layer 1","40 conductor layer 1","sig","sig")
	end
	face = pull_ceiling(land, face, 20.0.inch, ["40 conductor layer 1","60 subst (wireframe)"],["40 conductor layer 1","40 conductor layer 1"],["sig","solidedge"],["sig","sig"])
	face = pull_ceiling(land, face, 20.0.inch, ["31 bonding plate","31 bonding plate"],["31 bonding plate","31 bonding plate"],["btplate","btplate"],["btplate","btplate"])
	bwire = net.entities.add_group
	bwire.name = "bw (d:die1/5,p:die1/_3)"
	bwire.layer = model.layers[0]
	edges = []
	edge = bwire.entities.add_line([-200.0.inch,950.0.inch,480.0.inch], [-204.0.inch,954.6.inch,559.5.inch])
	edges << edge
	edge = bwire.entities.add_line([-204.0.inch,954.6.inch,559.5.inch], [-495.1.inch,1293.9.inch,626.4.inch])
	edges << edge
	edge = bwire.entities.add_line([-495.1.inch,1293.9.inch,626.4.inch], [-798.8.inch,1647.9.inch,528.8.inch])
	edges << edge
	edge = bwire.entities.add_line([-798.8.inch,1647.9.inch,528.8.inch], [-906.2.inch,1773.0.inch,458.9.inch])
	edges << edge
	edge = bwire.entities.add_line([-906.2.inch,1773.0.inch,458.9.inch], [-1054.0.inch,1945.3.inch,324.5.inch])
	edges << edge
	edge = bwire.entities.add_line([-1054.0.inch,1945.3.inch,324.5.inch], [-1144.8.inch,2051.1.inch,260.0.inch])
	edges << edge
	normal = edges[0].vertices[1].position - edges[0].vertices[0].position
	circle = bwire.entities.add_circle(edges[0].vertices[0].position, normal, 15.0.inch)
	face = bwire.entities.add_face(circle)
	face.followme(edges)
	bwire.entities.erase_entities(edges)
	set_lay_and_mat(bwire,"30 bwire stk1,stg0","30 bwire stk1,stg0","sig(bwire)","sig(bwire)")
	print "loading sig5 (6/10) .. \n"
	net = nettype.entities.add_group
	net.name = "sig5"
	net.layer = model.layers[0]
	comp = model.definitions["sig_lay1_btplate20_tes_rectline_a500t20len200"]
	if (not comp)
		compwk = net.entities.add_group
		compwk.name = "compwk"
		compwk.layer = model.layers[0]
		ringwk = compwk.entities.add_group
		ringwk.name = "ringwk"
		ringwk.layer = model.layers[0]
		add_line_to_chain(ringwk, [-350.0.inch,250.0.inch,0.0.inch],[-350.0.inch,-250.0.inch,0.0.inch],"40 conductor layer 1")
		add_line_to_chain(ringwk, [-350.0.inch,-250.0.inch,0.0.inch],[350.0.inch,-250.0.inch,0.0.inch],"40 conductor layer 1")
		add_line_to_chain(ringwk, [350.0.inch,-250.0.inch,0.0.inch],[350.0.inch,250.0.inch,0.0.inch],"40 conductor layer 1")
		add_line_to_chain(ringwk, [350.0.inch,250.0.inch,0.0.inch],[-350.0.inch,250.0.inch,0.0.inch],"40 conductor layer 1")
		edges = close_chain(ringwk, "40 conductor layer 1")
		face = ringwk.entities.add_face(edges)
		ringwk.explode
		if (face)
			set_lay_and_mat(compwk, "40 conductor layer 1","40 conductor layer 1","sig","sig")
		end
		face = pull_ceiling(compwk, face, 20.0.inch, ["40 conductor layer 1","60 subst (wireframe)"],["40 conductor layer 1","40 conductor layer 1"],["sig","solidedge"],["sig","sig"])
		face = pull_ceiling(compwk, face, 20.0.inch, ["31 bonding plate","31 bonding plate"],["31 bonding plate","31 bonding plate"],["btplate","btplate"],["btplate","btplate"])
		ins = compwk.to_component
		comp = ins.definition
		comp.name = "sig_lay1_btplate20_tes_rectline_a500t20len200"
		net.entities.erase_entities(ins)
	end
	ins = net.entities.add_instance(comp, Geom::Transformation.rotation([0,0,0],Z_AXIS,3.141592653589793))
	ins.transform!(Geom::Transformation.translation([-2050.0.inch,50.0.inch,220.0.inch]))
	ins.name = "p:die1/_5 land"
	bwire = net.entities.add_group
	bwire.name = "bw (d:die1/7,p:die1/_5)"
	bwire.layer = model.layers[0]
	edges = []
	edge = bwire.entities.add_line([-700.0.inch,0.0.inch,480.0.inch], [-704.6.inch,0.0.inch,559.5.inch])
	edges << edge
	edge = bwire.entities.add_line([-704.6.inch,0.0.inch,559.5.inch], [-1052.2.inch,3.5.inch,626.4.inch])
	edges << edge
	edge = bwire.entities.add_line([-1052.2.inch,3.5.inch,626.4.inch], [-1473.0.inch,7.8.inch,528.8.inch])
	edges << edge
	edge = bwire.entities.add_line([-1473.0.inch,7.8.inch,528.8.inch], [-1621.8.inch,9.3.inch,458.9.inch])
	edges << edge
	edge = bwire.entities.add_line([-1621.8.inch,9.3.inch,458.9.inch], [-1826.5.inch,11.3.inch,324.5.inch])
	edges << edge
	edge = bwire.entities.add_line([-1826.5.inch,11.3.inch,324.5.inch], [-1952.3.inch,12.6.inch,260.0.inch])
	edges << edge
	normal = edges[0].vertices[1].position - edges[0].vertices[0].position
	circle = bwire.entities.add_circle(edges[0].vertices[0].position, normal, 15.0.inch)
	face = bwire.entities.add_face(circle)
	face.followme(edges)
	bwire.entities.erase_entities(edges)
	set_lay_and_mat(bwire,"30 bwire stk1,stg0","30 bwire stk1,stg0","sig(bwire)","sig(bwire)")
	print "loading sig6 (7/10) .. \n"
	net = nettype.entities.add_group
	net.name = "sig6"
	net.layer = model.layers[0]
	land = net.entities.add_group
	land.name = "p:die1/_6 land"
	land.layer = model.layers[0]
	ringwk = land.entities.add_group
	ringwk.name = "ringwk"
	ringwk.layer = model.layers[0]
	add_line_to_chain(ringwk, [-2400.0.inch,-1700.0.inch,220.0.inch],[-1800.0.inch,-1700.0.inch,220.0.inch],"40 conductor layer 1")
	add_line_to_chain(ringwk, [-1800.0.inch,-1700.0.inch,220.0.inch],[-1500.0.inch,-1400.0.inch,220.0.inch],"40 conductor layer 1")
	add_line_to_chain(ringwk, [-1500.0.inch,-1400.0.inch,220.0.inch],[-1500.0.inch,-600.0.inch,220.0.inch],"40 conductor layer 1")
	add_line_to_chain(ringwk, [-1500.0.inch,-600.0.inch,220.0.inch],[-2200.0.inch,-600.0.inch,220.0.inch],"40 conductor layer 1")
	add_line_to_chain(ringwk, [-2200.0.inch,-600.0.inch,220.0.inch],[-2400.0.inch,-800.0.inch,220.0.inch],"40 conductor layer 1")
	add_line_to_chain(ringwk, [-2400.0.inch,-800.0.inch,220.0.inch],[-2400.0.inch,-1700.0.inch,220.0.inch],"40 conductor layer 1")
	edges = close_chain(ringwk, "40 conductor layer 1")
	face = ringwk.entities.add_face(edges)
	ringwk.explode
	if (face)
		set_lay_and_mat(land, "40 conductor layer 1","40 conductor layer 1","sig","sig")
	end
	face = pull_ceiling(land, face, 20.0.inch, ["40 conductor layer 1","60 subst (wireframe)"],["40 conductor layer 1","40 conductor layer 1"],["sig","solidedge"],["sig","sig"])
	face = pull_ceiling(land, face, 20.0.inch, ["31 bonding plate","31 bonding plate"],["31 bonding plate","31 bonding plate"],["btplate","btplate"],["btplate","btplate"])
	bwire = net.entities.add_group
	bwire.name = "bw (d:die1/8,p:die1/_6)"
	bwire.layer = model.layers[0]
	edges = []
	edge = bwire.entities.add_line([-700.0.inch,-400.0.inch,480.0.inch], [-704.6.inch,-402.6.inch,559.5.inch])
	edges << edge
	edge = bwire.entities.add_line([-704.6.inch,-402.6.inch,559.5.inch], [-1052.2.inch,-598.4.inch,626.4.inch])
	edges << edge
	edge = bwire.entities.add_line([-1052.2.inch,-598.4.inch,626.4.inch], [-1473.0.inch,-835.5.inch,528.8.inch])
	edges << edge
	edge = bwire.entities.add_line([-1473.0.inch,-835.5.inch,528.8.inch], [-1621.8.inch,-919.3.inch,458.9.inch])
	edges << edge
	edge = bwire.entities.add_line([-1621.8.inch,-919.3.inch,458.9.inch], [-1826.5.inch,-1034.6.inch,324.5.inch])
	edges << edge
	edge = bwire.entities.add_line([-1826.5.inch,-1034.6.inch,324.5.inch], [-1952.3.inch,-1105.5.inch,260.0.inch])
	edges << edge
	normal = edges[0].vertices[1].position - edges[0].vertices[0].position
	circle = bwire.entities.add_circle(edges[0].vertices[0].position, normal, 15.0.inch)
	face = bwire.entities.add_face(circle)
	face.followme(edges)
	bwire.entities.erase_entities(edges)
	set_lay_and_mat(bwire,"30 bwire stk1,stg0","30 bwire stk1,stg0","sig(bwire)","sig(bwire)")
	print "loading sig7 (8/10) .. \n"
	net = nettype.entities.add_group
	net.name = "sig7"
	net.layer = model.layers[0]
	land = net.entities.add_group
	land.name = "p:die1/_7 land"
	land.layer = model.layers[0]
	ringwk = land.entities.add_group
	ringwk.name = "ringwk"
	ringwk.layer = model.layers[0]
	add_line_to_chain(ringwk, [-1700.0.inch,-2400.0.inch,220.0.inch],[-400.0.inch,-2400.0.inch,220.0.inch],"40 conductor layer 1")
	add_line_to_chain(ringwk, [-400.0.inch,-2400.0.inch,220.0.inch],[-400.0.inch,-1700.0.inch,220.0.inch],"40 conductor layer 1")
	add_line_to_chain(ringwk, [-400.0.inch,-1700.0.inch,220.0.inch],[-1200.0.inch,-1700.0.inch,220.0.inch],"40 conductor layer 1")
	add_line_to_chain(ringwk, [-1200.0.inch,-1700.0.inch,220.0.inch],[-1700.0.inch,-2200.0.inch,220.0.inch],"40 conductor layer 1")
	add_line_to_chain(ringwk, [-1700.0.inch,-2200.0.inch,220.0.inch],[-1700.0.inch,-2400.0.inch,220.0.inch],"40 conductor layer 1")
	edges = close_chain(ringwk, "40 conductor layer 1")
	face = ringwk.entities.add_face(edges)
	ringwk.explode
	if (face)
		set_lay_and_mat(land, "40 conductor layer 1","40 conductor layer 1","sig","sig")
	end
	face = pull_ceiling(land, face, 20.0.inch, ["40 conductor layer 1","60 subst (wireframe)"],["40 conductor layer 1","40 conductor layer 1"],["sig","solidedge"],["sig","sig"])
	face = pull_ceiling(land, face, 20.0.inch, ["31 bonding plate","31 bonding plate"],["31 bonding plate","31 bonding plate"],["btplate","btplate"],["btplate","btplate"])
	bwire = net.entities.add_group
	bwire.name = "bw (d:die1/9,p:die1/_7)"
	bwire.layer = model.layers[0]
	edges = []
	edge = bwire.entities.add_line([-200.0.inch,-950.0.inch,480.0.inch], [-203.6.inch,-954.7.inch,559.5.inch])
	edges << edge
	edge = bwire.entities.add_line([-203.6.inch,-954.7.inch,559.5.inch], [-466.9.inch,-1297.4.inch,626.4.inch])
	edges << edge
	edge = bwire.entities.add_line([-466.9.inch,-1297.4.inch,626.4.inch], [-760.3.inch,-1679.2.inch,528.8.inch])
	edges << edge
	edge = bwire.entities.add_line([-760.3.inch,-1679.2.inch,528.8.inch], [-864.0.inch,-1814.2.inch,458.9.inch])
	edges << edge
	edge = bwire.entities.add_line([-864.0.inch,-1814.2.inch,458.9.inch], [-1006.7.inch,-2000.0.inch,324.5.inch])
	edges << edge
	edge = bwire.entities.add_line([-1006.7.inch,-2000.0.inch,324.5.inch], [-1094.4.inch,-2114.1.inch,260.0.inch])
	edges << edge
	normal = edges[0].vertices[1].position - edges[0].vertices[0].position
	circle = bwire.entities.add_circle(edges[0].vertices[0].position, normal, 15.0.inch)
	face = bwire.entities.add_face(circle)
	face.followme(edges)
	bwire.entities.erase_entities(edges)
	set_lay_and_mat(bwire,"30 bwire stk1,stg0","30 bwire stk1,stg0","sig(bwire)","sig(bwire)")
	print "loading sig8 (9/10) .. \n"
	net = nettype.entities.add_group
	net.name = "sig8"
	net.layer = model.layers[0]
	land = net.entities.add_group
	land.name = "p:die1/_8 land"
	land.layer = model.layers[0]
	ringwk = land.entities.add_group
	ringwk.name = "ringwk"
	ringwk.layer = model.layers[0]
	add_line_to_chain(ringwk, [900.0.inch,-2400.0.inch,220.0.inch],[2400.0.inch,-2400.0.inch,220.0.inch],"40 conductor layer 1")
	add_line_to_chain(ringwk, [2400.0.inch,-2400.0.inch,220.0.inch],[2400.0.inch,-1500.0.inch,220.0.inch],"40 conductor layer 1")
	add_line_to_chain(ringwk, [2400.0.inch,-1500.0.inch,220.0.inch],[1100.0.inch,-1500.0.inch,220.0.inch],"40 conductor layer 1")
	add_line_to_chain(ringwk, [1100.0.inch,-1500.0.inch,220.0.inch],[800.0.inch,-1800.0.inch,220.0.inch],"40 conductor layer 1")
	add_line_to_chain(ringwk, [800.0.inch,-1800.0.inch,220.0.inch],[800.0.inch,-2300.0.inch,220.0.inch],"40 conductor layer 1")
	add_line_to_chain(ringwk, [800.0.inch,-2300.0.inch,220.0.inch],[900.0.inch,-2400.0.inch,220.0.inch],"40 conductor layer 1")
	edges = close_chain(ringwk, "40 conductor layer 1")
	face = ringwk.entities.add_face(edges)
	ringwk.explode
	if (face)
		set_lay_and_mat(land, "40 conductor layer 1","40 conductor layer 1","sig","sig")
	end
	face = pull_ceiling(land, face, 20.0.inch, ["40 conductor layer 1","60 subst (wireframe)"],["40 conductor layer 1","40 conductor layer 1"],["sig","solidedge"],["sig","sig"])
	face = pull_ceiling(land, face, 20.0.inch, ["31 bonding plate","31 bonding plate"],["31 bonding plate","31 bonding plate"],["btplate","btplate"],["btplate","btplate"])
	bwire = net.entities.add_group
	bwire.name = "bw (d:die1/10,p:die1/_8)"
	bwire.layer = model.layers[0]
	edges = []
	edge = bwire.entities.add_line([200.0.inch,-950.0.inch,480.0.inch], [204.7.inch,-954.7.inch,559.5.inch])
	edges << edge
	edge = bwire.entities.add_line([204.7.inch,-954.7.inch,559.5.inch], [553.4.inch,-1297.4.inch,626.4.inch])
	edges << edge
	edge = bwire.entities.add_line([553.4.inch,-1297.4.inch,626.4.inch], [941.8.inch,-1679.2.inch,528.8.inch])
	edges << edge
	edge = bwire.entities.add_line([941.8.inch,-1679.2.inch,528.8.inch], [1079.1.inch,-1814.2.inch,458.9.inch])
	edges << edge
	edge = bwire.entities.add_line([1079.1.inch,-1814.2.inch,458.9.inch], [1268.1.inch,-2000.0.inch,324.5.inch])
	edges << edge
	edge = bwire.entities.add_line([1268.1.inch,-2000.0.inch,324.5.inch], [1384.2.inch,-2114.1.inch,260.0.inch])
	edges << edge
	normal = edges[0].vertices[1].position - edges[0].vertices[0].position
	circle = bwire.entities.add_circle(edges[0].vertices[0].position, normal, 15.0.inch)
	face = bwire.entities.add_face(circle)
	face.followme(edges)
	bwire.entities.erase_entities(edges)
	set_lay_and_mat(bwire, "30 bwire stk1,stg0","30 bwire stk1,stg0","sig(bwire)","sig(bwire)")
	print "loading VDD1 (10/10) .. \n"
	net = nettype.entities.add_group
	net.name = "VDD1"
	net.layer = model.layers[0]
	land = net.entities.add_group
	land.name = "p:die1/_1 land"
	land.layer = model.layers[0]
	ringwk = land.entities.add_group
	ringwk.name = "ringwk"
	ringwk.layer = model.layers[0]
	add_line_to_chain(ringwk, [100.0.inch,1500.0.inch,220.0.inch],[1100.0.inch,1500.0.inch,220.0.inch],"40 conductor layer 1")
	add_line_to_chain(ringwk, [1100.0.inch,1500.0.inch,220.0.inch],[1500.0.inch,1900.0.inch,220.0.inch],"40 conductor layer 1")
	add_line_to_chain(ringwk, [1500.0.inch,1900.0.inch,220.0.inch],[2400.0.inch,1900.0.inch,220.0.inch],"40 conductor layer 1")
	add_line_to_chain(ringwk, [2400.0.inch,1900.0.inch,220.0.inch],[2400.0.inch,2400.0.inch,220.0.inch],"40 conductor layer 1")
	add_line_to_chain(ringwk, [2400.0.inch,2400.0.inch,220.0.inch],[100.0.inch,2400.0.inch,220.0.inch],"40 conductor layer 1")
	add_line_to_chain(ringwk, [100.0.inch,2400.0.inch,220.0.inch],[100.0.inch,1500.0.inch,220.0.inch],"40 conductor layer 1")
	edges = close_chain(ringwk, "40 conductor layer 1")
	face = ringwk.entities.add_face(edges)
	ringwk.explode
	if (face)
		set_lay_and_mat(land, "40 conductor layer 1","40 conductor layer 1","sig","sig")
	end
	face = pull_ceiling(land, face, 20.0.inch, ["40 conductor layer 1","60 subst (wireframe)"],["40 conductor layer 1","40 conductor layer 1"],["sig","solidedge"],["sig","sig"])
	face = pull_ceiling(land, face, 20.0.inch, ["31 bonding plate","31 bonding plate"],["31 bonding plate","31 bonding plate"],["btplate","btplate"],["btplate","btplate"])
	bwire = net.entities.add_group
	bwire.name = "bw (d:die1/4,p:die1/_1)"
	bwire.layer = model.layers[0]
	edges = []
	edge = bwire.entities.add_line([200.0.inch,950.0.inch,480.0.inch], [203.0.inch,954.7.inch,559.5.inch])
	edges << edge
	edge = bwire.entities.add_line([203.0.inch,954.7.inch,559.5.inch], [420.3.inch,1293.9.inch,626.4.inch])
	edges << edge
	edge = bwire.entities.add_line([420.3.inch,1293.9.inch,626.4.inch], [647.1.inch,1647.9.inch,528.8.inch])
	edges << edge
	edge = bwire.entities.add_line([647.1.inch,1647.9.inch,528.8.inch], [727.3.inch,1773.0.inch,458.9.inch])
	edges << edge
	edge = bwire.entities.add_line([727.3.inch,1773.0.inch,458.9.inch], [837.6.inch,1945.3.inch,324.5.inch])
	edges << edge
	edge = bwire.entities.add_line([837.6.inch,1945.3.inch,324.5.inch], [905.4.inch,2051.1.inch,260.0.inch])
	edges << edge
	normal = edges[0].vertices[1].position - edges[0].vertices[0].position
	circle = bwire.entities.add_circle(edges[0].vertices[0].position, normal, 15.0.inch)
	face = bwire.entities.add_face(circle)
	face.followme(edges)
	bwire.entities.erase_entities(edges)
	set_lay_and_mat(bwire, "30 bwire stk1,stg0","30 bwire stk1,stg0","sig(bwire)","sig(bwire)")
	print "loading isolated objects..\n"
	isolated = nets.entities.add_group
	isolated.name = "isolated"
	isolated.layer = model.layers[0]
	fid = isolated.entities.add_group
	fid.name = "fid"
	fid.layer = model.layers[0]
	fid.explode if (fid.entities.count == 0)
	plane = isolated.entities.add_group
	plane.name = "plane"
	plane.layer = model.layers[0]
	plane.explode if (plane.entities.count == 0)
	ring = isolated.entities.add_group
	ring.name = "ring"
	ring.layer = model.layers[0]
	ring.explode if (ring.entities.count == 0)
	bpad = isolated.entities.add_group
	bpad.name = "bpad"
	bpad.layer = model.layers[0]
	bpad.explode if (bpad.entities.count == 0)
	ball = isolated.entities.add_group
	ball.name = "ball"
	ball.layer = model.layers[0]
	ball.explode if (ball.entities.count == 0)
	via = isolated.entities.add_group
	via.name = "via"
	via.layer = model.layers[0]
	via.explode if (via.entities.count == 0)
	pterm = isolated.entities.add_group
	pterm.name = "pterm"
	pterm.layer = model.layers[0]
	pterm.explode if (pterm.entities.count == 0)
	rjump = isolated.entities.add_group
	rjump.name = "rjump"
	rjump.layer = model.layers[0]
	rjump.explode if (rjump.entities.count == 0)
	eterm = isolated.entities.add_group
	eterm.name = "eterm"
	eterm.layer = model.layers[0]
	eterm.explode if (eterm.entities.count == 0)
	etchbackline = isolated.entities.add_group
	etchbackline.name = "etchbackline"
	etchbackline.layer = model.layers[0]
	etchbackline.explode if (etchbackline.entities.count == 0)
	etchbackring = isolated.entities.add_group
	etchbackring.name = "etchbackring"
	etchbackring.layer = model.layers[0]
	etchbackring.explode if (etchbackring.entities.count == 0)
	isolated.explode if (isolated.entities.count == 0)
	ins = gpdb0.to_component
	comp = ins.definition
	comp.name = "desc"
	ins.name = "desc"
	if (not inss.empty?)
		print "replacing existing data..\n"
		model.entities.erase_entities(ins)
		until (inss.empty?) do
			name = inss.shift
			trans = inss.shift
			ins = model.entities.add_instance(comp, trans)
			ins.name = name
		end
	end
	rc = model.active_layer = model.layers[0]
	model.commit_operation
end





以上。

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?