コード例 #1
0
ファイル: d_key.py プロジェクト: dominatorX/reducer-mechanics
def d_key(acad,x,y,L,b):
    ul=APoint(x-b/2,y+(L-b)/2)
    ur=APoint(x+b/2,y+(L-b)/2)
    dl=APoint(x-b/2,y-(L-b)/2)
    dr=APoint(x+b/2,y-(L-b)/2)
    d_l(acad,ul,dl)
    d_l(acad,ur,dr)
    d_arc([x-b/2,y+(L-b)/2,x,y+(L)/2,x+b/2,y+(L-b)/2])
    d_arc([x-b/2,y-(L-b)/2,x,y-(L)/2,x+b/2,y-(L-b)/2])
コード例 #2
0
def d_tank_f_bearcap(acad, x, y, S, h, ribb, H):
    #轴承盖
    sli = 1
    [l1, l2] = d_pointline(acad, x - (ribb / 2 + 2 * sli), y - H,
                           x - (ribb / 2 + sli), y - (H - sli))
    [r1, r2] = d_pointline(acad, x + (ribb / 2 + 2 * sli), y - H,
                           x + (ribb / 2 + sli), y - (H - sli))
    [l3, l4] = d_pointline(acad, x - (ribb / 2 + sli), y - H, x - (ribb / 2),
                           y - (H - sli))
    [r3, r4] = d_pointline(acad, x + (ribb / 2 + sli), y - H, x + (ribb / 2),
                           y - (H - sli))
    l5 = APoint(x - (ribb / 2 + sli),
                y - ((S + sli) * (S + sli) / 4 - (ribb / 2 + sli)**2)**0.5)
    r5 = APoint(x + (ribb / 2 + sli),
                y - ((S + sli) * (S + sli) / 4 - (ribb / 2 + sli)**2)**0.5)
    l6 = APoint(x - (ribb / 2), y - ((S) * (S) / 4 - (ribb / 2)**2)**0.5)
    r6 = APoint(x + (ribb / 2), y - ((S) * (S) / 4 - (ribb / 2)**2)**0.5)
    supl1 = APoint(x - (S**2 / 4 - h**2)**0.5, y + h)
    supr1 = APoint(x + (S**2 / 4 - h**2)**0.5, y + h)
    supl2 = APoint(x - (S**2 / 4 - h**2)**0.5, y - h)
    supr2 = APoint(x + (S**2 / 4 - h**2)**0.5, y - h)
    d_l(acad, l2, l5)
    d_l(acad, r2, r5)
    d_l(acad, l4, l6)
    d_l(acad, r4, r6)
    c = APoint(x, y)
    d_c(acad, c, S / 2)
    d_c(acad, c, (S + sli) / 2)
    return supl1, supr1, supl2, supr2, l1, r1
コード例 #3
0
def d_bolt_f_solo(acad, x, y, e):
    h = 3**0.5 / 4 * e
    [b1, b2] = d_pointline(acad, x - e / 2, y, x - e / 4, y + h)
    [b3, b4] = d_pointline(acad, x + e / 4, y + h, x + e / 2, y)
    [b5, b6] = d_pointline(acad, x + e / 4, y - h, x - e / 4, y - h)
    d_l(acad, b2, b3)
    d_l(acad, b4, b5)
    d_l(acad, b6, b1)

    #辅助线
    [s1, s2] = d_pointline(acad, x - (e / 2 + 2), y, x + (e / 2 + 2), y)
    [s3, s4] = d_pointline(acad, x, y + h + 2, x, y - (h + 2))
コード例 #4
0
def cap_u(acad, x, y, H, d, D, d3, b, h, updown, oc):
    d1 = d + 3
    e = 1.2 * d3
    d0 = d3 + 1
    D0 = D + 2.5 * d3
    D2 = D0 + 2.5 * d3
    D4 = D - 10

    if updown == 'u':

        [fl1, fr1] = d_pointline(acad, x - D2 / 2, y + H, x + D2 / 2, y + H)
        [fl2, fl3] = d_pointline(acad, x - D0 / 2 - d0 / 2, y + H,
                                 x - D0 / 2 - d0 / 2, y + H - e)
        [fr2, fr3] = d_pointline(acad, x + D0 / 2 + d0 / 2, y + H,
                                 x + D0 / 2 + d0 / 2, y + H - e)
        [fl4, fl5] = d_pointline(acad, x - D0 / 2 + d0 / 2, y + H,
                                 x - D0 / 2 + d0 / 2, y + H - e)
        [fr4, fr5] = d_pointline(acad, x + D0 / 2 - d0 / 2, y + H,
                                 x + D0 / 2 - d0 / 2, y + H - e)
        [fl6, fl7] = d_pointline(acad, x - D / 2 + 1, y + H - e, x - D / 2 + 1,
                                 y + H - e - 1)
        [fr6, fr7] = d_pointline(acad, x + D / 2 - 1, y + H - e, x + D / 2 - 1,
                                 y + H - e - 1)
        fl8 = APoint(x - D2 / 2, y + H - e)
        fr8 = APoint(x + D2 / 2, y + H - e)
        [fl9, fl10] = d_pointline(acad, x - D / 2, y + h, x - D / 2,
                                  y + H - e - 1)
        [fr9, fr10] = d_pointline(acad, x + D / 2, y + h, x + D / 2,
                                  y + H - e - 1)
        [fl11, fl12] = d_pointline(acad, x - (D * D - b * b)**0.5 / 2, y + h,
                                   x - (D * D - b * b)**0.5 / 2, y)
        [fr11, fr12] = d_pointline(acad, x + (D * D - b * b)**0.5 / 2, y + h,
                                   x + (D * D - b * b)**0.5 / 2, y)
        [fl13,
         fl14] = d_pointline(acad, x - (D4 * D4 - b * b)**0.5 / 2 + h / 10,
                             y + h, x - (D4 * D4 - b * b)**0.5 / 2, y)
        [fr13,
         fr14] = d_pointline(acad, x + (D4 * D4 - b * b)**0.5 / 2 - h / 10,
                             y + h, x + (D4 * D4 - b * b)**0.5 / 2, y)
        [fl15, fl16] = d_pointline(acad, x - D4 / 2 + h / 10, y + h,
                                   x - D4 / 2 + H / 10, y + H / 2)
        [fr15, fr16] = d_pointline(acad, x + D4 / 2 - h / 10, y + h,
                                   x + D4 / 2 - H / 10, y + H / 2)
        [fl17, fl18] = d_pointline(acad, x - b / 2, y, x - b / 2, y + h)
        [fr17, fr18] = d_pointline(acad, x + b / 2, y, x + b / 2, y + h)

        d_l(acad, fl1, fl8)
        d_l(acad, fr1, fr8)
        d_l(acad, fl6, fl8)
        d_l(acad, fr6, fr8)
        d_l(acad, fl10, fl7)
        d_l(acad, fr10, fr7)
        d_l(acad, fl12, fr12)
        d_l(acad, fl9, fl13)
        d_l(acad, fr9, fr13)
        d_l(acad, fl16, fr16)
        d_l(acad, fl18, fr18)
        #辅助线
        [fl6, fl7] = d_pointline(acad, x - D0 / 2, y + H + 2, x - D0 / 2,
                                 y + H - e - 2)
        [fr6, fr7] = d_pointline(acad, x + D0 / 2, y + H + 2, x + D0 / 2,
                                 y + H - e - 2)

        ol1 = APoint(x - D / 2, y + H)
        or1 = APoint(x + D / 2, y + H)
        [ol2, or2] = d_pointline(acad, x - (D / 2 - 1), y + H - 1,
                                 x + (D / 2 - 1), y + H - 1)
        d_l(acad, ol1, ol2)
        d_l(acad, or1, or2)
        if oc == 'o':
            ol3 = APoint(x - d1 / 2, y + H - 1)
            or3 = APoint(x + d1 / 2, y + H - 1)
            [ol4, or4] = d_pointline(acad, x - d1 / 2, y + 7 * H / 8,
                                     x + d1 / 2, y + 7 * H / 8)
            [ol5, or5] = d_pointline(acad, x - d1 / 2 - 3, y + 13 * H / 16,
                                     x + d1 / 2 + 3, y + 13 * H / 16)
            [ol6, or6] = d_pointline(acad, x - d1 / 2 - 3, y + 11 * H / 16,
                                     x + d1 / 2 + 3, y + 11 * H / 16)
            [ol7, or7] = d_pointline(acad, x - d1 / 2, y + 5 * H / 8,
                                     x + d1 / 2, y + 5 * H / 8)
            ol8 = APoint(x - d1 / 2, y + H / 2)
            or8 = APoint(x + d1 / 2, y + H / 2)
            d_l(acad, ol3, ol4)
            d_l(acad, or3, or4)
            d_l(acad, ol4, ol5)
            d_l(acad, or4, or5)
            d_l(acad, ol5, ol6)
            d_l(acad, or5, or6)
            d_l(acad, ol6, ol7)
            d_l(acad, or6, or7)
            d_l(acad, ol7, ol8)
            d_l(acad, or7, or8)

    if updown == 'd':

        [fl1, fr1] = d_pointline(acad, x - D2 / 2, y - H, x + D2 / 2, y - H)
        [fl2, fl3] = d_pointline(acad, x - D0 / 2 - d0 / 2, y - H,
                                 x - D0 / 2 - d0 / 2, y - H + e)
        [fr2, fr3] = d_pointline(acad, x + D0 / 2 + d0 / 2, y - H,
                                 x + D0 / 2 + d0 / 2, y - H + e)
        [fl4, fl5] = d_pointline(acad, x - D0 / 2 + d0 / 2, y - H,
                                 x - D0 / 2 + d0 / 2, y - H + e)
        [fr4, fr5] = d_pointline(acad, x + D0 / 2 - d0 / 2, y - H,
                                 x + D0 / 2 - d0 / 2, y - H + e)
        [fl6, fl7] = d_pointline(acad, x - D / 2 + 1, y - H + e, x - D / 2 + 1,
                                 y - H + e + 1)
        [fr6, fr7] = d_pointline(acad, x + D / 2 - 1, y - H + e, x + D / 2 - 1,
                                 y - H + e + 1)
        fl8 = APoint(x - D2 / 2, y - H + e)
        fr8 = APoint(x + D2 / 2, y - H + e)
        [fl9, fl10] = d_pointline(acad, x - D / 2, y - h, x - D / 2,
                                  y - H + e + 1)
        [fr9, fr10] = d_pointline(acad, x + D / 2, y - h, x + D / 2,
                                  y - H + e + 1)
        [fl11, fl12] = d_pointline(acad, x - (D * D - b * b)**0.5 / 2, y - h,
                                   x - (D * D - b * b)**0.5 / 2, y)
        [fr11, fr12] = d_pointline(acad, x + (D * D - b * b)**0.5 / 2, y - h,
                                   x + (D * D - b * b)**0.5 / 2, y)
        [fl13,
         fl14] = d_pointline(acad, x - (D4 * D4 - b * b)**0.5 / 2 + h / 10,
                             y - h, x - (D4 * D4 - b * b)**0.5 / 2, y)
        [fr13,
         fr14] = d_pointline(acad, x + (D4 * D4 - b * b)**0.5 / 2 - h / 10,
                             y - h, x + (D4 * D4 - b * b)**0.5 / 2, y)
        [fl15, fl16] = d_pointline(acad, x - D4 / 2 + h / 10, y - h,
                                   x - D4 / 2 + H / 10, y - H / 2)
        [fr15, fr16] = d_pointline(acad, x + D4 / 2 - h / 10, y - h,
                                   x + D4 / 2 - H / 10, y - H / 2)
        [fl17, fl18] = d_pointline(acad, x - b / 2, y, x - b / 2, y - h)
        [fr17, fr18] = d_pointline(acad, x + b / 2, y, x + b / 2, y - h)

        d_l(acad, fl1, fl8)
        d_l(acad, fr1, fr8)
        d_l(acad, fl6, fl8)
        d_l(acad, fr6, fr8)
        d_l(acad, fl10, fl7)
        d_l(acad, fr10, fr7)
        d_l(acad, fl12, fr12)
        d_l(acad, fl9, fl13)
        d_l(acad, fr9, fr13)
        d_l(acad, fl16, fr16)
        d_l(acad, fl18, fr18)
        #辅助线
        [fl6, fl7] = d_pointline(acad, x - D0 / 2, y - H - 2, x - D0 / 2,
                                 y - (H - e - 2))
        [fr6, fr7] = d_pointline(acad, x + D0 / 2, y - H - 2, x + D0 / 2,
                                 y - (H - e - 2))

        ol1 = APoint(x - D / 2, y - H)
        or1 = APoint(x + D / 2, y - H)
        [ol2, or2] = d_pointline(acad, x - (D / 2 - 1), y - (H - 1),
                                 x + (D / 2 - 1), y - (H - 1))
        d_l(acad, ol1, ol2)
        d_l(acad, or1, or2)
        if oc == 'o':
            ol3 = APoint(x - d1 / 2, y - (H - 1))
            or3 = APoint(x + d1 / 2, y - (H - 1))
            [ol4, or4] = d_pointline(acad, x - d1 / 2, y - 7 * H / 8,
                                     x + d1 / 2, y - 7 * H / 8)
            [ol5, or5] = d_pointline(acad, x - d1 / 2 - 3, y - 13 * H / 16,
                                     x + d1 / 2 + 3, y - 13 * H / 16)
            [ol6, or6] = d_pointline(acad, x - d1 / 2 - 3, y - 11 * H / 16,
                                     x + d1 / 2 + 3, y - 11 * H / 16)
            [ol7, or7] = d_pointline(acad, x - d1 / 2, y - 5 * H / 8,
                                     x + d1 / 2, y - 5 * H / 8)
            ol8 = APoint(x - d1 / 2, y - H / 2)
            or8 = APoint(x + d1 / 2, y - H / 2)
            d_l(acad, ol3, ol4)
            d_l(acad, or3, or4)
            d_l(acad, ol4, ol5)
            d_l(acad, or4, or5)
            d_l(acad, ol5, ol6)
            d_l(acad, or5, or6)
            d_l(acad, ol6, ol7)
            d_l(acad, or6, or7)
            d_l(acad, ol7, ol8)
            d_l(acad, or7, or8)
コード例 #5
0
def d_sleeve(acad, x, up, down, d, Dg, Db, flag):
    if flag == 'd':
        l1 = APoint(x - d / 2, up)
        l2 = APoint(x - Dg / 2, up)
        l3 = APoint(x - Dg / 2, up * 2 / 3 + down / 3)
        l4 = APoint(x - Db / 2, up * 2 / 3 + down / 3)
        l5 = APoint(x - Db / 2, down)
        d_l(acad, l1, l2)
        d_l(acad, l2, l3)
        d_l(acad, l3, l4)
        d_l(acad, l4, l5)

        r1 = APoint(x + d / 2, up)
        r2 = APoint(x + Dg / 2, up)
        r3 = APoint(x + Dg / 2, up * 2 / 3 + down / 3)
        r4 = APoint(x + Db / 2, up * 2 / 3 + down / 3)
        r5 = APoint(x + Db / 2, down)
        d_l(acad, r1, r2)
        d_l(acad, r2, r3)
        d_l(acad, r3, r4)
        d_l(acad, r4, r5)

    elif flag == 'u':

        l1 = APoint(x - d / 2, down)
        l2 = APoint(x - Dg / 2, down)
        l3 = APoint(x - Dg / 2, down * 2 / 3 + up / 3)
        l4 = APoint(x - Db / 2, down * 2 / 3 + up / 3)
        l5 = APoint(x - Db / 2, up)
        d_l(acad, l1, l2)
        d_l(acad, l2, l3)
        d_l(acad, l3, l4)
        d_l(acad, l4, l5)

        r1 = APoint(x + d / 2, down)
        r2 = APoint(x + Dg / 2, down)
        r3 = APoint(x + Dg / 2, down * 2 / 3 + up / 3)
        r4 = APoint(x + Db / 2, down * 2 / 3 + up / 3)
        r5 = APoint(x + Db / 2, up)
        d_l(acad, r1, r2)
        d_l(acad, r2, r3)
        d_l(acad, r3, r4)
        d_l(acad, r4, r5)
コード例 #6
0
def title(acad,x,y,name,type='assemble'):

    if type=='assemble':
        xall=[]
        xall.append(x)
        xall.append(xall[0]-40)
        xall.append(xall[1]-40)
        xall.append(xall[2]-20)
        xall.append(xall[3]-35)
        xall.append(xall[4]-15)

        xall.append(xall[0]-25)
        xall.append(xall[6]-40)
    elif type=='part':
        xall=[]
        xall.append(x)
        xall.append(xall[0]-45)
        xall.append(xall[1]-40)
        xall.append(xall[2]-15)
        xall.append(xall[3]-35)
        xall.append(xall[4]-15)

        xall.append(xall[0]-15)
        xall.append(xall[6]-15)
        xall.append(xall[7]-15)
        xall.append(xall[8]-25)
        xall.append(xall[9]-15)

    else:
        print('error type')
        return None

    [dr,dl]=d_pointline(acad,xall[0],y,xall[5],y)
    [ur,ul]=d_pointline(acad,xall[0],y+35,xall[5],y+35)
    d_l(acad,dr,ur)
    d_l(acad,dl,ul)
    d_pointline(acad,xall[5],y+7,xall[2],y+7)
    d_pointline(acad,xall[5],y+14,xall[2],y+14)
    d_pointline(acad,xall[5],y+21,xall[0],y+21)
    d_pointline(acad,xall[2],y+28,xall[0],y+28)
    d_pointline(acad,xall[1],y,xall[1],y+21)
    d_pointline(acad,xall[2],y,xall[2],y+35)
    d_pointline(acad,xall[3],y,xall[3],y+21)
    d_pointline(acad,xall[4],y,xall[4],y+21)
    d_pointline(acad,xall[6],y+21,xall[6],y+35)
    d_pointline(acad,xall[7],y+21,xall[7],y+35)
    if type=='part':

        d_pointline(acad,xall[8],y+21,xall[8],y+35)
        d_pointline(acad,xall[9],y+21,xall[9],y+35)

    text='浙江大学 机电1503班'
    a=APoint((xall[0]+xall[1])/2-1.7*len(text)+2,y+2.25+7)
    acad.model.AddText(text, a, 2.5)

    text='机械设计课程设计'
    a=APoint((xall[2]+xall[1])/2-1.7*len(text),y+2.25+7)
    acad.model.AddText(text, a, 2.5)

    text='审阅'
    a=APoint((xall[4]+xall[5])/2-1.7*len(text),y+2.25)
    acad.model.AddText(text, a, 2.5)

    text='绘图'
    a=APoint((xall[4]+xall[5])/2-1.7*len(text),y+2.25+7)
    acad.model.AddText(text, a, 2.5)

    text='设计'
    a=APoint((xall[4]+xall[5])/2-1.7*len(text),y+2.25+14)
    acad.model.AddText(text, a, 2.5)

    text='王嘉川'
    a=APoint((xall[4]+xall[3])/2-1.7*len(text),y+2.25+14)
    acad.model.AddText(text, a, 2.5)

    text='18/4/23'
    a=APoint((xall[2]+xall[3])/2-0.7*len(text),y+2.25+14)
    acad.model.AddText(text, a, 2.5)

    text=name
    a=APoint((xall[2]+xall[5])/2-1.7*len(text),y+2.25+24.5)
    acad.model.AddText(text, a, 2.5)

    if type=='assemble':
        text='图号'
        a=APoint((xall[2]+xall[7])/2-1.7*len(text),y+2.25+28)
        acad.model.AddText(text, a, 2.5)

        text='比例'
        a=APoint((xall[2]+xall[7])/2-1.7*len(text),y+2.25+21)
        acad.model.AddText(text, a, 2.5)

        text='第  张'
        a=APoint((xall[6]+xall[0])/2-1.2*len(text),y+2.25+28)
        acad.model.AddText(text, a, 2.5)

        text='共  张'
        a=APoint((xall[6]+xall[0])/2-1.2*len(text),y+2.25+21)
        acad.model.AddText(text, a, 2.5)

    if type=='part':
        text='图号'
        a=APoint((xall[9]+xall[10])/2-1.7*len(text),y+2.25+28)
        acad.model.AddText(text, a, 2.5)

        text='材料'
        a=APoint((xall[9]+xall[10])/2-1.7*len(text),y+2.25+21)
        acad.model.AddText(text, a, 2.5)

        text='比例'
        a=APoint((xall[8]+xall[7])/2-1.7*len(text),y+2.25+28)
        acad.model.AddText(text, a, 2.5)

        text='数量'
        a=APoint((xall[8]+xall[7])/2-1.7*len(text),y+2.25+21)
        acad.model.AddText(text, a, 2.5)

        text='第  张'
        a=APoint((xall[6]+xall[0])/2-1.2*len(text),y+2.25+28)
        acad.model.AddText(text, a, 2.5)

        text='共  张'
        a=APoint((xall[6]+xall[0])/2-1.2*len(text),y+2.25+21)
        acad.model.AddText(text, a, 2.5)
コード例 #7
0
def hole(acad,x,y,d,D,m,b,flag):
    d1=1.6*d
    D1=D-8*m
    D0=0.5*(d1+D1)
    d0=0.25*(D1-d1)
    C=0.3*b
    if flag=='l':
        [l1,r1]=d_pointline(acad,x-D1/2-2,y+b/2,x-d1/2+2,y+b/2)
        [l2,r2]=d_pointline(acad,x-D1/2,y+b/2-2,x-d1/2,y+b/2-2)
        [l3,r3]=d_pointline(acad,x-D1/2,y+C/2,x-d1/2,y+C/2)
        d_l(acad,l1,l2)
        d_l(acad,r1,r2)
        d_l(acad,l3,l2)
        d_l(acad,r3,r2)
        [l4,r4]=d_pointline(acad,x-D1/2-2,y+-b/2,x-d1/2+2,y+-b/2)
        [l5,r5]=d_pointline(acad,x-D1/2,y+-b/2+2,x-d1/2,y+-b/2+2)
        [l6,r6]=d_pointline(acad,x-D1/2,y+-C/2,x-d1/2,y+-C/2)
        d_l(acad,l4,l5)
        d_l(acad,r4,r5)
        d_l(acad,l6,l5)
        d_l(acad,r6,r5)
        [l7,l8]=d_pointline(acad,x-(D0+d0)/2,y+C/2,x-(D0+d0)/2,y+-C/2)
        [r7,r8]=d_pointline(acad,x-(D0-d0)/2,y+C/2,x-(D0-d0)/2,y+-C/2)
        #中心线
        [midu,midd]=d_pointline(acad,x-D0/2,y+(b/2+2),x-D0/2,y-(b/2+2))
    if flag=='r':
        [l1,r1]=d_pointline(acad,x+(D1/2+2),y+b/2,x+(d1/2-2),y+b/2)
        [l2,r2]=d_pointline(acad,x+D1/2,y+b/2-2,x+d1/2,y+b/2-2)
        [l3,r3]=d_pointline(acad,x+D1/2,y+C/2,x+d1/2,y+C/2)
        d_l(acad,l1,l2)
        d_l(acad,r1,r2)
        d_l(acad,l3,l2)
        d_l(acad,r3,r2)
        [l4,r4]=d_pointline(acad,x+(D1/2+2),y+-b/2,x+(d1/2-2),y+-b/2)
        [l5,r5]=d_pointline(acad,x+D1/2,y+-b/2+2,x+d1/2,y+-b/2+2)
        [l6,r6]=d_pointline(acad,x+D1/2,y+-C/2,x+d1/2,y+-C/2)
        d_l(acad,l4,l5)
        d_l(acad,r4,r5)
        d_l(acad,l6,l5)
        d_l(acad,r6,r5)
        [l7,l8]=d_pointline(acad,x+(D0+d0)/2,y+C/2,x+(D0+d0)/2,y+-C/2)
        [r7,r8]=d_pointline(acad,x+(D0-d0)/2,y+C/2,x+(D0-d0)/2,y+-C/2)
        #中心线
        [midu,midd]=d_pointline(acad,x+D0/2,y+(b/2+2),x+D0/2,y-(b/2+2))
コード例 #8
0
def gear(acad,d,D,b,xm,ym,m,flag):

    r1=APoint(d/2+xm+2,ym+b/2)
    r2=APoint(d/2+xm+2,ym-b/2)
    r11=APoint(d/2+xm,ym+(b/2-2))
    r12=APoint(d/2+xm,ym-(b/2-2))
    r3=APoint(D/2-m*1.25+xm,ym+b/2)
    r4=APoint(D/2-m*1.25+xm,ym+-b/2)
    r5=APoint(D/2+xm,ym+b/2)
    r6=APoint(D/2+xm,ym+-b/2)
    r7=APoint(D/2+0.5*m+xm,ym+b/2)
    r8=APoint(D/2+0.5*m+xm,ym+-b/2)
    r9=APoint(D/2+m+xm,ym+b/2-0.5*m)
    r10=APoint(D/2+m+xm,ym-b/2+0.5*m)
    d_l(acad,r11,r12)
    d_l(acad,r11,r1)
    d_l(acad,r12,r2)
    d_l(acad,r2,r4)
    d_l(acad,r4,r6)
    d_l(acad,r6,r8)
    d_l(acad,r1,r3)
    d_l(acad,r3,r5)
    d_l(acad,r5,r7)
    d_l(acad,r3,r4)
    d_l(acad,r5,r6)
    d_l(acad,r8,r10)
    d_l(acad,r9,r7)
    d_l(acad,r9,r10)
    l1=APoint(-d/2+xm-2,ym+b/2)
    l2=APoint(-d/2+xm-2,ym+-b/2)
    l11=APoint(-d/2+xm,ym+(b/2-2))
    l12=APoint(-d/2+xm,ym-(b/2-2))
    l3=APoint(-D/2+m*1.25+xm,ym+b/2)
    l4=APoint(-D/2+m*1.25+xm,ym+-b/2)
    l5=APoint(-D/2+xm,ym+b/2)
    l6=APoint(-D/2+xm,ym+-b/2)
    l7=APoint(-D/2-0.5*m+xm,ym+b/2)
    l8=APoint(-D/2-0.5*m+xm,ym+-b/2)
    l9=APoint(-D/2-m+xm,ym+b/2-0.5*m)
    l10=APoint(-D/2-m+xm,ym-b/2+0.5*m)
    d_l(acad,l11,l12)
    d_l(acad,l12,l2)
    d_l(acad,l11,l1)
    d_l(acad,l2,l4)
    d_l(acad,l4,l6)
    d_l(acad,l6,l8)
    d_l(acad,l1,l3)
    d_l(acad,l3,l5)
    d_l(acad,l5,l7)
    d_l(acad,l3,l4)
    d_l(acad,l5,l6)
    d_l(acad,l8,l10)
    d_l(acad,l9,l7)
    d_l(acad,l9,l10)
    d_l(acad,l1,r1)
    d_l(acad,l2,r2)
    d_l(acad,l11,r11)
    d_l(acad,l12,r12)
    if flag:
        hole(acad,xm,ym,d,D,m,b,'l')
        hole(acad,xm,ym,d,D,m,b,'r')
コード例 #9
0
bearin=[25 ,35 ,45]
bearout=[52 ,72 ,85]
bearb=[15 ,17 ,19]
#长度间距
afx=(D[0]+D[1])/2
asx=(D[2]+D[3])/2
short=2.5#轴小于齿轮长度




#第三根轴
#中心线
top=APoint(afx+asx,broadth+60)
bot=APoint(afx+asx,-60)
d_l(acad,top,bot)
#中心轴肩
mx=afx+asx
my=B3-0.5*b[3]-0.5*midarm
rx=(d[2]+5+5+5)/2
ry=midarm/2
ul=APoint(mx-rx,my+ry)
ur=APoint(mx+rx,my+ry)
d_groove(acad,'u',mx,my,rx,ry)
d_l(acad,ul,ur)

#齿轮四
mx=afx+asx
my=B3-short/2
rx=(d[2]+5+5)/2
ry=(b[3]-short)/2
コード例 #10
0
def d_bear_sup(acad, x, y, c1, c2, L, d, D2, d2, a, b, delta, updown):

    if updown == 'd':
        [l1, l2] = d_pointline(acad, x - d / 2, y, x - d / 2, y - L)
        [r1, r2] = d_pointline(acad, x + d / 2, y, x + d / 2, y - L)
        [l3, l4] = d_pointline(acad, x - D2 / 2, y - c1 - c2 - delta,
                               x - D2 / 2, y - L)
        [r3, r4] = d_pointline(acad, x + D2 / 2, y - c1 - c2 - delta,
                               x + D2 / 2, y - L)
        d_l(acad, l1, r1)
        d_l(acad, l4, r4)
        Cl = APoint(x - D2 / 2, y - c1 - delta)
        d_c(acad, Cl, d2 / 2, 1)
        Cr = APoint(x + D2 / 2, y - c1 - delta)
        d_c(acad, Cr, d2 / 2, 1)
        ol1 = APoint(x - d / 2, y - a)
        [ol2, ol3] = d_pointline(acad, x - d / 2, y - (c1 + 3 + delta),
                                 x - (d / 2 + b), y - (c1 + 3 + delta))
        ol4 = APoint(x - (d / 2 + b), y - (a + b))
        d_l(acad, ol3, ol4)
        or1 = APoint(x + d / 2, y - a)
        [or2, or3] = d_pointline(acad, x + d / 2, y - (c1 + 3 + delta),
                                 x + (d / 2 + b), y - (c1 + 3 + delta))
        or4 = APoint(x + (d / 2 + b), y - (a + b))
        d_l(acad, or3, or4)
    if updown == 'u':
        [l1, l2] = d_pointline(acad, x - d / 2, y, x - d / 2, y + L)
        [r1, r2] = d_pointline(acad, x + d / 2, y, x + d / 2, y + L)
        [l3, l4] = d_pointline(acad, x - D2 / 2, y + c1 + c2 + delta,
                               x - D2 / 2, y + L)
        [r3, r4] = d_pointline(acad, x + D2 / 2, y + c1 + c2 + delta,
                               x + D2 / 2, y + L)
        d_l(acad, l1, r1)
        d_l(acad, l4, r4)
        Cl = APoint(x - D2 / 2, y + c1 + delta)
        d_c(acad, Cl, d2 / 2, 1)
        Cr = APoint(x + D2 / 2, y + c1 + delta)
        d_c(acad, Cr, d2 / 2, 1)
        ol1 = APoint(x - d / 2, y + a)
        [ol2, ol3] = d_pointline(acad, x - d / 2, y + (c1 + 3 + delta),
                                 x - (d / 2 + b), y + (c1 + 3 + delta))
        ol4 = APoint(x - (d / 2 + b), y + (a + b))
        d_l(acad, ol3, ol4)
        or1 = APoint(x + d / 2, y + a)
        [or2, or3] = d_pointline(acad, x + d / 2, y + (c1 + 3 + delta),
                                 x + (d / 2 + b), y + (c1 + 3 + delta))
        or4 = APoint(x + (d / 2 + b), y + (a + b))
        d_l(acad, or3, or4)
    return l1, r1, l3, r3, ol1, or1, ol4, or4
コード例 #11
0
def d_tank_f_oil_exit(acad, x, y, delta, bo2):
    #排油口
    d = 24
    D0 = 34
    L = 31
    l = 16
    a = 4
    D = 25.4
    S = 22
    d1 = 26
    H = 2
    gear = 2
    slot = 3
    width = 2 * delta
    widtha = 2 * delta + L - l + H
    [u1, u2] = d_pointline(acad, widtha + x, D / 2 + y, width + a + H + x,
                           D / 2 + y)
    d_pointline(acad, widtha + x, D / 6 + y, width + a + H + x, D / 6 + y)
    d_pointline(acad, widtha + x, -D / 6 + y, width + a + H + x, -D / 6 + y)
    [dn1, dn2] = d_pointline(acad, widtha + x, -D / 2 + y, width + a + H + x,
                             -D / 2 + y)
    d_l(acad, u1, dn1)
    [u3, dn3] = d_pointline(acad, width + a + H + x, -D0 / 2 + y,
                            width + a + H + x, D0 / 2 + y)
    [u4, dn4] = d_pointline(acad, width + H + x, -D0 / 2 + y, width + H + x,
                            D0 / 2 + y)
    d_l(acad, u3, u4)
    d_l(acad, dn3, dn4)
    d_pointline(acad, width + H + x, (d - slot) / 2 + y, width + x,
                (d - slot) / 2 + y)
    d_pointline(acad, width + H + x, -(d - slot) / 2 + y, width + x,
                -(d - slot) / 2 + y)
    [u6, u9] = d_pointline(acad, width + x, (d - gear) / 2 + y,
                           widtha + x - (L), (d - gear) / 2 + y)
    [dn6, dn9] = d_pointline(acad, width + x, -(d - gear) / 2 + y,
                             widtha + x - (L), -(d - gear) / 2 + y)
    [u7, u8] = d_pointline(acad, width + x, (d) / 2 + y,
                           widtha + x - (L - gear), (d) / 2 + y)
    [dn7, dn8] = d_pointline(acad, width + x, -(d) / 2 + y,
                             widtha + x - (L - gear), -(d) / 2 + y)
    d_l(acad, u6, dn6)
    d_l(acad, u9, dn9)
    d_l(acad, u8, dn8)
    d_l(acad, u8, u9)
    d_l(acad, dn8, dn9)

    #垫片
    d_pointline(acad, width + H + x, (d1) / 2 + y, width + x, (d1) / 2 + y)
    d_pointline(acad, width + H + x, -(d1) / 2 + y, width + x, -(d1) / 2 + y)
    [u4, u5] = d_pointline(acad, width + H + x, (D0) / 2 + y, width + x,
                           (D0) / 2 + y)
    [dn4, dn5] = d_pointline(acad, width + H + x, -(D0) / 2 + y, width + x,
                             -(D0) / 2 + y)
    d_l(acad, u5, u6)
    d_l(acad, dn5, dn6)

    #螺纹孔
    u10 = APoint(x + delta, y + D0 / 2 + delta)
    d_arc([
        u10.x, u10.y, u10.x + (1 - 0.5**0.5) * delta,
        u10.y - (0.5**0.5) * delta, u10.x + delta, u10.y - delta
    ])
    d_pointline(acad, x, (d - gear) / 2 + y, widtha + x - (L),
                (d - gear) / 2 + y)
    d_pointline(acad, x, -(d - gear) / 2 + y, widtha + x - (L),
                -(d - gear) / 2 + y)
    [u11, dn11] = d_pointline(acad, x, (d) / 2 + y, x, -(d) / 2 + y)
    d_l(acad, u11, u8)
    d_l(acad, dn11, dn8)
    arcr = 2
    logbottom = 10
    dlog1 = APoint(x - logbottom, y - d / 2)
    d_l(acad, dlog1, dn11)
    dlog2 = APoint(x - arcr, y - (d - gear) / 2)
    dout = APoint(x + width, y - D0 / 2)
    arcrb = delta + (d - gear) / 2 - D0 / 2
    [dout1, dout2] = d_pointline(acad, dout.x - arcrb, dout.y - arcrb,
                                 dout.x - arcrb, y - (d - gear) / 2 - bo2)
    arc = [
        dlog2.x, dlog2.y, dlog2.x + 0.5**0.5 * arcr,
        dlog2.y + (1 - 0.5**0.5) * arcr, dlog2.x + arcr, dlog2.y + arcr,
        dlog1.x, dlog1.y, dlog1.x - 0.5**0.5 * gear / 2,
        dlog1.y + (1 - 0.5**0.5) * gear / 2, dlog1.x - gear / 2,
        dlog1.y + gear / 2, dout.x, dout.y, dout.x - 0.5**0.5 * arcrb,
        dout.y - (1 - 0.5**0.5) * arcrb, dout.x - arcrb, dout.y - arcrb
    ]
    d_arc(arc)
    return u10, u11, dlog2, dout1, dout2
コード例 #12
0
def d_tank_u(acad, up, down, left, right, xs, c1, c2, ds, Ss, d1, d2, pind, L,
             S2, delta):
    #箱体俯视图总
    a = 7
    b = 6
    ys = [up, down, up, down, up, down]
    updown = ['u', 'd', 'u', 'd', 'u', 'd']
    dot = [[0 for i in range(8)] for k in range(len(updown))]
    for i in range(len(xs)):
        x = xs[i]
        d = ds[i]
        S = Ss[i]
        dot[i * 2] = d_bear_sup(acad, x, ys[2 * i], c1[1], c2[1], L[1] + delta,
                                d, S, d1, a, b, delta, updown[2 * i])
        dot[i * 2 + 1] = d_bear_sup(acad, x, ys[2 * i + 1], c1[1], c2[1],
                                    L[1] + delta, d, S, d1, a, b, delta,
                                    updown[2 * i + 1])

    for i in range(len(updown) - 2):
        d_l(acad, dot[i][1], dot[i + 2][0])
        d_l(acad, dot[i][3], dot[i + 2][2])
        d_l(acad, dot[i][5], dot[i + 2][4])
        d_l(acad, dot[i][7], dot[i + 2][6])

    [l1, l2] = d_pointline(acad, left, down, left, up)
    [l3, l4] = d_pointline(acad, left - (c1[2] + c2[2] + delta),
                           down - (c1[1] + c2[1] + delta),
                           left - (c1[2] + c2[2] + delta),
                           up + (c1[1] + c2[1] + delta))
    [lo1, lo2] = d_pointline(acad, left - a, down - a, left - a, up + a)
    [lo3, lo4] = d_pointline(acad, left - (a + b), down - (a + b),
                             left - (a + b), up + (a + b))
    d_l(acad, l4, dot[0][2])
    d_l(acad, l3, dot[1][2])
    d_l(acad, l2, dot[0][0])
    d_l(acad, l1, dot[1][0])
    d_l(acad, lo4, dot[0][6])
    d_l(acad, lo3, dot[1][6])
    d_l(acad, lo2, dot[0][4])
    d_l(acad, lo1, dot[1][4])

    mid = 0.5 * (up + down)
    l5 = APoint(left - (c1[2] + delta), S2 / 2 + mid)
    l6 = APoint(left - (c1[2] + delta), -S2 / 2 + mid)
    d_c(acad, l5, d2 / 2, 1)
    d_c(acad, l6, d2 / 2, 1)

    [r1, r2] = d_pointline(acad, right, down, right, up)
    [r3, r4] = d_pointline(acad, right + (c1[2] + c2[2] + delta),
                           down - (c1[1] + c2[1] + delta),
                           right + (c1[2] + c2[2] + delta),
                           up + (c1[1] + c2[1] + delta))
    [ro1, ro2] = d_pointline(acad, right + a, down - a, right + a, up + a)
    [ro3, ro4] = d_pointline(acad, right + (a + b), down - (a + b),
                             right + (a + b), up + (a + b))
    d_l(acad, r4, dot[len(updown) - 2][3])
    d_l(acad, r3, dot[len(updown) - 1][3])
    d_l(acad, r2, dot[len(updown) - 2][1])
    d_l(acad, r1, dot[len(updown) - 1][1])
    d_l(acad, ro4, dot[len(updown) - 2][7])
    d_l(acad, ro3, dot[len(updown) - 1][7])
    d_l(acad, ro2, dot[len(updown) - 2][5])
    d_l(acad, ro1, dot[len(updown) - 1][5])

    mid = 0.5 * (up + down)
    r5 = APoint(right + c1[2] + delta, S2 / 2 + mid)
    r6 = APoint(right + c1[2] + delta, -S2 / 2 + mid)
    d_c(acad, r5, d2 / 2, 1)
    d_c(acad, r6, d2 / 2, 1)

    #销钉
    p1 = APoint(right + c1[2] + delta, down - (c1[1] + delta))
    d_c(acad, p1, pind / 2, 1)
    p2 = APoint(left - (c1[2] + delta), up + c1[1] + delta)
    d_c(acad, p2, pind / 2, 1)

    #起盖螺钉
    upc = APoint(left - (c1[2] + delta), -S2 / 4 + mid)
    d_c(acad, upc, d2 / 2, 1)
コード例 #13
0
def d_bearing(acad, x, y1, y2, bin, bout, bb):
    #下
    pin1 = APoint(x - bin / 2, y1 + bb / 2)
    pin2 = APoint(x - bin / 2, y1 - bb / 2)
    pin3 = APoint(x + bin / 2, y1 + bb / 2)
    pin4 = APoint(x + bin / 2, y1 - bb / 2)
    d_l(acad, pin1, pin2)
    d_l(acad, pin4, pin2)
    d_l(acad, pin3, pin4)
    d_l(acad, pin1, pin3)
    pout1 = APoint(x - bout / 2, y1 + bb / 2)
    pout2 = APoint(x - bout / 2, y1 - bb / 2)
    d_l(acad, pout1, pout2)
    d_l(acad, pout1, pin1)
    d_l(acad, pout2, pin2)
    d_l(acad, pout1, pin2)
    d_l(acad, pout2, pin1)
    w = (bout - bin) / 2
    pr1 = APoint(x + bout / 2 - w / 2, y1 + bb / 2)
    d_l(acad, pr1, pin3)
    pr2 = APoint(x + bout / 2 - w / 2, y1 + bb / 4)
    d_l(acad, pr1, pr2)

    pr3 = APoint(x + bout / 2, y1 + bb / 4)
    pr4 = APoint(x + bout / 2, y1 - bb / 2)
    d_l(acad, pr4, pr3)
    pr5 = APoint(x + bout / 2 - w * 5 / 8, y1 - bb / 2)
    d_l(acad, pr5, pr4)
    pr6 = APoint(x + bout / 2 - w / 8, y1 + bb / 4)
    d_l(acad, pr6, pr3)
    d_l(acad, pr6, pr5)
    pr7 = APoint(x + bin / 2 + w * 3 / 8, y1 + 3 / 8 * bb)
    pr8 = APoint(x + bout / 2,
                 y1 + 3 / 8 * bb - tan(3.1416 * 25 / 180) * w * 5 / 8)
    d_l(acad, pr7, pr8)
    pr9 = APoint(x + bin / 2 + w / 8, y1 - bb / 2)
    d_l(acad, pr9, pr2)
    d_l(acad, pr9, pin4)
    pr10 = APoint(x + bin / 2 + w / 8, y1 - bb / 4)
    d_l(acad, pr10, pr7)
    pr11 = APoint(x + bin / 2 + w / 8 + tan(3.1416 * (65 / 180)) * bb / 4,
                  y1 - bb / 2)
    d_l(acad, pr10, pr11)
    pr12 = APoint(x + bin / 2 + w * 3 / 16, y1 - bb / 2)
    pr13 = APoint(x + bin / 2 + w * 3 / 16 + tan(3.1416 * (25 / 180)) * bb,
                  y1 + bb / 2)
    d_l(acad, pr12, pr13)

    #上
    pin1 = APoint(x - bin / 2, y2 - bb / 2)
    pin2 = APoint(x - bin / 2, y2 + bb / 2)
    pin3 = APoint(x + bin / 2, y2 - bb / 2)
    pin4 = APoint(x + bin / 2, y2 + bb / 2)
    d_l(acad, pin1, pin2)
    d_l(acad, pin4, pin2)
    d_l(acad, pin3, pin4)
    d_l(acad, pin1, pin3)
    pout1 = APoint(x - bout / 2, y2 - bb / 2)
    pout2 = APoint(x - bout / 2, y2 + bb / 2)
    d_l(acad, pout1, pout2)
    d_l(acad, pout1, pin1)
    d_l(acad, pout2, pin2)
    d_l(acad, pout1, pin2)
    d_l(acad, pout2, pin1)
    w = (bout - bin) / 2
    pr1 = APoint(x + bout / 2 - w / 2, y2 - bb / 2)
    d_l(acad, pr1, pin3)
    pr2 = APoint(x + bout / 2 - w / 2, y2 - bb / 4)
    d_l(acad, pr1, pr2)

    pr3 = APoint(x + bout / 2, y2 - bb / 4)
    pr4 = APoint(x + bout / 2, y2 + bb / 2)
    d_l(acad, pr4, pr3)
    pr5 = APoint(x + bout / 2 - w * 5 / 8, y2 + bb / 2)
    d_l(acad, pr5, pr4)
    pr6 = APoint(x + bout / 2 - w / 8, y2 - bb / 4)
    d_l(acad, pr6, pr3)
    d_l(acad, pr6, pr5)
    pr7 = APoint(x + bin / 2 + w * 3 / 8, y2 - 3 / 8 * bb)
    pr8 = APoint(x + bout / 2,
                 y2 - 3 / 8 * bb + tan(3.1416 * 25 / 180) * w * 5 / 8)
    d_l(acad, pr7, pr8)
    pr9 = APoint(x + bin / 2 + w / 8, y2 + bb / 2)
    d_l(acad, pr9, pr2)
    d_l(acad, pr9, pin4)
    pr10 = APoint(x + bin / 2 + w / 8, y2 + bb / 4)
    d_l(acad, pr10, pr7)
    pr11 = APoint(x + bin / 2 + w / 8 + tan(3.1416 * (65 / 180)) * bb / 4,
                  y2 + bb / 2)
    d_l(acad, pr10, pr11)
    pr12 = APoint(x + bin / 2 + w * 3 / 16, y2 + bb / 2)
    pr13 = APoint(x + bin / 2 + w * 3 / 16 + tan(3.1416 * (25 / 180)) * bb,
                  y2 - bb / 2)
    d_l(acad, pr12, pr13)
コード例 #14
0
def d_bolt_u(acad, x, y, e, k, dire, all=0):
    oc = 1.5
    if dire == 'u':
        [b1, u1] = d_pointline(acad, x - e / 2, y, x - e / 2, y + (k - oc))
        [b2, u2] = d_pointline(acad, x - e / 4, y, x - e / 4, y + (k - oc))
        [b3, u3] = d_pointline(acad, x + e / 4, y, x + e / 4, y + (k - oc))
        [b4, u4] = d_pointline(acad, x + e / 2, y, x + e / 2, y + (k - oc))
        [c1, c2] = d_pointline(acad, x - (e / 2 - oc), y + k, x + (e / 2 - oc),
                               y + k)
        d_l(acad, b1, b4)
        d_l(acad, u1, u4)
        d_l(acad, c1, u1)
        d_l(acad, c2, u4)
    if dire == 'd':
        [b1, u1] = d_pointline(acad, x - e / 2, y, x - e / 2, y - (k - oc))
        [b2, u2] = d_pointline(acad, x - e / 4, y, x - e / 4, y - (k - oc))
        [b3, u3] = d_pointline(acad, x + e / 4, y, x + e / 4, y - (k - oc))
        [b4, u4] = d_pointline(acad, x + e / 2, y, x + e / 2, y - (k - oc))
        [c1, c2] = d_pointline(acad, x - (e / 2 - oc), y - k, x + (e / 2 - oc),
                               y - k)
        d_l(acad, b1, b4)
        d_l(acad, u1, u4)
        d_l(acad, c1, u1)
        d_l(acad, c2, u4)
    if all:
        pass
コード例 #15
0
def d_groovea(acad, flag, up, down, left, right):
    ul = APoint(left, up)
    ur = APoint(right, up)
    dl = APoint(left, down)
    dr = APoint(right, down)
    if flag == 'u':
        d_l(acad, ul, dl)
        d_l(acad, dl, dr)
        d_l(acad, dr, ur)

    elif flag == 'd':
        d_l(acad, ul, dl)
        d_l(acad, dr, ur)
        d_l(acad, ur, ul)

    elif flag == 'l':
        d_l(acad, dl, dr)
        d_l(acad, dr, ur)
        d_l(acad, ur, ul)

    elif flag == 'r':
        d_l(acad, ul, dl)
        d_l(acad, dl, dr)
        d_l(acad, ur, ul)

    else:
        print("错误指定开口方向")
コード例 #16
0
def d_tank_f(acad, xs, y, Ss, h, ribb, H, c1, c2, bo0, bo1, bo2, D, delta4,
             delt1, delta, m, ndf, df):
    #箱体前视图总

    #与轴承盖接触圆
    dot = [[0 for i in range(6)] for k in range(len(xs))]
    for i in range(len(xs)):
        x = xs[i]
        S = Ss[i]
        dot[i] = d_tank_f_bearcap(acad, x, y, S, h, ribb, H - bo2)

    #凸台
    for i in range(len(xs) - 1):
        d_l(acad, dot[i][1], dot[i + 1][0])
        d_l(acad, dot[i][3], dot[i + 1][2])

    [l1, l3] = d_pointline(acad, xs[0] - (Ss[0] / 2 + c2[1]) - (h - bo0) / 10,
                           y + bo1, xs[0] - (Ss[0] / 2 + c2[1]), y + h)
    [l2, l4] = d_pointline(acad, xs[0] - (Ss[0] / 2 + c2[1]) - (h - bo0) / 10,
                           y - bo0, xs[0] - (Ss[0] / 2 + c2[1]), y - h)
    d_l(acad, dot[0][0], l3)
    d_l(acad, dot[0][2], l4)

    [r1, r3] = d_pointline(acad, xs[2] + (Ss[2] / 2 + c2[1]) + (h - bo0) / 10,
                           y + bo1, xs[2] + (Ss[2] / 2 + c2[1]), y + h)
    [r2, r4] = d_pointline(acad, xs[2] + (Ss[2] / 2 + c2[1]) + (h - bo0) / 10,
                           y - bo0, xs[2] + (Ss[2] / 2 + c2[1]), y - h)
    d_l(acad, dot[len(xs) - 1][1], r3)
    d_l(acad, dot[len(xs) - 1][3], r4)

    left = xs[0] - D[0] / 2 - delta4 - delta
    [l4, l5] = d_pointline(acad, xs[0] - (Ss[0]**2 / 4 - bo1**2)**0.5, y + bo1,
                           left - c1[2] - c2[2], y + bo1)
    [l6, l7] = d_pointline(acad, xs[0] - (Ss[0]**2 / 4 - bo0**2)**0.5, y - bo0,
                           left - c1[2] - c2[2], y - bo0)
    d_l(acad, l5, l7)

    right = xs[2] + D[3] / 2 + delt1 + delta
    [r4, r5] = d_pointline(acad, xs[2] + (Ss[2]**2 / 4 - bo1**2)**0.5, y + bo1,
                           right + c1[2] + c2[2], y + bo1)
    [r6, r7] = d_pointline(acad, xs[2] + (Ss[2]**2 / 4 - bo0**2)**0.5, y - bo0,
                           right + c1[2] + c2[2], y - bo0)
    d_l(acad, r5, r7)

    for i in range(len(xs) - 1):
        d_pointline(acad, xs[i] + Ss[i] / 2, y, xs[i + 1] - Ss[i + 1] / 2, y)
    d_pointline(acad, xs[0] - Ss[0] / 2, y, left - c1[2] - c2[2], y)
    d_pointline(acad, xs[2] + Ss[2] / 2, y, right + c1[2] + c2[2], y)

    #箱座
    #油箱油高度 坐标
    oilheight = 50 + 2.25 * m
    oilcord = -H + bo2 + oilheight
    #游标插入位置
    xita = -3.1415926535 / 4
    xoilgauge = right - delta - 15 * sin(xita)
    yoilgauge = y + oilcord + cos(xita) * 30
    d_oil_gauge(acad, xoilgauge, yoilgauge, xita)

    Din = 30
    Dind = 20
    #插入口
    xopen = [
        -33 + 10 / cos(xita), 33 - 10 / cos(xita), -Din / 2, Din / 2, -Din / 2,
        Din / 2, -Dind / 2, Dind / 2, -Dind / 2, Dind / 2, 33 - 10 / cos(xita)
    ]
    yopen = [
        15 + 3, 15 + 3, 15 + 3, 15 + 3, 15, 15, 15, 15, -5, -25,
        18 - 2 * (33 - 10 / cos(xita))
    ]
    xopennew = []
    yopennew = []
    for i in range(len(xopen)):
        xopennew.append(xopen[i] * cos(xita) - yopen[i] * sin(xita) +
                        xoilgauge)
        yopennew.append(xopen[i] * sin(xita) + yopen[i] * cos(xita) +
                        yoilgauge)
    d_pointline(acad, xopennew[0], yopennew[0], xopennew[1], yopennew[1])
    d_pointline(acad, xopennew[2], yopennew[2], xopennew[4], yopennew[4])
    d_pointline(acad, xopennew[3], yopennew[3], xopennew[5], yopennew[5])
    d_pointline(acad, xopennew[4], yopennew[4], xopennew[5], yopennew[5])
    d_pointline(acad, xopennew[6], yopennew[6], xopennew[8], yopennew[8])
    d_pointline(acad, xopennew[7], yopennew[7], xopennew[9], yopennew[9])
    d_pointline(acad, xopennew[8], yopennew[8], xopennew[9], yopennew[9])
    d_pointline(acad, xopennew[1], yopennew[1], xopennew[10], yopennew[10])

    #排油孔
    #p85
    [ur, ul, dlog2, dout1,
     dout2] = d_tank_f_oil_exit(acad, right - delta, -H + 12 - 1 + bo2 + y,
                                delta, bo2)

    #连接
    d_pointline(acad, ul.x, ul.y, xopennew[-2], yopennew[-2])
    d_pointline(acad, ur.x, ur.y, xopennew[-1], yopennew[-1])

    #现在上面的剖面线端点为
    sul = APoint(xopennew[-3], yopennew[-3])
    sur = APoint(xopennew[0], yopennew[0])
    #油箱内壁、箱底壁、箱底
    #dlog2,dout1,dout2

    #玩蛇~
    spul = APoint(sul.x, sul.y + 50 + random.random() * 10)
    spur = APoint(sur.x, sur.y + 10 + random.random() * 10)
    spd1 = APoint(dlog2.x - 50 - 10 * random.random(), dlog2.y)
    spd2 = APoint(dout1.x - 70 - 10 * random.random(), dout1.y)
    spd3 = APoint(dout2.x - 70 - 10 * random.random(), dout2.y)
    d_l(acad, spul, sul)
    d_l(acad, spur, sur)
    d_l(acad, spd1, dlog2)
    d_l(acad, spd2, dout1)
    d_l(acad, spd3, dout2)
    trans = APoint(spd2.x - 10 * random.random(),
                   spul.y + 10 * random.random())
    d_spl([
        spur.x,
        spur.y,
        spul.x,
        spul.y,
        trans.x,
        trans.y,
        spd1.x,
        spd1.y,
        spd2.x,
        spd2.y,
        spd3.x,
        spd3.y,
    ])

    #底座
    arc1 = 2
    dfS = 100
    nd = ndf // 2
    long = (right - left - dfS) / (nd - 1)
    pdu = APoint(left + arc1, y - H + bo2)
    d_l(acad, pdu, spd1)
    [pdu2, pd1] = d_pointline(acad, left, y - H + bo2 - arc1, left, y - H)
    pd = ['' for i in range(4 * nd)]
    arc2 = bo2 - delta
    for i in range(nd - 1):
        [pd[i], pd[i + 1]] = d_pointline(acad, left + i * long, y - H,
                                         left + i * long + dfS, y - H)
        [pd[i + 2],
         pd[i + 3]] = d_pointline(acad, left + i * long + dfS + bo2 - delta,
                                  y - H + bo2 - delta,
                                  left + (i + 1) * long - (bo2 - delta),
                                  y - H + bo2 - delta)
        ca1 = APoint(i * long + dfS + arc2 + left, y - H)
        ca2 = APoint((i + 1) * long - arc2 + left, y - H)
        d_arc([
            ca1.x - arc2, ca1.y, ca1.x - 0.5**0.5 * arc2,
            ca1.y + 0.5**0.5 * arc2, ca1.x, ca1.y + arc2, ca2.x + arc2, ca2.y,
            ca2.x + 0.5**0.5 * arc2, ca2.y + 0.5**0.5 * arc2, ca2.x,
            ca2.y + arc2
        ])
        d_pointline(acad, left + dfS / 2 + i * long, y - H - 2,
                    left + dfS / 2 + i * long, y - H + 2 + bo2)
    d_pointline(acad, left + dfS / 2 + (nd - 1) * long, y - H - 2,
                left + dfS / 2 + (nd - 1) * long, y - H + 2 + bo2)
    d_pointline(acad, spd3.x, spd3.y, right - dfS, y - H)
    ca1 = APoint(pdu.x, pdu.y - arc1)
    d_arc([
        ca1.x - arc1, ca1.y, ca1.x - 0.5**0.5 * arc1, ca1.y + 0.5**0.5 * arc1,
        ca1.x, ca1.y + arc1
    ])
    #螺栓
    d_pointline(acad, left + dfS / 2 + long - df / 2, y - H,
                left + dfS / 2 + long - df / 2, y - H + bo2 - 5)
    d_pointline(acad, left + dfS / 2 + long + df / 2, y - H,
                left + dfS / 2 + long + df / 2, y - H + bo2 - 5)
    [pdsul, pdsdl] = d_pointline(acad, left + dfS / 2 + long - df, y - H + bo2,
                                 left + dfS / 2 + long - df, y - H + bo2 - 5)
    [pdsur, pdsdr] = d_pointline(acad, left + dfS / 2 + long + df, y - H + bo2,
                                 left + dfS / 2 + long + df, y - H + bo2 - 5)
    d_l(acad, pdsdl, pdsdr)
コード例 #17
0
def d_groove(acad, flag, mx, my, rx, ry):
    ul = APoint(mx - rx, my + ry)
    ur = APoint(mx + rx, my + ry)
    dl = APoint(mx - rx, my - ry)
    dr = APoint(mx + rx, my - ry)
    if flag == 'u':
        d_l(acad, ul, dl)
        d_l(acad, dl, dr)
        d_l(acad, dr, ur)

    elif flag == 'd':
        d_l(acad, ul, dl)
        d_l(acad, dr, ur)
        d_l(acad, ur, ul)

    elif flag == 'l':
        d_l(acad, dl, dr)
        d_l(acad, dr, ur)
        d_l(acad, ur, ul)

    elif flag == 'r':
        d_l(acad, ul, dl)
        d_l(acad, dl, dr)
        d_l(acad, ur, ul)

    else:
        print("错误指定开口方向")
コード例 #18
0
def d_pointline(acad, x1, y1, x2, y2):
    a = APoint(x1, y1)
    b = APoint(x2, y2)
    d_l(acad, a, b)
    return a, b