Esempio n. 1
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
Esempio n. 2
0
def assemble(acad,x,y,k,mess):
    xall=[]
    xall.append(x)
    xall.append(xall[0]-25)
    xall.append(xall[1]-40)
    xall.append(xall[2]-20)
    xall.append(xall[3]-10)
    xall.append(xall[4]-45)
    xall.append(xall[5]-10)

    for i in range(k+2):
        d_pointline(acad,xall[0],y+i*7,xall[-1],y+i*7)
    for i in range(7):
        d_pointline(acad,xall[i],y,xall[i],y+(k+1)*7)

    item=['序号','名称','数量','材料','标准','备注']
    for i in range(6):
        a=APoint((xall[6-i]+xall[5-i])/2-3.5,y+2.25)
        acad.model.AddText(item[i], a, 2.5)

    for i in range(k):
        for j in range(6):
            if j==1:
                left=1.7*len(mess[i][j])
            else:
                if type(mess[i][j])==float:
                    left=0.7*len(str(mess[i][j]))-1.4
                else:
                    left=1*len(mess[i][j])

            a=APoint((xall[6-j]+xall[5-j])/2-left,y+2.25+i*7+7)
            acad.model.AddText(mess[i][j], a, 2.5)
Esempio n. 3
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
Esempio n. 4
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))
Esempio n. 5
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)
Esempio n. 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)
Esempio n. 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))
Esempio n. 8
0
right=afx+asx+(bearin[2])/2
up=B3+C3+bearb[2]/2
down=B3+b[3]/2-short
d_groovea(acad,'d',up,down,left,right)


#下轴承
mx=afx+asx
my=0
rx=(bearin[2])/2
ry=bearb[2]/2
d_groove(acad,'u',mx,my,rx,ry)

#下轴承轴肩
left=afx+asx-(d[2]+5+3)/2
right=afx+asx+(d[2]+5+3)/2
up=B3-b[3]/2-midarm
down=bearb[2]/2
d_groovea(acad,'u',up,down,left,right)

#伸出端
[ul,dl]=d_pointline(acad,afx+asx-(d[2]/2+1.25),-bearb[2]/2,afx+asx-(d[2]/2+1.25),-(bearb[2]/2+60))
[ur,dr]=d_pointline(acad,afx+asx+(d[2]/2+1.25),-bearb[2]/2,afx+asx+(d[2]/2+1.25),-(bearb[2]/2+60))
d_l(acad,dl,dr)

#联轴
[ul,dl]=d_pointline(acad,afx+asx-(d[2]/2),-(bearb[2]/2+60),afx+asx-(d[2]/2),-(bearb[2]/2+120))
[ur,dr]=d_pointline(acad,afx+asx+(d[2]/2),-(bearb[2]/2+60),afx+asx+(d[2]/2),-(bearb[2]/2+120))
d_l(acad,dl,dr)
d_key(acad,(ul.x+ur.x)/2,(ul.y+dl.y)/2,(ul.y-dl.y)-20,12)
Esempio n. 9
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)
Esempio n. 10
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
Esempio n. 11
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)
Esempio n. 12
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
Esempio n. 13
0
#上轴承
mx = 0
my = A1 + B1
rx = (bearin[0]) / 2
ry = bearb[0] / 2
d_groove(acad, 'd', mx, my, rx, ry)

#上轴承轴肩
left = -(d[0] + 5 + 3) / 2
right = (d[0] + 5 + 3) / 2
up = A1 + B1 - bearb[0] / 2
down = A1 + b[0] / 2 + midarm
d_groovea(acad, 'd', up, down, left, right)

#伸出端
[dl, ul] = d_pointline(acad, 0 - (d[0] / 2 + 1.25), broadth + bearb[0] / 2,
                       0 - (d[0] / 2 + 1.25), broadth + bearb[0] / 2 + 60)
[dr, ur] = d_pointline(acad, 0 + (d[0] / 2 + 1.25), broadth + bearb[0] / 2,
                       0 + (d[0] / 2 + 1.25), broadth + bearb[0] / 2 + 60)
d_l(acad, ul, ur)

#联轴
[dl, ul] = d_pointline(acad, 0 - (d[0] / 2), broadth + bearb[0] / 2 + 60,
                       0 - (d[0] / 2), broadth + bearb[0] / 2 + 120)
[dr, ur] = d_pointline(acad, 0 + (d[0] / 2), broadth + bearb[0] / 2 + 60,
                       0 + (d[0] / 2), broadth + bearb[0] / 2 + 120)
d_l(acad, ul, ur)
d_key(acad, (dl.x + dr.x) / 2, (ul.y + dl.y) / 2, (ul.y - dl.y) - 20, 6)

#第二根轴
#中心线
top = APoint(afx, broadth + 60)
Esempio n. 14
0
def d_oil_gauge(acad, xm, ym, xita=-3.1415926535 / 4):
    d = 20
    d2 = 20
    d3 = 8
    h = 42
    a = 15
    b = 10
    c = 6
    D = 32
    D1 = 26
    sl = 1
    ups = 20
    inoil = 20
    bot = 30
    x = [
        -(D - sl) / 2,
        (D - sl) / 2, -(D) / 2, (D) / 2, -(D) / 2, (D) / 2, -(D - sl) / 2,
        (D - sl) / 2, -(D1) / 2, (D1) / 2, -(D1) / 2, (D1) / 2, -(d - sl) / 2,
        (d - sl) / 2, -(d - sl) / 2, (d - sl) / 2, -(d) / 2, (d) / 2, -(d) / 2,
        (d) / 2, -d3 / 2, d3 / 2, -d3 / 2, d3 / 2, -d3 / 2, d3 / 2, -d3 / 2,
        d3 / 2
    ]
    y = [
        h, h, h - sl, h - sl, h - b + sl, h - b + sl, h - b, h - b, a + c,
        a + c, a, a, a, a, a - sl, a - sl, a - sl, a - sl, (d - d3) / 2,
        (d - d3) / 2, 0, 0, -ups, -ups, -(inoil + ups), -(inoil + ups),
        -(inoil + ups + bot), -(inoil + ups + bot)
    ]
    #辅助线
    x.append(0)
    x.append(0)
    y.append(-(inoil + ups + bot + 2))
    y.append(h + 2)

    #坐标变换
    #旋转角度并移动位置

    xnew = []
    ynew = []
    for i in range(len(x)):
        xnew.append(x[i] * cos(xita) - y[i] * sin(xita) + xm)
        ynew.append(x[i] * sin(xita) + y[i] * cos(xita) + ym)

    for i in range(0, len(xnew) - 2, 2):
        d_pointline(acad, xnew[i], ynew[i], xnew[i + 1], ynew[i + 1])
        if i == 6 or i == 10 or i == 14 or i == 26:
            pass
        else:
            d_pointline(acad, xnew[i], ynew[i], xnew[i + 2], ynew[i + 2])
            d_pointline(acad, xnew[i + 1], ynew[i + 1], xnew[i + 3],
                        ynew[i + 3])
    d_pointline(acad, xnew[28], ynew[28], xnew[29], ynew[29])

    #画圆弧,命令导出到log文件

    arc = [
        -D1 / 2, a + c, -d2 / 2, (h - (b + c + a - sl)) / 2 + a + c,
        -(D - sl) / 2, h - b, D1 / 2, a + c, d2 / 2,
        (h - (b + c + a - sl)) / 2 + a + c, (D - sl) / 2, h - b
    ]
    arcnew = []
    for i in range(len(arc) // 2):
        arcnew.append(arc[i * 2] * cos(xita) - arc[i * 2 + 1] * sin(xita) + xm)
        arcnew.append(arc[i * 2] * sin(xita) + arc[i * 2 + 1] * cos(xita) + ym)

    d_arc(arcnew)