Ejemplo n.º 1
0
    def DrawLedge(self):
        vs.BeginXtrd(0, self.__fWindowWidth * kLedgeOutWindow)
        hLedgePoly = self.__DrawLedgePoly()
        vs.EndXtrd()
        hLedgePoly = vs.LNewObj(
        )  # without that line there is a bug : multiple insertion of the object leads to whole window (oall abojects) offset
        hLedgePoly = self.__MoveLedge(hLedgePoly)

        vs.Rotate3D(0, 0, 90)
        vs.Rotate3D(0, 90, 0)

        hLedgePoly = self.__SetMaterial()
Ejemplo n.º 2
0
    def __DrawCurtainPiece(self, startPoint, endPoint, step):
        vs.BeginXtrd(self.__fOriginPoint.z, self.__fHeight)
        self.__DrawCurtainPoly(startPoint, endPoint, step)
        vs.EndXtrd()

        return vs.LNewObj()
Ejemplo n.º 3
0
	def Draw(self):


		if self.leafType == kTypeNone:

			vs.BeginGroup()

			glassWidth 		= self.width  
			glassHeight 	= self.height
			glassThikness	= self.__glassThikness
			glassOrigin		= (0, 0)
			pathDirection	= (0, -1)

			vs.DSelectAll()
			vs.BeginXtrd( 0, glassThikness)
			vs.RectangleN( glassOrigin, pathDirection, glassWidth, glassHeight )
			hGlass = vs.LNewObj()
			vs.EndXtrd()

			vs.Set3DRot(hGlass, 0, 40, 0, 0, 0, 0)

			vs.EndGroup()
			hLeaf = vs.LNewObj()
			
			#position at origin with needed orientation
			vs.Set3DRot(hLeaf, 0, -90,   0, 0, 0, 0)
			vs.Move3DObj(hLeaf, self.__frameThickness/2, 0, 0)
			vs.Set3DRot(hLeaf, 0,   0, 90, 0, 0, 0)



		if self.leafType != kTypeNone:
				
			vs.BeginGroup()
			#Prepare Extrude Path
			pathWidth = self.width + self.__frameOverlap*2
			pathHeight = self.height + self.__frameOverlap*2
			pathOrigin = ( -self.__frameOverlap, self.__frameOverlap )
			pathDirection = (0, -1)

			vs.RectangleN( pathOrigin, pathDirection, pathWidth, pathHeight)
			hFramePath = vs.LNewObj()

			vs.SetPlanarRefIDToGround(hFramePath);
			hFramePath = vs.ConvertToNURBS(hFramePath, False)

			#Prepare Extrude Profile


			frameProfile = (
							self.__frameOverlap, 0,
							self.__frameWidth, 0, 										
							self.__frameWidth, self.__frameThickness,
							0, self.__frameThickness,
							0, self.__frameInsideThinckness,
							self.__frameOverlap, self.__frameInsideThinckness
							)



			vs.ClosePoly()
			vs.Poly(*frameProfile)
			hFrameProfile = vs.LNewObj()

			hFrameProfilePolyline = vs.MakePolyline(hFrameProfile)
			vs.DelObject(hFrameProfile)
			hFrameProfile = hFrameProfilePolyline

			
			hLeafFrame = vs.ExtrudeAlongPath(hFramePath, hFrameProfile)

			vs.DelObject(hFramePath)
			vs.DelObject(hFrameProfile)

			#insert glass
			glassWidth 		= self.width  - 2*self.__frameMainWidth
			glassHeight 	= self.height - 2*self.__frameMainWidth
			glassThikness	= self.__glassThikness
			glassOrigin		= (self.__frameMainWidth, -self.__frameMainWidth)

			vs.DSelectAll()
			vs.BeginXtrd(self.__frameThickness/2, self.__frameThickness/2 + glassThikness)
			vs.RectangleN( glassOrigin, pathDirection, glassWidth, glassHeight )
			hGlass = vs.LNewObj()
			vs.EndXtrd()

			vs.EndGroup()
			hLeaf = vs.LNewObj()


			#position at origin with needed orientation
			vs.Set3DRot(hLeaf, 0, -90,   0, 0, 0, 0)
			vs.Set3DRot(hLeaf, 0,   0, 180, 0, 0, 0)
			vs.Move3DObj(hLeaf, 0, -self.width, 0)
			vs.Set3DRot(hLeaf, 0,   0, 90, 0, 0, 0)
			



		#move to required position
		vs.Move3DObj(hLeaf, self.position[0], self.position[1], self.position[2], )


		if self.isGlassTrue == True:
			vs.SetFillBack(hGlass, 11)
			vs.SetOpacity(hGlass, 50)

		else:
			vs.SetFillBack(hGlass, 8)
			vs.SetOpacity(hGlass, 100)



		self.hLeaf = hLeaf
Ejemplo n.º 4
0
    def Draw(self):
        vs.BeginXtrd(0,self.thickness)
        vs.Rect(-self.width/2.0, self.height/2.0, self.width/2.0, self.height/2.0-self.thickness)
        r1 = vs.LNewObj()
        vs.Rect(-self.width/2.0, self.height/2.0-self.thickness, -self.width/2.0+self.thickness, -self.height/2.0+self.thickness)
        r2 = vs.LNewObj()
        r2 = vs.AddSurface(r1, r2)
        vs.Rect(self.width/2.0-self.thickness, self.height/2.0-self.thickness, self.width/2.0, -self.height/2.0+self.thickness)
        r3 = vs.LNewObj()
        r3 = vs.AddSurface(r2,r3)
        vs.Rect(-self.width/2.0, -self.height/2.0+self.thickness, self.width/2.0, -self.height/2.0)
        r4 = vs.LNewObj()
        r4 = vs.AddSurface(r3,r4)
        if (self.wingsNum == 2):
            vs.Rect(-self.thickness/2.0, self.height/2.0-self.thickness, self.thickness/2.0, -self.height/2.0+self.thickness)
            r5 = vs.LNewObj()
            r4 = vs.AddSurface(r4,r5)
        vs.EndXtrd()
        vs.SetRot3D(vs.LNewObj(), 90, 0, 0, 0, -self.height/2.0, 0)
        vs.Move3DObj(vs.LNewObj(), 0, self.height/2.0+self.thickness/2.0, 0)
        vs.Move3DObj(vs.LNewObj(), 0, 0, self.elevation)

        #instert leafs

        upi = vs.GetPrefReal(152) / 25.4

        leafPosOffsetY = self.thickness - leaf.Leaf.kFrameThicknessNotUPI*upi
        posFirstLeaf = (-self.width/2.0+self.thickness,
                        -self.thickness/2.0+leafPosOffsetY,
                         self.elevation+self.thickness  )

        if self.wingsNum == 0:

            wingsWidth  = self.width  - 2.0*self.thickness
            wingsHeight = self.height - 2.0*self.thickness

            firstLeaf = leaf.Leaf(wingsWidth, wingsHeight, posFirstLeaf)
            firstLeaf.SetType(leaf.kTypeNone, self.isGlass)
            firstLeaf.Draw()

        elif self.wingsNum == 1:

            wingsWidth  = self.width  - 2.0*self.thickness
            wingsHeight = self.height - 2.0*self.thickness

            firstLeaf = leaf.Leaf(wingsWidth, wingsHeight, posFirstLeaf)
            firstLeaf.SetType(leaf.kTypeLeft, self.isGlass)
            firstLeaf.Draw()
            firstLeaf.SetOpening(self.openingAngle)

        elif self.wingsNum == 2:

            wingsWidth  = (self.width  - 3.0*self.thickness)/2.0
            wingsHeight =  self.height - 2.0*self.thickness

            firstLeaf  = leaf.Leaf(wingsWidth, wingsHeight, posFirstLeaf)
            firstLeaf.SetType(leaf.kTypeLeft, self.isGlass)
            firstLeaf.Draw()
            firstLeaf.SetOpening(self.openingAngle)
            
            posSecondLeaf = (self.thickness/2.0, -self.thickness/2.0+leafPosOffsetY, self.elevation+self.thickness)
            
            secondLeaf = leaf.Leaf(wingsWidth, wingsHeight, posSecondLeaf)
            secondLeaf.SetType(leaf.kTypeRight, self.isGlass)
            secondLeaf.Draw()
            secondLeaf.SetOpening(self.openingAngle)