Esempio n. 1
0
def CheckData():
    global windowWidth
    fraction, display, format, upi, name, squareName = vs.GetUnits()
    
    ok, val = vs.GetEditInteger(Constants.dialogId,kIDLabel)
    if val < 0:
        vs.SetEditInteger(Constants.dialogId, kIDLabel, 1)
        
    ok, val = ok,val= vs.GetEditReal(Constants.dialogId, kWidth, kEditRealDim)
    if val <= 0:
        vs.SetEditReal(Constants.dialogId, kWidth, kEditRealDim, 1)
        
    ok, val = vs.GetEditReal(Constants.dialogId,kHeight,kEditRealDim)
    if val < 0:
        vs.SetEditReal(Constants.dialogId, kHeight, kEditRealDim, 1)

    ok, val = vs.GetEditReal(Constants.dialogId, kElevationInWall, kEditRealDim)
    if val < 0:
        vs.SetEditReal(Constants.dialogId, kElevationInWall, kEditRealDim, 1)
        
    ok, val = vs.GetEditReal(Constants.dialogId, kOpeningAngle, kEditRealAng)
    if val < 0:
        vs.SetEditReal(Constants.dialogId, kOpeningAngle, kEditRealAng, 0)
    elif val > 90:
        vs.SetEditReal(Constants.dialogId, kOpeningAngle, kEditRealAng, 90)
Esempio n. 2
0
def OnOK():
    ##Must check!!!
    global windowWidth
    fraction, display, format, upi, name, squareName = vs.GetUnits()
    #######################################################    
    ok,val = vs.GetEditInteger(Constants.dialogId,kIDLabel)
    vs.SetRField(Constants.h, kPluginName, 'IDLabel', val.__str__())
    #######################################################
    ok,val= vs.GetEditReal(Constants.dialogId, kWidth, kEditRealDim)
    windowWidth = val
    vs.SetRField(Constants.h,kPluginName, 'Width', val.__str__())
    #######################################################    
    ok,val = vs.GetEditReal(Constants.dialogId,kHeight,kEditRealDim)
    vs.SetRField(Constants.h,kPluginName, 'Height', val.__str__())
    #######################################################    
    ok,val = vs.GetEditReal(Constants.dialogId,kElevationInWall,kEditRealDim)
    vs.SetRField(Constants.h,kPluginName, 'ElvInWall', val.__str__())
    #######################################################    
    val = vs.GetBooleanItem(Constants.dialogId, kOpenTheWindow)
    vs.SetRField(Constants.h,kPluginName, 'OpenTheWindow', val.__str__())
    #######################################################   
    ok,val = vs.GetEditReal(Constants.dialogId,kOpeningAngle,kEditRealAng)
    vs.SetRField(Constants.h,kPluginName, 'OpeningAngle', val.__str__())
    #######################################################    
    index = vs.GetSelectedChoiceIndex(Constants.dialogId, kLeaf, 0)
    if(index == 0):
        vs.SetRField(Constants.h,kPluginName,'Leaf','None')
    elif(index == 1):
        vs.SetRField(Constants.h,kPluginName,'Leaf','1(no glass)')
    elif(index == 2):
        vs.SetRField(Constants.h,kPluginName,'Leaf','1(glass)')
    elif(index == 3):
        vs.SetRField(Constants.h,kPluginName,'Leaf','2(no glass)')
    else:
        vs.SetRField(Constants.h,kPluginName,'Leaf','2(glass)')
    #######################################################    
    val = vs.GetBooleanItem(Constants.dialogId,kHasCurtains)
    vs.SetRField(Constants.h,kPluginName,'HasCurts',val.__str__())
    #######################################################    
    index = vs.GetSelectedChoiceIndex(Constants.dialogId,kLedgeType,0)
    if(index == 0):
        vs.SetRField(Constants.h,kPluginName,'LedgeType','Attach to wall')
    else:
        vs.SetRField(Constants.h,kPluginName,'LedgeType','Attach to ceiling')
    #######################################################        
    index = vs.GetSelectedChoiceIndex(Constants.dialogId,kLedgeMaterial,0)
    if(index == 0):
        vs.SetRField(Constants.h,kPluginName,'LedgeMaterial','Wood')
    elif(index == 1):
        vs.SetRField(Constants.h,kPluginName,'LedgeMaterial','Plastic')
    else:
        vs.SetRField(Constants.h,kPluginName,'LedgeMaterial','Metal')
    #######################################################    
    val = vs.GetBooleanItem(Constants.dialogId,kDrawTheCurts)
    vs.SetRField(Constants.h,kPluginName,'DrawTheCurts',val.__str__())
    #######################################################
    colorIndex = vs.GetColorChoice(Constants.dialogId, kCurtsColor)
    colorText = str(colorIndex)
    vs.SetRField(Constants.h,kPluginName,'__CustomColor',colorIndex)
    vs.SetRField(Constants.h,kPluginName,'__PrevCustomColor',colorIndex)
    
    #######################################################
    if colorIndex == 256:
        vs.SetRField(Constants.h,kPluginName,'CurtsColor','White')
    elif colorIndex == 257:
        vs.SetRField(Constants.h,kPluginName,'CurtsColor','Black')
    else:
        vs.SetRField(Constants.h,kPluginName,'CurtsColor','Custom Color')
    ##########################
    
    ok,val = vs.GetEditInteger(Constants.dialogId,kPieces)
    ########### Check for correct set value of the pieces: min 4" 
    #inches per unit = 1/upi
    #max width of one piece of curtain = 4 inhes
    inchesPerUnit = 1/upi
    windowWidth = windowWidth*inchesPerUnit
    maxPieces = windowWidth // kMaxWidthOfPiece 
    
    if val > maxPieces:
        val = maxPieces
    vs.SetRField(Constants.h,kPluginName,'Pieces',val.__str__())
    #######################################################    
    val = vs.GetControlData(Constants.dialogId,kOpacitySlider)
    vs.SetRField(Constants.h,kPluginName,'Opacity',val.__str__())
Esempio n. 3
0
def SetupDialog():
    for i in range(1,6):
        vs.AddChoice(Constants.dialogId,kLeaf,vs.GetPluginString(4000+i),i-1)
        
    vs.AddChoice(Constants.dialogId,kLedgeType,vs.GetPluginString(4006),0)
    vs.AddChoice(Constants.dialogId,kLedgeType,vs.GetPluginString(4007),1)
    
    vs.AddChoice(Constants.dialogId,kLedgeMaterial,vs.GetPluginString(4008),0)
    vs.AddChoice(Constants.dialogId,kLedgeMaterial,vs.GetPluginString(4009),1)
    vs.AddChoice(Constants.dialogId,kLedgeMaterial,vs.GetPluginString(4010),2)
    
    fraction, display, format, upi, name, squareName = vs.GetUnits()
    
    #######################################################
    value = vs.GetRField(Constants.h,kPluginName,'IDLabel')
    vs.SetEditInteger(Constants.dialogId, kIDLabel, vs.Str2Num(value))
    #######################################################    
    value = vs.GetRField(Constants.h,kPluginName,'Width')
    
    inches = 0
    if(format == 2 or format == 3):
         
        index = value.find("'")
        if index > -1:
            splitVal = value.split("'")
            inches += vs.Str2Num(splitVal[0])*12.0
             
            str = splitVal[1]
            index = str.find(name)
            if index > -1:
                str = str.replace(name, "")
                value = vs.Str2Num(str)
                inches += value
         
        else:
            index = value.find(name)
            if index > -1:
                value = value.replace(name,"")
                value = vs.Str2Num(value)
                inches += value
    else:
        index = value.find(name)
        if index > -1:
            value = value.replace(name, "")
            
        inches = vs.Str2Num(value)
    
    vs.SetEditReal(Constants.dialogId,kWidth,kEditRealDim,inches)
    #######################################################    
    value = vs.GetRField(Constants.h,kPluginName,'Height')
    
    inches = 0
    if(format == 2 or format == 3):
         
        index = value.find("'")
        if index > -1:
            splitVal = value.split("'")
            inches += vs.Str2Num(splitVal[0])*12.0
             
            str = splitVal[1]
            index = str.find(name)
            if index > -1:
                str = str.replace(name, "")
                value = vs.Str2Num(str)
                inches += value
         
        else:
            index = value.find(name)
            if index > -1:
                value = value.replace(name,"")
                value = vs.Str2Num(value)
                inches += value
    else:
        index = value.find(name)
        if index > -1:
            value = value.replace(name, "")
            
        inches = vs.Str2Num(value)
    
    vs.SetEditReal(Constants.dialogId,kHeight,kEditRealDim,inches)
    #######################################################    
    value = vs.GetRField(Constants.h,kPluginName,'ElvInWall')
    
    inches = 0
    if(format == 2 or format == 3):
         
        index = value.find("'")
        if index > -1:
            splitVal = value.split("'")
            inches += vs.Str2Num(splitVal[0])*12.0
             
            str = splitVal[1]
            index = str.find(name)
            if index > -1:
                str = str.replace(name, "")
                value = vs.Str2Num(str)
                inches += value
         
        else:
            index = value.find(name)
            if index > -1:
                value = value.replace(name,"")
                value = vs.Str2Num(value)
                inches += value
    else:
        index = value.find(name)
        if index > -1:
            value = value.replace(name, "")
            
        inches = vs.Str2Num(value)
    
    vs.SetEditReal(Constants.dialogId,kElevationInWall,kEditRealDim,inches)
    #######################################################    
    value = vs.GetRField(Constants.h, kPluginName, 'OpenTheWindow')
    vs.SetBooleanItem(Constants.dialogId, kOpenTheWindow   ,value =='True')
    #######################################################    
    value = vs.GetRField(Constants.h,kPluginName,'OpeningAngle')
    newNumber = vs.Str2Num(value)
    vs.SetEditReal(Constants.dialogId, kOpeningAngle, kEditRealAng,newNumber)  
    #######################################################    
    leafType = vs.GetRField(Constants.h,kPluginName,'Leaf')
    if leafType == 'None':
        vs.SelectChoice(Constants.dialogId, kLeaf, 0, True)
    elif leafType == '1(no glass)':
        vs.SelectChoice(Constants.dialogId, kLeaf, 1, True)
    elif leafType == '1(glass)':
        vs.SelectChoice(Constants.dialogId, kLeaf, 2, True)
    elif leafType == '2(no glass)':
        vs.SelectChoice(Constants.dialogId, kLeaf, 3, True)
    else:
        vs.SelectChoice(Constants.dialogId, kLeaf, 4, True)
    #######################################################        
    value = vs.GetRField(Constants.h,kPluginName,'HasCurts')
    vs.SetBooleanItem(Constants.dialogId, kHasCurtains, value =='True')
    #######################################################    
    ledgeType = vs.GetRField(Constants.h,kPluginName,'LedgeType')
    if ledgeType == 'Attach to wall':
        vs.SelectChoice(Constants.dialogId,kLedgeType,0,True)
    else:
        vs.SelectChoice(Constants.dialogId,kLedgeType,1,True)
    #######################################################              
    ledgeMaterial = vs.GetRField(Constants.h,kPluginName,'LedgeMaterial')
    if ledgeMaterial == 'Wood':
        vs.SelectChoice(Constants.dialogId,kLedgeMaterial,0,True)
    elif ledgeMaterial == 'Plastic':
        vs.SelectChoice(Constants.dialogId,kLedgeMaterial,1,True)
    else:
        vs.SelectChoice(Constants.dialogId,kLedgeMaterial,2,True)
    #######################################################        
    value = vs.GetRField(Constants.h,kPluginName,'DrawTheCurts')
    vs.SetBooleanItem(Constants.dialogId,kDrawTheCurts,value == 'True')
    #######################################################    
    colorIndex = vs.GetRField(Constants.h, kPluginName, '__CustomColor')
    vs.SetColorChoice(Constants.dialogId,kCurtsColor,vs.Str2Num(colorIndex))
    #######################################################    
    value = vs.GetRField(Constants.h,kPluginName,'Pieces')
    newNumber = vs.Str2Num(value)
    vs.SetEditInteger(Constants.dialogId, kPieces, newNumber)
    #######################################################    
    opacityText = vs.GetRField(Constants.h,kPluginName,'Opacity')
    vs.SetControlData(Constants.dialogId,kOpacitySlider,vs.Str2Num(opacityText))
    #######################################################    
    text = vs.GetPluginString(3054)
    text += ' ('
    text += opacityText
    text +='%): '
        
    vs.SetItemText(Constants.dialogId,kOpacityText,text)
    
    #######################################################
    hasCurtain = vs.GetBooleanItem(Constants.dialogId,kHasCurtains)
    drawTheCurtain = vs.GetBooleanItem(Constants.dialogId,kDrawTheCurts)
    
    index = vs.GetSelectedChoiceIndex(Constants.dialogId, kLeaf, 0)
    hasLeaf = not(index == 0)
    
    EnableItems(hasLeaf, vs.GetBooleanItem(Constants.dialogId,kOpenTheWindow), hasCurtain, drawTheCurtain)
    vs.SetSliderLiveUpdate(Constants.dialogId, kOpacitySlider, True)
Esempio n. 4
0
def CheckValues():
    #We check the values each time the user enters new data in the OIP
    global winWidth
    fraction, display, format, upi, name, squareName = vs.GetUnits()

    col = vs.GetRField(gObjHandle, gObjName, 'CurtsColor')
    if col == 'White':
        vs.SetRField(gObjHandle, gObjName, '__CustomColor', 256)
    elif col == 'Black':
        vs.SetRField(gObjHandle, gObjName, '__CustomColor', 257)
    elif col == 'Custom Color' and vs.P__PrevCustomColor != 0:
        vs.SetRField(gObjHandle, gObjName, '__CustomColor',
                     vs.P__PrevCustomColor)

####################################
    val = vs.GetRField(gObjHandle, gObjName, 'IDLabel')
    val = vs.Str2Num(val)
    if val < 0:
        val = 0
        vs.SetRField(gObjHandle, gObjName, 'IDLabel', vs.Num2Str(0, val))

    ################################################
    val = vs.GetRField(gObjHandle, gObjName, 'Width')

    if (format == 2 or format == 3):
        inches = 0

        index = val.find("'")
        if index > -1:
            splitVal = val.split("'")
            inches += vs.Str2Num(splitVal[0]) * 12.0

            str = splitVal[1]
            index = str.find(name)
            if index > -1:
                str = str.replace(name, "")
                val = vs.Str2Num(str)
                inches += val

        else:
            index = val.find(name)
            if index > -1:
                val = val.replace(name, "")
                val = vs.Str2Num(val)
                inches += val

        if inches < 0:
            inches = 1

        val = vs.Num2Str(2, inches)
        val = val + name
    else:
        val = CheckField(val, name)

    vs.SetRField(gObjHandle, gObjName, 'Width', val)

    val = val.replace(name, "")
    val = vs.Str2Num(val)
    winWidth = val

    ################################################
    val = vs.GetRField(gObjHandle, gObjName, 'Height')
    if (format == 2 or format == 3):
        inches = 0

        index = val.find("'")
        if index > -1:
            splitVal = val.split("'")
            inches += vs.Str2Num(splitVal[0]) * 12.0

            str = splitVal[1]
            index = str.find(name)
            if index > -1:
                str = str.replace(name, "")
                val = vs.Str2Num(str)
                inches += val

        else:
            index = val.find(name)
            if index > -1:
                val = val.replace(name, "")
                val = vs.Str2Num(val)
                inches += val

        if inches < 0:
            inches = 1

        val = vs.Num2Str(2, inches)
        val = val + name
    else:
        val = CheckField(val, name)

    vs.SetRField(gObjHandle, gObjName, 'Height', val)

    ################################################
    val = vs.GetRField(gObjHandle, gObjName, 'ElvInWall')
    if (format == 2 or format == 3):
        inches = 0

        index = val.find("'")
        if index > -1:
            splitVal = val.split("'")
            inches += vs.Str2Num(splitVal[0]) * 12.0

            str = splitVal[1]
            index = str.find(name)
            if index > -1:
                str = str.replace(name, "")
                val = vs.Str2Num(str)
                inches += val

        else:
            index = val.find(name)
            if index > -1:
                val = val.replace(name, "")
                val = vs.Str2Num(val)
                inches += val

        if inches < 0:
            inches = 1

        val = vs.Num2Str(2, inches)
        val = val + name
    else:
        val = CheckField(val, name)

    vs.SetRField(gObjHandle, gObjName, 'ElvInWall', val)

    ##########################################################
    val = vs.GetRField(gObjHandle, gObjName, 'OpeningAngle')
    val = vs.Str2Num(val)
    if val < 0:
        val = 0
    elif val > 90:
        val = 90

    vs.SetRField(gObjHandle, gObjName, 'OpeningAngle', vs.Num2Str(2, val))

    ################################################
    #In inches: maxPieces = winWidth(in inches) // (floor division) Max width of a pice
    inchesPerUnit = 1 / upi
    winWidth = inchesPerUnit * winWidth
    maxPieces = winWidth // Constants.kMaxWidthOfPieceInInches

    val = vs.GetRField(gObjHandle, gObjName, 'Pieces')
    val = vs.Str2Num(val)

    if val > maxPieces:
        val = maxPieces
        vs.SetRField(gObjHandle, gObjName, 'Pieces', vs.Num2Str(0, val))

    ##############################################################
    val = vs.GetRField(gObjHandle, gObjName, 'Opacity')
    val = vs.Str2Num(val)
    if val > 100:
        val = 100
    elif val < 0:
        val = 0

    vs.SetRField(gObjHandle, gObjName, 'Opacity', vs.Num2Str(0, val))

    width = vs.PWidth
    height = vs.PHeight

    upi = vs.GetPrefReal(152) / 25.4

    wallType = vs.GetTypeN(gWallHandle)
    if (wallType == 68 or wallType == 89):
        thickness = vs.WallWidth(gWallHandle)
    else:
        thickness = 100 * upi

    leafType = vs.GetRField(gObjHandle, gObjName, 'Leaf')
    if (leafType == 'None'):
        twoWings = False
    elif (leafType == '1(no glass)'):
        twoWings = False
    elif (leafType == '1(glass)'):
        twoWings = False
    elif (leafType == '2(no glass)'):
        twoWings = True
    elif (leafType == '2(glass)'):
        twoWings = True

    if (width / 3 <= thickness and twoWings == True):
        width = 3 * thickness + 10 * upi
        vs.SetRField(gObjHandle, gObjName, 'Width', width)
    if (thickness >= height / 2):
        height = 2 * thickness + 10 * upi
        vs.SetRField(gObjHandle, gObjName, 'Height', height)
    if (thickness >= width / 2):
        width = thickness * 2 + 10 * upi
        vs.SetRField(gObjHandle, gObjName, 'Width', width)