Exit Full View
Up

/Furniture/Backroom.foocad

Backroom

Orange paint : [https://www.diy.com/departments/goodhome-durable-valencia-matt-emulsion-paint-2-5l/3663602406006_BQ.prd] Lacquer on top? [https://www.diy.com/departments/goodhome-durable-clear-satin-furniture-lacquer-0-5l/3663602578512_BQ.prd]

Attatch the long shelves using white brackets : [https://www.screwfix.com/p/hi-load-bracket-120kg-white-250-x-250mm-10-pack/34119]

A neutral floor color? [https://www.wickes.co.uk/Aspen-Light-Oak-Laminate-Flooring---2-22m2/p/138652]

A cloth front around the bases? [https://www.ebay.co.uk/itm/253520457207?var=552707176383&_trkparms=ispr%3D1&hash=item3b06ff2df7:g:dJYAAOSwWCFbuJxq&amdata=enc%3AAQAGAAACkPYe5NmHp%252B2JMhMi7yxGiTJkPrKr5t53CooMSQt2orsSg3Ye8yTWgOW7pmE1t838dqh%252FxL2f%252BnNu35LFmpbHg0Av8mY72QvdfM%252BD5SGR39wFDgtJ6nE0aSDcSB8%252Bvu5o1pRhRmXqOWX%252BEEa6B929MgGe5b1Hm4DHHSbHnXXjJfCuDJ1ioRjly1w%252B7DOjAzG7fVqpiw9aqjWb3xvf6a%252BJFwixce1TqBAWKGYTlE9My8s%252BwKwbHEAfYhqpTBp24ucOetZAqTHkSfXWkSGnBhrqhFHUAKyFbxz5asOUQKXJkdWbD%252FG7BFIk%252BLplbEQMCPFct5pCjkf67oezwHV242rwWqZyQGvXX3n1Xeq0UE5DERBTq%252Bp%252FgMHIs80pZ60rpPUzmmHXDWUH4t8FW1xRhzZk8bIxtwBZ3E%252FMUTjKbWzxojny1EB7oDgy7spV35D3di1kwWvPs1fW06MIsFT2O34jRfphhD55v%252FX4eSoElFiKrBgmv%252F5sg5OZW2%252BrBc7U%252BSsXzjp%252F3lpJFENDAjotwGFsqCYMyq3ynUdYyCCGrSe9h%252FD7DbIqbeaVk5uu1Ke8bpqTD0rM9SBao6SE7dL9PEWxOW%252ByG6eTUpGsNmN%252BipTJnn%252B%252Fqv49rg0XMV5lNugp%252FBudm2k9mjCCi9cozCkIIQyYfE4txf%252Bq6nDamc7LKhij2YsaqAiONDeIUhIuiB67re%252FQav7lfEz45BSFQ71gM5XItYZpTcjia2%252FRwmEh%252BB3d7VXrEglfb8t3OF1Bx5bNcBIvBRXOj%252BofYOlZM4C4gi2ozj19BcFvgnwXNDuWETgiET8Hb%252BYXfmEIGkMg1j148jbn2UEVhUbxrwN0l74D97XT4AN%252Fn8cB0dq3gdZkLz1RclIJ%7Campid%3APL_CLK%7Cclp%3A2334524] [https://www.ebay.co.uk/itm/165002765899?_trkparms=aid%3D1110002%26algo%3DSPLICE.SOI%26ao%3D1%26asc%3D20201210111451%26meid%3Deaac6e69f5e4400081517d9485716fad%26pid%3D101196%26rk%3D3%26rkt%3D12%26sd%3D164836308730%26itm%3D165002765899%26pmt%3D1%26noa%3D0%26pg%3D2047675%26algv%3DPromotedSellersOtherItemsV2WithMLRv3&_trksid=p2047675.c101196.m2219&amdata=cksum%3A165002765899eaac6e69f5e4400081517d9485716fad%7Cenc%3AAQAGAAACEGi%252BoskHs8LtVBhKbFrs%252FncKW9sPcrKc%252FhrrfM7XuS1zd0f75AwdB%252Bf8qGIr%252FIYF5ekIDi7KsuBHpNelmBLkzUJVQ7wiUh0Sa8BFeajH1D6WH98pTE%252BtpN2eCx3yybQ3QISDzIa0vKBvmAAD9DxTV6SJS0ZocLlsNsrF2MxbS%252FXaoGIpXxHxQmBFbnCrO9znPCDvtrDoiv1dMlWAL2eCCeZB26fnIcULIbD%252FgW%252FTp0RuuGoBeKaRgdM5NOj8I%252BeZ8uAR6NcrXCz5EKidsADF3MQ%252FFGZNejsS8phcv37fpEW5YiwmZApUXWu2YucCcy4zgE17I79b8XaydQA75A3sYBPsDn0waOshADuri2AzIoYqM6WBUkEdEnhMuTKM8yADKvVqPSpAv4%252BMDCGRHP9TFt4Y3WOb0x618rb2ztr78UHJom87CojIgacxnvpRvnQq%252BssMCOpqhaUE3YskFCStbywHPMaGyteyfqlgj7JYJ8ulKbpOPP7pu%252BS4EExoFEuL0NZsKeDHru1LZg0i1I3a5Ef%252F%252FR6D5MpWw989wnuG7kFCLOnd7ZwFAuZQ7Lx1GSaxgLFCrgkBaPoUYlLcU60mRmgmax%252FQi4y4uteyuOwTZqf6jeinuoK6mEpu9ZclGgRKEyGqDOBxQj8QrRslG3I7B%252Fr%252B%252F8YwBe03zSCWgGMdeCwUUxQGLHVJofqzDf8DpBf%252Bgw%253D%253D%7Campid%3APL_CLK%7Cclp%3A2047675]

Could even use a sheer material instead of glass fronts??? https://www.ebay.co.uk/itm/124807629653?var=425853419420&_trkparms=ispr%3D1&hash=item1d0f1d4b55:g:79sAAOSw3Z9g63GX&amdata=enc%3AAQAGAAACkPYe5NmHp%252B2JMhMi7yxGiTJkPrKr5t53CooMSQt2orsSxXDXcCydCuSj2Tq2S%252F3GnhAqLIDWKozRaz4cp1rWCgmh7zcVgTQnz7PyXlWrS9VpBSQfNRp51Pkrf5AmyqD8Ywl2VRGK41gRONDLpKaOL%252BPE2%252Fu1F0CGdpzdFhhe1uPM4F5pU4GP6ROcljxi3HANoeGEViIJMeFyoBlUKgwhmCHx%252BCdzPKKYw9qQhUL4ChVFW3RCC5ERIRwbo2dkZgxnF0tGO4VNR%252FopiI6xgrpKfPlTmYC%252F1qzKX8vLkE7aq13T33NNy5be7RtUARDO%252FTVlrfKwuUEZ7qPV38uvZ9JT0CX8qwq0ZDG7ySMear3H3Zjh0mCLuyvUH5yzsMr9tL2Epqd3%252F1is5fPlns9TEDxnNARXZfXOPf2YDPHJJSFbPsAM7X6EqPBrYdlYTm959FH7zfp76Gd8Lf6KbXElbWZKUeM5J8Qr6v8e0noVR4XuSXE8zG0AqVZ0aQLnT9AWQC7wZ%252Bw1k2FSH1BKRJS1uynCna1pVIkukWn0J2bfl0RTriZIFN8ZMTQYuVIbNhKLm49jSKBs9NTNlCmTL4wlm74lN%252BLwEjChNsKBFYNUmfCcWRE3HHeqaFzgN442b4Mkh2QG6iwLV2OjGBHvTXPTDq9YaYxLMWRh3%252BJ9C%252FftqBwgFWihXn7Aywv3nf%252Fuv5ShMGSJolTJyyaK36yeNOI7urre9ijQf3I%252BEh8398PGMJL0fEJf%252Fp7TOEEg6pU7oI24kBxiJVaEXb70NbxzC6qArVnQxY4xPUu2KxHTlljnFWm7nyxb286n3cCxkhV3SCeypavuLadDBMRo2xqizlsgHwK8TFMlEbgcJoq045It%252BIh%252FTbGS%7Campid%3APL_CLK%7Cclp%3A2334524

Attach using magnets in a stiff triangular rod inside the top hem. Either another magnet in the worktop, or a piece of metal. Each piece can then be ripped off easily. The interal corner has extra on the alcove part, so that there's no gap. Could use a 3D printed piece of plastic to form a curve for where the worktop is deeper than the alcove.

FooCAD Source Code
import static uk.co.nickthecoder.foocad.layout.v1.Layout2d.*
import static uk.co.nickthecoder.foocad.layout.v1.Layout3d.*

class Backroom : Model {
    
    val alcove1 = Vector2(820,360)
    val alcove2 = Vector2(860,360)

    val room = Vector3(820+860+1420, 3660, 2580)

    val baseThickness = 30
    val base = Vector3(600, 2500, 737)

    val alcoveBaseDepth = 500
    val alcoveChimneyOverlap = 100

    val shelfDepth = 300
    val shelfShorterBy = 100

    // The height of the bottom of the first shelf
    val shelf1Height = 517 + 737
    // The distance from the bottom of one shelf to the bottom of the next.
    // Enough for a bottle of Galliano.
    val shelfDelta = 390
    // 
    val shelfThickness = 15
    
    override fun build() : Shape3d {
        val wallE = Cube( 100, room.y, room.z )
            .backTo(0)

        val wallN = Cube( room.x, 100, room.z ).frontTo(0).rightTo(0)
        val chimney = Cube( room.x - alcove1.x - alcove2.x, alcove1.y, room.z )
            .backTo(0).rightTo( -alcove2.x )

        val walls = (wallE + wallN + chimney).color( "MediumSlateBlue" )
        val floor = Cube( room.x, room.y, 10 ).topTo(0).backTo(0).rightTo(0)
            .color( "LightGrey" )

        val baseP = Square(base.x, base.y-alcoveBaseDepth)
            .backTo(-alcoveBaseDepth-10)
            .roundCorner(0, 200)


        val surface = baseP.extrude(baseThickness).rightTo(0)

        val alcove1SurfaceP = Square( alcove1.x + alcoveChimneyOverlap, alcoveBaseDepth )
            //.roundCorner(1, 70)
        val alcove1Surface = alcove1SurfaceP.extrude( baseThickness )
            .backTo(0)
            .leftTo(-room.x)

        val alcove2SurfaceP = Square( alcove2.x + alcoveChimneyOverlap, alcoveBaseDepth)
            //.roundCorner(0,70)
        val alcove2Surface = alcove2SurfaceP.extrude( baseThickness )
            .backTo(0)
            .rightTo(0)
            
        val surfaces = (surface + alcove1Surface + alcove2Surface)
            .bottomTo( base.z )
            .color( "Chocolate" )

        val end = Cube( base.x - 20, 15, base.z )
            .rightTo(0)
            .frontTo( -base.y + 300 )
            .color("GhostWhite")
        val post = Cylinder( base.z, 30 )
            .leftTo( -base.x + 30 )
            .frontTo( - alcoveBaseDepth - 40 )
            .tileY(2, -1000 )
            .color( "Grey" )

        val units = surfaces + end + post

        val shelf = Cube(shelfDepth, base.y - shelfShorterBy - shelfDepth, shelfThickness )
            .rightTo(0)
            .backTo(-shelfDepth-10)
        val alcove2Shelf = Cube( alcove2.x, shelfDepth, shelfThickness )
            .rightTo(0)
            .backTo(0)
        val alcove1Shelf = Cube( alcove1.x, shelfDepth, shelfThickness )
            .leftTo(-room.x)
            .backTo(0)

        val singleLevel = (shelf + alcove1Shelf + alcove2Shelf).bottomTo(shelf1Height)
        val shelfEnd = Cube( shelfDepth, 15, shelfDelta * 2 + shelfThickness)
            .rightTo(0)
            .bottomTo( singleLevel.bottom)
            .backTo( singleLevel.front )


        val shelves = (singleLevel.tileZ(3, shelfDelta-shelfThickness) + shelfEnd )
            .color("Chocolate")

        val door = Cube( 770, 40, 2000 )
            .rightTo(0).rotateZ(-70)
            .translate(-60, -room.y, 0)

        // Make sure the shelves are tall enough for a bottle of Galliano (to scale!)
        val galliano = PolygonBuilder().apply {
            moveTo(0,0)
            lineTo(0,350)
            lineTo(16,350)
            lineTo(18, 260)
            lineTo(35, 5)
            lineTo(32, 0)
        }.build().revolve().rightTo(-100).bottomTo( shelf1Height + shelfThickness ).frontTo(-1000)

        println( "Rough floor area ${room.x /1000 * room.y / 1000} m^2" )
        println( "Length of Surface ${surface.size.y + alcove1Surface.size.x + alcove2Surface.size.x}" )
        println( "Shelves ${shelf.size.y} ${alcove1Shelf.size.x} ${alcove2Shelf.size.x}" )

        return (walls + floor + units + shelves + door + galliano)
            // I rotate it, just so that the auto-generated image & thumbnail look better.
            //.rotateZ(90)
    }
}