示例#1
1
文件: hex.py 项目: phonx/BOLTS
def hex1(params, document):
    key = params["key"]
    d1 = params["d1"]
    k = params["k"]
    s = params["s"]
    h = params["h"]
    if h is None:
        h = 0.0
    l = params["l"]
    name = params["name"]

    part = document.addObject("Part::Feature", name)

    # head
    a = s / math.tan(math.pi / 3.0)
    box1 = makeBox(a, s, k)
    box1.translate(Vector(-0.5 * a, -0.5 * s, 0))
    box1.rotate(Vector(0, 0, 0), Vector(0, 0, 1), 30)
    box2 = makeBox(a, s, k)
    box2.translate(Vector(-0.5 * a, -0.5 * s, 0))
    box2.rotate(Vector(0, 0, 0), Vector(0, 0, 1), 150)
    box3 = makeBox(a, s, k)
    box3.translate(Vector(-0.5 * a, -0.5 * s, 0))
    box3.rotate(Vector(0, 0, 0), Vector(0, 0, 1), 270)
    head = box1.fuse(box2).fuse(box3)

    shaft_unthreaded = Part.makeCylinder(0.5 * d1, h + k)
    shaft_threaded = Part.makeCylinder(0.5 * d1, l - h)
    shaft_threaded.translate(Vector(0, 0, h + k))
    part.Shape = head.fuse(shaft_unthreaded).fuse(shaft_threaded).removeSplitter()
示例#2
0
def hex1(params, document):
    key = params['key']
    d1 = params['d1']
    k = params['k']
    s = params['s']
    h = params['h']
    if h is None:
        h = 0.
    l = params['l']
    name = params['name']

    part = document.addObject("Part::Feature", "BOLTS_part")
    part.Label = name

    #head
    a = s / math.tan(math.pi / 3.)
    box1 = makeBox(a, s, k)
    box1.translate(Vector(-0.5 * a, -0.5 * s, 0))
    box1.rotate(Vector(0, 0, 0), Vector(0, 0, 1), 30)
    box2 = makeBox(a, s, k)
    box2.translate(Vector(-0.5 * a, -0.5 * s, 0))
    box2.rotate(Vector(0, 0, 0), Vector(0, 0, 1), 150)
    box3 = makeBox(a, s, k)
    box3.translate(Vector(-0.5 * a, -0.5 * s, 0))
    box3.rotate(Vector(0, 0, 0), Vector(0, 0, 1), 270)
    head = box1.fuse(box2).fuse(box3)

    shaft_unthreaded = Part.makeCylinder(0.5 * d1, h + k)
    shaft_threaded = Part.makeCylinder(0.5 * d1, l - h)
    shaft_threaded.translate(Vector(0, 0, h + k))
    part.Shape = head.fuse(shaft_unthreaded).removeSplitter().fuse(
        shaft_threaded)

    #color thread
    color_face(part, 9)
示例#3
0
文件: hex.py 项目: phonx/BOLTS
def hex2(params, document):
    key = params["key"]
    d1 = params["d1"]
    k = params["k"]
    s = params["s"]
    b1 = params["b1"]
    b2 = params["b2"]
    b3 = params["b3"]
    l = params["l"]
    b = b3
    if l < 125:
        b = b1
    elif l < 200:
        b = b2
    name = params["name"]

    part = document.addObject("Part::Feature", name)

    # head
    a = s / math.tan(math.pi / 3.0)
    box1 = makeBox(a, s, k)
    box1.translate(Vector(-0.5 * a, -0.5 * s, 0))
    box1.rotate(Vector(0, 0, 0), Vector(0, 0, 1), 30)
    box2 = makeBox(a, s, k)
    box2.translate(Vector(-0.5 * a, -0.5 * s, 0))
    box2.rotate(Vector(0, 0, 0), Vector(0, 0, 1), 150)
    box3 = makeBox(a, s, k)
    box3.translate(Vector(-0.5 * a, -0.5 * s, 0))
    box3.rotate(Vector(0, 0, 0), Vector(0, 0, 1), 270)
    head = box1.fuse(box2).fuse(box3)

    shaft_unthreaded = Part.makeCylinder(0.5 * d1, l - b + k)
    shaft_threaded = Part.makeCylinder(0.5 * d1, b)
    shaft_threaded.translate(Vector(0, 0, l - b + k))
    part.Shape = head.fuse(shaft_unthreaded).fuse(shaft_threaded).removeSplitter()
示例#4
0
文件: nut.py 项目: mstroehle/BOLTS
def nut1(params, document):
    # key = params['key']  # not used
    d1 = params["d1"]
    s = params["s"]
    m_max = params["m_max"]
    name = params["name"]

    # r_fillet = 0.03*s  # not used ATM

    part = document.addObject("Part::Feature", "BOLTS_part")
    part.Label = name

    # head
    a = s / math.tan(math.pi / 3.0)
    box1 = makeBox(a, s, m_max)
    box1.translate(Vector(-0.5 * a, -0.5 * s, 0))
    box1.rotate(Vector(0, 0, 0), Vector(0, 0, 1), 30)
    box2 = makeBox(a, s, m_max)
    box2.translate(Vector(-0.5 * a, -0.5 * s, 0))
    box2.rotate(Vector(0, 0, 0), Vector(0, 0, 1), 150)
    box3 = makeBox(a, s, m_max)
    box3.translate(Vector(-0.5 * a, -0.5 * s, 0))
    box3.rotate(Vector(0, 0, 0), Vector(0, 0, 1), 270)
    head = box1.fuse(box2).fuse(box3)

    hole = Part.makeCylinder(0.5 * d1, 2 * m_max)
    nut = head.cut(hole)
    # nut = nut.makeFillet(r_fillet,nut.Edges)
    part.Shape = nut.removeSplitter()

    # color thread
    color_face(part, 7)
示例#5
0
文件: nut.py 项目: CibolaDuo/BOLTS
def nut1(params,document):
	key = params['key']
	d1 = params['d1']
	s = params['s']
	m_max = params['m_max']
	name = params['name']

	r_fillet = 0.03*s

	part = document.addObject("Part::Feature","BOLTS_part")
	part.Label = name

	#head
	a = s/math.tan(math.pi/3.)
	box1 = makeBox(a,s,m_max)
	box1.translate(Vector(-0.5*a,-0.5*s,0))
	box1.rotate(Vector(0,0,0),Vector(0,0,1),30)
	box2 = makeBox(a,s,m_max)
	box2.translate(Vector(-0.5*a,-0.5*s,0))
	box2.rotate(Vector(0,0,0),Vector(0,0,1),150)
	box3 = makeBox(a,s,m_max)
	box3.translate(Vector(-0.5*a,-0.5*s,0))
	box3.rotate(Vector(0,0,0),Vector(0,0,1),270)
	head = box1.fuse(box2).fuse(box3)

	hole = Part.makeCylinder(0.5*d1,2*m_max)
	nut = head.cut(hole)
#	nut = nut.makeFillet(r_fillet,nut.Edges)
	part.Shape = nut.removeSplitter()

	#color thread
	color_face(part,7)
示例#6
0
文件: hex.py 项目: DaleDunn/BOLTS
def hex1(params,document):
	key = params['key']
	d1 = params['d1']
	k = params['k']
	s = params['s']
	h = params['h']
	if h is None:
		h = 0.
	l = params['l']
	name = params['name']

	part = document.addObject("Part::Feature",name)

	#head
	a = s/math.tan(math.pi/3.)
	box1 = makeBox(a,s,k)
	box1.translate(Vector(-0.5*a,-0.5*s,0))
	box1.rotate(Vector(0,0,0),Vector(0,0,1),30)
	box2 = makeBox(a,s,k)
	box2.translate(Vector(-0.5*a,-0.5*s,0))
	box2.rotate(Vector(0,0,0),Vector(0,0,1),150)
	box3 = makeBox(a,s,k)
	box3.translate(Vector(-0.5*a,-0.5*s,0))
	box3.rotate(Vector(0,0,0),Vector(0,0,1),270)
	head = box1.fuse(box2).fuse(box3)

	shaft_unthreaded = Part.makeCylinder(0.5*d1,h+k)
	shaft_threaded = Part.makeCylinder(0.5*d1,l-h)
	shaft_threaded.translate(Vector(0,0,h+k))
	part.Shape = head.fuse(shaft_unthreaded).fuse(shaft_threaded)
示例#7
0
文件: hex.py 项目: DaleDunn/BOLTS
def hex2(params,document):
	key = params['key']
	d1 = params['d1']
	k = params['k']
	s = params['s']
	b1 = params['b1']
	b2 = params['b2']
	b3 = params['b3']
	l = params['l']
	b = b3;
	if l < 125:
		b = b1
	elif l < 200:
		b = b2
	name = params['name']

	part = document.addObject("Part::Feature",name)

	#head
	a = s/math.tan(math.pi/3.)
	box1 = makeBox(a,s,k)
	box1.translate(Vector(-0.5*a,-0.5*s,0))
	box1.rotate(Vector(0,0,0),Vector(0,0,1),30)
	box2 = makeBox(a,s,k)
	box2.translate(Vector(-0.5*a,-0.5*s,0))
	box2.rotate(Vector(0,0,0),Vector(0,0,1),150)
	box3 = makeBox(a,s,k)
	box3.translate(Vector(-0.5*a,-0.5*s,0))
	box3.rotate(Vector(0,0,0),Vector(0,0,1),270)
	head = box1.fuse(box2).fuse(box3)

	shaft_unthreaded = Part.makeCylinder(0.5*d1,l-b+k)
	shaft_threaded = Part.makeCylinder(0.5*d1,b)
	shaft_threaded.translate(Vector(0,0,l-b+k))
	part.Shape = head.fuse(shaft_unthreaded).fuse(shaft_threaded)
示例#8
0
文件: nut.py 项目: Spudmn/BOLTS
def nut1(params, document):
    key = params['key']
    d1 = params['d1']
    s = params['s']
    m_max = params['m_max']
    name = params['name']

    r_fillet = 0.03 * s

    part = document.addObject("Part::Feature", name)

    #head
    a = s / math.tan(math.pi / 3.)
    box1 = makeBox(a, s, m_max)
    box1.translate(Vector(-0.5 * a, -0.5 * s, 0))
    box1.rotate(Vector(0, 0, 0), Vector(0, 0, 1), 30)
    box2 = makeBox(a, s, m_max)
    box2.translate(Vector(-0.5 * a, -0.5 * s, 0))
    box2.rotate(Vector(0, 0, 0), Vector(0, 0, 1), 150)
    box3 = makeBox(a, s, m_max)
    box3.translate(Vector(-0.5 * a, -0.5 * s, 0))
    box3.rotate(Vector(0, 0, 0), Vector(0, 0, 1), 270)
    head = box1.fuse(box2).fuse(box3)

    hole = Part.makeCylinder(0.5 * d1, 2 * m_max)
    nut = head.cut(hole)
    #	nut = nut.makeFillet(r_fillet,nut.Edges)
    part.Shape = nut.removeSplitter()
示例#9
0
def hex_socket1(params, document):
    d1 = params['d1']
    d2 = params['d2']
    b1 = params['b1']
    b2 = params['b2']
    b3 = params['b3']
    k_max = params['k_max']
    s = params['s']
    t = params['t']
    L = params['L']
    h_max = params['h_max']
    l = params['l']

    if l <= L:
        b = l - k_max - h_max
    elif l < 125:
        b = b1
    elif l < 200:
        b = b2
    else:
        b = b3

    if b < 0:
        raise ValueError("Invalid threaded length: %s" % b)

    h = l - k_max - b

    #head
    head = makeCone(0.5 * d2, 0.5 * d1, k_max)
    #socket
    a = s / math.tan(math.pi / 3.)
    box1 = makeBox(a, s, t)
    box1.translate(Vector(-0.5 * a, -0.5 * s, 0))
    box1.rotate(Vector(0, 0, 0), Vector(0, 0, 1), 30)
    box2 = makeBox(a, s, t)
    box2.translate(Vector(-0.5 * a, -0.5 * s, 0))
    box2.rotate(Vector(0, 0, 0), Vector(0, 0, 1), 150)
    box3 = makeBox(a, s, t)
    box3.translate(Vector(-0.5 * a, -0.5 * s, 0))
    box3.rotate(Vector(0, 0, 0), Vector(0, 0, 1), 270)
    socket = box1.fuse(box2).fuse(box3)

    shaft_unthreaded = makeCylinder(0.5 * d1, h + k_max)
    shaft_threaded = makeCylinder(0.5 * d1, b)
    shaft_threaded.translate(Vector(0, 0, h + k_max))

    name = params['name']
    part = document.addObject("Part::Feature", "BOLTS_part")
    part.Label = name
    part.Shape = head.fuse(shaft_unthreaded).cut(socket).removeSplitter().fuse(
        shaft_threaded)

    #color thread
    color_face(part, 1)
示例#10
0
def hex_socket1(params, document):
    d1 = params["d1"]
    d2 = params["d2"]
    b1 = params["b1"]
    b2 = params["b2"]
    b3 = params["b3"]
    k_max = params["k_max"]
    s = params["s"]
    t = params["t"]
    L = params["L"]
    h_max = params["h_max"]
    le = params["l"]

    if le <= L:
        b = le - k_max - h_max
    elif le < 125:
        b = b1
    elif le < 200:
        b = b2
    else:
        b = b3

    if b < 0:
        raise ValueError("Invalid threaded length: %s" % b)

    h = le - k_max - b

    # head
    head = makeCone(0.5 * d2, 0.5 * d1, k_max)
    # socket
    a = s / math.tan(math.pi / 3.0)
    box1 = makeBox(a, s, t)
    box1.translate(Vector(-0.5 * a, -0.5 * s, 0))
    box1.rotate(Vector(0, 0, 0), Vector(0, 0, 1), 30)
    box2 = makeBox(a, s, t)
    box2.translate(Vector(-0.5 * a, -0.5 * s, 0))
    box2.rotate(Vector(0, 0, 0), Vector(0, 0, 1), 150)
    box3 = makeBox(a, s, t)
    box3.translate(Vector(-0.5 * a, -0.5 * s, 0))
    box3.rotate(Vector(0, 0, 0), Vector(0, 0, 1), 270)
    socket = box1.fuse(box2).fuse(box3)

    shaft_unthreaded = makeCylinder(0.5 * d1, h + k_max)
    shaft_threaded = makeCylinder(0.5 * d1, b)
    shaft_threaded.translate(Vector(0, 0, h + k_max))

    name = params["name"]
    part = document.addObject("Part::Feature", "BOLTS_part")
    part.Label = name
    part.Shape = head.fuse(shaft_unthreaded).cut(socket).removeSplitter().fuse(
        shaft_threaded)

    # color thread
    color_face(part, 1)
示例#11
0
def hex_socket1(params,document):
	d1 = params['d1']
	d2 = params['d2']
	b1 = params['b1']
	b2 = params['b2']
	b3 = params['b3']
	k_max = params['k_max']
	s = params['s']
	t = params['t']
	L = params['L']
	h_max = params['h_max']
	l = params['l']

	if l <= L:
		b = l - k_max - h_max
	elif l < 125:
		b = b1
	elif l < 200:
		b = b2
	else:
		b = b3

	if b < 0:
		raise ValueError("Invalid threaded length: %s" % b)

	h = l - k_max - b

	#head
	head = makeCone(0.5*d2,0.5*d1,k_max)
	#socket
	a = s/math.tan(math.pi/3.)
	box1 = makeBox(a,s,t)
	box1.translate(Vector(-0.5*a,-0.5*s,0))
	box1.rotate(Vector(0,0,0),Vector(0,0,1),30)
	box2 = makeBox(a,s,t)
	box2.translate(Vector(-0.5*a,-0.5*s,0))
	box2.rotate(Vector(0,0,0),Vector(0,0,1),150)
	box3 = makeBox(a,s,t)
	box3.translate(Vector(-0.5*a,-0.5*s,0))
	box3.rotate(Vector(0,0,0),Vector(0,0,1),270)
	socket = box1.fuse(box2).fuse(box3)

	shaft_unthreaded = makeCylinder(0.5*d1,h+k_max)
	shaft_threaded = makeCylinder(0.5*d1,b)
	shaft_threaded.translate(Vector(0,0,h+k_max))

	name = params['name']
	part = document.addObject("Part::Feature","BOLTS_part")
	part.Label = name
	part.Shape = head.fuse(shaft_unthreaded).cut(socket).removeSplitter().fuse(shaft_threaded)

	#color thread
	color_face(part,1)
示例#12
0
def hex_socket2(params, document):
    d1 = params['d1']
    d2 = params['d2']
    b = params['b']
    k = params['k']
    s = params['s']
    t = params['t_min']
    L = params['L']
    l = params['l']

    if l <= L:
        h = 0
    else:
        h = l - b

    if h < 0:
        raise ValueError("l is too short, resulting in negative h")

    #head
    head = makeCylinder(0.5 * d2, k)
    #socket
    a = s / math.tan(math.pi / 3.)
    box1 = makeBox(a, s, t)
    box1.translate(Vector(-0.5 * a, -0.5 * s, 0))
    box1.rotate(Vector(0, 0, 0), Vector(0, 0, 1), 30)
    box2 = makeBox(a, s, t)
    box2.translate(Vector(-0.5 * a, -0.5 * s, 0))
    box2.rotate(Vector(0, 0, 0), Vector(0, 0, 1), 150)
    box3 = makeBox(a, s, t)
    box3.translate(Vector(-0.5 * a, -0.5 * s, 0))
    box3.rotate(Vector(0, 0, 0), Vector(0, 0, 1), 270)
    socket = box1.fuse(box2).fuse(box3)

    shaft_unthreaded = makeCylinder(0.5 * d1, h + k)
    shaft_threaded = makeCylinder(0.5 * d1, b)
    shaft_threaded.translate(Vector(0, 0, h + k))

    name = params['name']
    part = document.addObject("Part::Feature", "BOLTS_part")
    part.Label = name
    part.Shape = head.fuse(shaft_unthreaded).cut(socket).removeSplitter().fuse(
        shaft_threaded)

    #color thread
    color_face(part, 1)
示例#13
0
def hex_socket2(params,document):
	d1 = params['d1']
	d2 = params['d2']
	b = params['b']
	k = params['k']
	s = params['s']
	t = params['t_min']
	L = params['L']
	l = params['l']

	if l <= L:
		h = 0
	else:
		h = l - b

	if h < 0:
		raise ValueError("l is too short, resulting in negative h")

	#head
	head = makeCylinder(0.5*d2,k)
	#socket
	a = s/math.tan(math.pi/3.)
	box1 = makeBox(a,s,t)
	box1.translate(Vector(-0.5*a,-0.5*s,0))
	box1.rotate(Vector(0,0,0),Vector(0,0,1),30)
	box2 = makeBox(a,s,t)
	box2.translate(Vector(-0.5*a,-0.5*s,0))
	box2.rotate(Vector(0,0,0),Vector(0,0,1),150)
	box3 = makeBox(a,s,t)
	box3.translate(Vector(-0.5*a,-0.5*s,0))
	box3.rotate(Vector(0,0,0),Vector(0,0,1),270)
	socket = box1.fuse(box2).fuse(box3)

	shaft_unthreaded = makeCylinder(0.5*d1,h+k)
	shaft_threaded = makeCylinder(0.5*d1,b)
	shaft_threaded.translate(Vector(0,0,h+k))

	name = params['name']
	part = document.addObject("Part::Feature","BOLTS_part")
	part.Label = name
	part.Shape = head.fuse(shaft_unthreaded).cut(socket).removeSplitter().fuse(shaft_threaded)

	#color thread
	color_face(part,1)
示例#14
0
def hex2(params, document):
    key = params['key']
    d1 = params['d1']
    k = params['k']
    s = params['s']
    b1 = params['b1']
    b2 = params['b2']
    b3 = params['b3']
    l = params['l']
    b = b3
    if l < 125:
        b = b1
    elif l < 200:
        b = b2
    name = params['name']

    part = document.addObject("Part::Feature", "BOLTS_part")
    part.Label = name

    #head
    a = s / math.tan(math.pi / 3.)
    box1 = makeBox(a, s, k)
    box1.translate(Vector(-0.5 * a, -0.5 * s, 0))
    box1.rotate(Vector(0, 0, 0), Vector(0, 0, 1), 30)
    box2 = makeBox(a, s, k)
    box2.translate(Vector(-0.5 * a, -0.5 * s, 0))
    box2.rotate(Vector(0, 0, 0), Vector(0, 0, 1), 150)
    box3 = makeBox(a, s, k)
    box3.translate(Vector(-0.5 * a, -0.5 * s, 0))
    box3.rotate(Vector(0, 0, 0), Vector(0, 0, 1), 270)
    head = box1.fuse(box2).fuse(box3)

    shaft_unthreaded = Part.makeCylinder(0.5 * d1, l - b + k)
    shaft_threaded = Part.makeCylinder(0.5 * d1, b)
    shaft_threaded.translate(Vector(0, 0, l - b + k))
    part.Shape = head.fuse(shaft_unthreaded).removeSplitter().fuse(
        shaft_threaded)

    #color thread
    color_face(part, 9)
示例#15
0
def hex2(params, document):
    # key = params['key']  # not used
    d1 = params["d1"]
    k = params["k"]
    s = params["s"]
    b1 = params["b1"]
    b2 = params["b2"]
    b3 = params["b3"]
    le = params["l"]
    b = b3
    if le < 125:
        b = b1
    elif le < 200:
        b = b2
    name = params["name"]

    part = document.addObject("Part::Feature", "BOLTS_part")
    part.Label = name

    # head
    a = s / math.tan(math.pi / 3.0)
    box1 = makeBox(a, s, k)
    box1.translate(Vector(-0.5 * a, -0.5 * s, 0))
    box1.rotate(Vector(0, 0, 0), Vector(0, 0, 1), 30)
    box2 = makeBox(a, s, k)
    box2.translate(Vector(-0.5 * a, -0.5 * s, 0))
    box2.rotate(Vector(0, 0, 0), Vector(0, 0, 1), 150)
    box3 = makeBox(a, s, k)
    box3.translate(Vector(-0.5 * a, -0.5 * s, 0))
    box3.rotate(Vector(0, 0, 0), Vector(0, 0, 1), 270)
    head = box1.fuse(box2).fuse(box3)

    shaft_unthreaded = Part.makeCylinder(0.5 * d1, le - b + k)
    shaft_threaded = Part.makeCylinder(0.5 * d1, b)
    shaft_threaded.translate(Vector(0, 0, le - b + k))
    part.Shape = head.fuse(shaft_unthreaded).removeSplitter().fuse(
        shaft_threaded)

    # color thread
    color_face(part, 9)