示例#1
0
def SelectTexts():
    cor1 = Point2D()
    cor2 = Point2D()
    res = kcs_ui.point2D_req("请选择区域左上角", cor1)
    if res[0] == kcs_util.ok():
        res = kcs_ui.point2D_req("请选择区域右下角", cor2)
        if res[0] == kcs_util.ok():
            rect = Rectangle2D(cor1, cor2)
            region = CaptureRegion2D()
            region.SetRectangle(rect)
            region.Inside = 1
            region.Cut = 1
            hds = kcs_draft.text_capture(region)
            return hds
    return
示例#2
0
def Grid():
    """Create a grid on a new view"""
    res=kcs_ui.string_req('请输入格子的长,宽、列数,行数','30,10,8,5')
    if res[0]==kcs_util.ok():
        w,h,m,n=[float(i) for i in res[1].split(',')]
        pt=Point2D()
        res=kcs_ui.point2D_req('请选择Grid左上角位置,回车设为原点',pt)
        if res[0]==kcs_util.ok():
            csm=CurrentSubpictureManager()
            hd=kcs_draft.view_new('')
            csm.Set(hd)
            for i in range(n+1):    #horizontal line
                p1=Point2D(pt.X,pt.Y-h*i)
                p2=Point2D(pt.X+w*m,pt.Y-h*i)
                kcs_draft.line_new(Rline2D(p1,p2))
            for j in range(m+1):    #vertical line
                p1=Point2D(pt.X+j*w,pt.Y)
                p2=Point2D(pt.X+j*w,pt.Y-h*n)
                kcs_draft.line_new(Rline2D(p1,p2))
            csm.Back()
        elif res[0]==kcs_util.operation_complete():
            pt=Point2D(0,0)
            csm=CurrentSubpictureManager()
            hd=kcs_draft.view_new('')
            csm.Set(hd)
            for i in range(n+1):    #horizontal line
                p1=Point2D(pt.X,pt.Y-h*i)
                p2=Point2D(pt.X+w*m,pt.Y-h*i)
                kcs_draft.line_new(Rline2D(p1,p2))
            for j in range(m+1):    #vertical line
                p1=Point2D(pt.X+j*w,pt.Y)
                p2=Point2D(pt.X+j*w,pt.Y-h*n)
                kcs_draft.line_new(Rline2D(p1,p2))
            csm.Back()
示例#3
0
def Point3DCoord():
    "show the coordinate of selected point"
    pt = Point2D()
    res = kcs_ui.point2D_req("请选择要查询的点", pt)

    if res[0] == kcs_util.ok():
        res = kcs_util.tra_coord_ship(pt.X, pt.Y, "")
        if res[0] == 0:
            pt3d = Point3D(res[1], res[2], res[3])
            res, fr, fr_offset = kcs_util.coord_to_pos(1, pt3d.X)
            res, lp_y, lp_y_offset = kcs_util.coord_to_pos(2, pt3d.Y)
            res, lp_z, lp_z_offset = kcs_util.coord_to_pos(3, pt3d.Z)
            fr_offset=round(fr_offset,2)
            lp_y_offset=round(lp_y_offset,2)
            lp_z_offset=round(lp_z_offset,2)
            x=round(pt3d.X,2)
            y=round(pt3d.Y,2)
            z=round(pt3d.Z,2)

            Msg("--"*25)
            Msg("二维点:" + str(pt))
            Msg("三维坐标信息:")
            Msg("X: %s,FR%s %s" % (string.ljust(str(x), width), str(fr), _fmt(fr_offset)))
            Msg("Y: %s,LP%s %s" % (string.ljust(str(y), width), str(lp_y), _fmt(lp_y_offset)))
            Msg("Z: %s,LP%s %s" % (string.ljust(str(z), width), str(lp_z), _fmt(lp_z_offset)))
            Msg("--"*25)
示例#4
0
def run():
    stat=KcsStat_point2D_req.Stat_point2D_req()
    ct=CursorType()
    
    CursorTypes = {'CrossHair' : 1, 'RubberBand' : 2, 'RubberRectangle' : 3, 'RubberCircle' : 4, 'DragCursor' : 5}
    
    actions=CursorTypes.keys()
    
    bs=ButtonState()
    bs.EnableLock(1)
    bs.SetCheckedLock('V')
    
    pt=Point2D(2,3)
    while True:
        res=kcs_ui.choice_select('title','header',actions)
        if res[0]==kcs_util.ok():
            #msg("%s:%s"%(res[1],CursorTypes.keys()[res[1]-1]))
            if res[1]==1:
                ct.SetCrossHair()
            elif res[1]==2:
                ct.SetRubberBand(pt)
            elif res[1]==3:
                ct.SetRubberRectangle(pt)
            elif res[1]==4:
                ct.SetRubberCircle(pt)
            elif res[1]==5:
                pass
            stat.SetCursorType(ct)
            stat.SetDefMode('ModeMidPoint')
            stat.SetHelpPoint(Point2D(0,0))
            msg(ct)
            res,pt2=kcs_ui.point2D_req('msg',pt,stat,bs)
            msg(pt2)
        else:
            break
示例#5
0
def CreateTable(li):
    """create table from a python list"""
    pt=Point2D()
    res=kcs_ui.point2D_req('Please pick the left-top corner of table.',pt)
    if res[0]==kcs_util.ok():
        t=Table()
        t.ReadList(li)
        t.Draw()
def PrintUserResponse():
    while True:
        pt = Point2D()
        res = kcs_ui.point2D_req('Esc to quit.', pt)
        if res[0] == util.cancel():
            break
        else:
            msg('Your response is: %s' % res[0])
def PrintUserResponse():
    while True:
        pt=Point2D()
        res=kcs_ui.point2D_req('Esc to quit.',pt)
        if res[0]==util.cancel():
            break
        else:
            msg('Your response is: %s'%res[0])
示例#8
0
def SelectText():
    "select a text from drawing"
    pt=Point2D()
    res=kcs_ui.point2D_req('请选择文字',pt)
    if res[0]==kcs_util.ok():
        try:
            hdText=kcs_draft.text_identify(res[1])
            return hdText
        except:
            return None
示例#9
0
def run():
    pt = Point2D()
    res = kcs_ui.point2D_req('请选择中心点', pt)
    if res[0] == kcs_util.ok():
        res2 = kcs_ui.string_req('请输入菱形的尺寸', '300,100')
        if res2[0] == kcs_util.ok():
            li = [float(s) for s in res2[1].split(',')]
            if len(li) == 2:
                a, b = li
            else:
                raise 'wrong input'
            ktBasic.Diamond(res[1], a, b)
示例#10
0
def run():
    pt=Point2D()
    res=kcs_ui.point2D_req('请选择中心点',pt)
    if res[0]==kcs_util.ok():
        res2=kcs_ui.string_req('请输入菱形的尺寸','300,100')
        if res2[0]==kcs_util.ok():
            li=[float(s) for s in res2[1].split(',')]
            if len(li)==2:
                a,b=li
            else:
                raise 'wrong input'
            ktBasic.Diamond(res[1], a, b)
示例#11
0
def DeleteNote():
    pt=Point2D()
    res=kcs_ui.point2D_req("请选择要删除的批注",pt)
    if res[0]==kcs_util.ok():
        try:
            hText=kcs_draft.text_identify(pt)
            comp=kcs_draft.element_parent_get(hText)
            compName=kcs_draft.subpicture_name_get(comp)
            if compName.startswith("NOTE_"):
                kcs_draft.element_delete(comp)
        except Exception,e:
            kcs_ui.message_noconfirm(e.message)
示例#12
0
def ChangeColumnText():
    pt=Point2D()
    res=kcs_ui.point2D_req('Please select the column',pt)
    if res[0]==kcs_util.ok():
        hdView=kcs_draft.view_identify(res[1])
        comp=kcs_draft.component_identify(res[1])
        #get column index from comp name
        name=kcs_draft.subpicture_name_get(comp)
        colIndex=int(name[2:].split('X')[0])
        table=Table(hdView)
        res=kcs_ui.string_req('Please enter the string','iknot')
        if res[0]==kcs_util.ok():
            table.ChangeColumnText(colIndex, res[1])
示例#13
0
def MoveColumn():
    pt=Point2D()
    res=kcs_ui.point2D_req('Please select the column',pt)
    if res[0]==kcs_util.ok():
        hdView=kcs_draft.view_identify(res[1])
        comp=kcs_draft.component_identify(res[1])
        
        #get column index from comp name
        name=kcs_draft.subpicture_name_get(comp)
        colIndex=int(name[2:].split('X')[0])
        table=Table(hdView)
        res=kcs_ui.int_req('Please enter the offset',100)
        if res[0]==kcs_util.ok():
            table.MoveColumn(colIndex, res[1])
示例#14
0
def run():
    pt=Point2D()
    res=kcs_ui.point2D_req('请选择中心点',pt)
    if res[0]==kcs_util.ok():
        res2=kcs_ui.string_req('请输入外接圆半径、数量和旋转角度(默认为0)','100,6,0')
        if res2[0]==kcs_util.ok():
            li=[float(s) for s in res2[1].split(',')]
            radius,number,angle=0.0,0.0,0.0
            if len(li)==2:
                radius,number=li
            elif len(li)==3:
                radius,number,angle=li
            else:
                raise 'wrong input'
            ktBasic.Polygon(res[1], radius, number, angle)
示例#15
0
def FormatSingle():
    pt = Point2D()
    res = kcs_ui.point2D_req("请选择文字获取文字属性", pt)
    if res[0] == kcs_util.ok():
        hd = kcs_draft.text_identify(pt)
        ori = Text()
        kcs_draft.text_properties_get(hd, ori)
#         old = kcs_draft.subpicture_current_get()  # 当前图层
        while True:
            "select single text"
            pt2=Point2D()
            res = kcs_ui.point2D_req("请选择要替换的文字", pt2)
            if res[0]==kcs_util.ok():
                hdText=kcs_draft.text_identify(pt2)
                father = kcs_draft.element_parent_get(hdText)  # 文字所在图层
                t = Text()
                kcs_draft.text_properties_get(hdText, t)
                ori.SetString(t.GetString())
                ori.SetPosition(t.GetPosition())
                kcs_draft.element_delete(hdText)  # 删除原文字
                kcs_draft.subpicture_current_set(father)  # 重设图层
                kcs_draft.text_new(ori)  # 写文字
            else:
                break
示例#16
0
def run():
    pt = Point2D()
    res = kcs_ui.point2D_req('请选择中心点', pt)
    if res[0] == kcs_util.ok():
        res2 = kcs_ui.string_req('请输入外接圆半径、数量和旋转角度(默认为0)', '100,6,0')
        if res2[0] == kcs_util.ok():
            li = [float(s) for s in res2[1].split(',')]
            radius, number, angle = 0.0, 0.0, 0.0
            if len(li) == 2:
                radius, number = li
            elif len(li) == 3:
                radius, number, angle = li
            else:
                raise 'wrong input'
            ktBasic.Polygon(res[1], radius, number, angle)
示例#17
0
def CreateEmptyTable():
    """
    Create an m x n table without text.
    
    """
    res=kcs_ui.string_req('please enter the column number,row number and the width of each cell',
                          '5,3,30')
    if res[0]==kcs_util.ok():
        li=res[1].split(',')
        m,n,width=int(li[0]),int(li[1]),float(li[2])
        pt=Point2D()
        res=kcs_ui.point2D_req('Please pick the left-top corner of table.',pt)
        if res[0]==kcs_util.ok():
            t=Table()
            t.Init(m, n, width, res[1])
            t.Draw()
示例#18
0
def run():
    stat = KcsStat_point2D_req.Stat_point2D_req()
    ct = CursorType()

    CursorTypes = {
        'CrossHair': 1,
        'RubberBand': 2,
        'RubberRectangle': 3,
        'RubberCircle': 4,
        'DragCursor': 5
    }

    actions = CursorTypes.keys()

    bs = ButtonState()
    bs.EnableLock(1)
    bs.SetCheckedLock('V')

    pt = Point2D(2, 3)
    while True:
        res = kcs_ui.choice_select('title', 'header', actions)
        if res[0] == kcs_util.ok():
            #msg("%s:%s"%(res[1],CursorTypes.keys()[res[1]-1]))
            if res[1] == 1:
                ct.SetCrossHair()
            elif res[1] == 2:
                ct.SetRubberBand(pt)
            elif res[1] == 3:
                ct.SetRubberRectangle(pt)
            elif res[1] == 4:
                ct.SetRubberCircle(pt)
            elif res[1] == 5:
                pass
            stat.SetCursorType(ct)
            stat.SetDefMode('ModeMidPoint')
            stat.SetHelpPoint(Point2D(0, 0))
            msg(ct)
            res, pt2 = kcs_ui.point2D_req('msg', pt, stat, bs)
            msg(pt2)
        else:
            break
示例#19
0
def Pick2DPoints(number=0,mode="ModeAuto"):
    """
    Pick points until reach the number.
    number=0 means unlimited number.
    """
    pts=[]
    index=0
    action=kcs_util.ok()
    while index<number or number==0:
        pt=Point2D()
        stp=Stat_point2D_req()
        stp.SetDefMode(mode)
        action,pt=kcs_ui.point2D_req('ÇëÑ¡ÔñµÚ%s¸öµã'%(index+1),pt,stp)
        if action==kcs_util.ok():
            pts.append(pt)
        elif action==kcs_util.operation_complete() and number==0:
            return pts
        elif action==kcs_util.cancel():
            print 'operation canceled'
            return None
        index+=1
    return pts
示例#20
0
def FormatRegion():
    pt = Point2D()
    res = kcs_ui.point2D_req("请选择文字获取文字属性", pt)
    if res[0] == kcs_util.ok():
        hd = kcs_draft.text_identify(pt)
        ori = Text()
        kcs_draft.text_properties_get(hd, ori)
        objs = SelectTexts()
        old = kcs_draft.subpicture_current_get()  # 当前图层
        for obj in objs[1:]:  # 重写文字
            father = kcs_draft.element_parent_get(obj)  # 文字所在图层
            t = Text()
            kcs_draft.text_properties_get(obj, t)
            ori.SetString(t.GetString())
            ori.SetPosition(t.GetPosition())
            kcs_draft.element_delete(obj)  # 删除原文字
            kcs_draft.subpicture_current_set(father)  # 重设图层
            kcs_draft.text_new(ori)  # 写文字
        if len(old) == 3:
            kcs_draft.subpicture_current_set(old[2])
        else:
            kcs_draft.subpicture_current_set()
示例#21
0
def Pick2DPoints(number=0, mode="ModeAuto"):
    """
    Pick points until reach the number.
    number=0 means unlimited number.
    """
    pts = []
    index = 0
    action = kcs_util.ok()
    while index < number or number == 0:
        pt = Point2D()
        stp = Stat_point2D_req()
        stp.SetDefMode(mode)
        action, pt = kcs_ui.point2D_req('ÇëÑ¡ÔñµÚ%s¸öµã' % (index + 1), pt,
                                        stp)
        if action == kcs_util.ok():
            pts.append(pt)
        elif action == kcs_util.operation_complete() and number == 0:
            return pts
        elif action == kcs_util.cancel():
            print 'operation canceled'
            return None
        index += 1
    return pts
示例#22
0
def run():
    actions=['View','Subview','Component','Element']
    res,act=kcs_ui.choice_select('View info','Select the type',actions)
    if res==kcs_util.ok():
        pt=Point2D()
        if act==1:
            ees=ktDraft.GetViews()
            printElements(ees)
        elif act==2:
            kcs_ui.point2D_req('Select',pt)
            hd=kcs_draft.view_identify(pt)
            ees=ktDraft.GetSubviews(hd)
            printElements(ees)
        elif act==3:
            kcs_ui.point2D_req('Select',pt)
            hd=kcs_draft.subview_identify(pt)
            ees=ktDraft.GetComponents(hd)
            printElements(ees)
        elif act==4:
            kcs_ui.point2D_req('Select',pt)
            hd=kcs_draft.component_identify(pt)
            ees=ktDraft.GetSubElements(hd)
            printElements(ees)
示例#23
0
def AddNote():
    res=kcs_ui.string_req("请输入标注内容")
    if res[0]==kcs_util.ok():
        content=res[1]
        cor1=Point2D()
        cor2=Point2D()
        res=kcs_ui.point2D_req("请选择标注点",cor1)
        if res[0]==kcs_util.ok():
            res=kcs_ui.point2D_req("请选择标注文字位置",cor2)
            if res[0]==kcs_util.ok(): #开始标注
                #记录原来状态
                old=kcs_draft.subpicture_current_get()
                
                #创建component
                subView=ktDraft.GetKtSubView(SUB_VIEW_NAME)
                #检查是否在KNOT_VIEW下
                parent=kcs_draft.element_parent_get(subView)
                parentName=kcs_draft.subpicture_name_get(parent)
                if parentName!="KNOT_VIEW":
                    return
                kcs_draft.subpicture_current_set(subView)
                compName="NOTE_"+str(GetID(subView))
                comp=kcs_draft.component_new(compName)
                kcs_draft.subpicture_current_set(comp)
                
                #写文字
                txt=Text(content)
                txt.SetPosition(cor2)
                txt.SetColour(Colour("Red"))
                txt.SetFont("黑体")
                txt.SetHeight(5)
                hTxt=kcs_draft.text_new(txt)
                
                #画边框
                rect=Rectangle2D()
                rect=kcs_draft.element_extent_get(hTxt)
                offset=1
                rect.SetCorner1(Point2D(rect.Corner1.X-offset,rect.Corner1.Y-offset))
                rect.SetCorner2(Point2D(rect.Corner2.X+offset,rect.Corner2.Y+offset))
                hd=kcs_draft.rectangle_new(rect)
                kcs_draft.element_colour_set(hd,Colour("Red"))
                
                #画引线
                sta=cor1
                end=rect.GetCorner1()
                if end.X<sta.X:
                    end.SetX(end.X+rect.Corner2.X-rect.Corner1.X)
                if end.Y<sta.Y:
                    end.SetY(end.Y+rect.Corner2.Y-rect.Corner1.Y)
                line=Rline2D(sta,end)
                hd=kcs_draft.line_new(line)
                kcs_draft.element_colour_set(hd,Colour("Red"))
                
                #画圆圈
                circle=Circle2D(sta,2)
                hd=kcs_draft.circle_new(circle)
                kcs_draft.element_colour_set(hd,Colour("Red"))
                
                #恢复原来状态
                if len(old)==3:
                    kcs_draft.subpicture_current_set(old[2])
                else:
                    kcs_draft.subpicture_current_set()