windows11で、sketchup6 その84

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

# 写真

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/18104/18c93964-a112-489f-ad6e-3237f4bc8c9d.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





```


以上。