Jump to content

Prime tower error


jones4642

Recommended Posts

Posted · Prime tower error

This error has persisted through every version of Cura that I have used, up through 4.5.0 now, and it would be great to find a solution for it. The problem comes about when I use breakaway support material touching the build plate only, and I use the "minimum area support" parameter to keep it from building useless support towers up to microscopic facets. The minimum support area parameter does a great job of eliminating these support towers, the problem is, the prime tower continues to build, even though it is just the build material, no support material, above the last level where support material was actually used. While there is measurable material going into the tower, the real irritation is the time involved. On some of my taller builds, this can easily be half a day or more of print time! I really need to find a way to get around this.

  • Link to post
    Share on other sites

    Posted · Prime tower error

    Sorry - pinging this one again.

     

    I really need a fix for this. It's costing me many days of wasted print time. The logic for determining the top of the prime tower seems to be a bit dodgy. If I can prevent a surface from getting support material using the angle limiter, then the prime tower ends when the support ends, but if I use the "minimum support area" setting, then the prime tower goes all the way up to the surface that was eliminated by the use of that setting, even though there is no support material.

     

    Additionally, on the particular part I'm dealing with at the moment, the face that it is trying to support should not even be supported I think. It a hole in the side of a vertical face. I'm only using support from the build plate, and there is no surface hanging over the build plate. It's one of those spots where Cura likes to build a tiny but tall support tower all the way up to the face, but then doesn't actually do anything to support the face.

     

    A related issue - every time I get in a situation where Cura is trying to build a tiny support tower, where that tower is the only remaining support, the feeder ends up grinding away the material, I guess due to rapidly shoving it in and out without actually feeding any significant material, and then the printer pauses claiming that it is out of material. I have to unload, cut off most of a meter of material and reload, and then restart, only to have it repeat this 20 or 30 minutes later. Using the "minimum support area" setting, I can generally prevent it from building support structures like this (as long as I actually catch them while I'm in Cura), but I still get the prime tower going to the original height of the useless support structure that I just eliminated.

     

    A fix in Cura would be ideal, but if anyone has any suggestions to help me defeat this, I would really appreciate the help.

  • Link to post
    Share on other sites

    Posted · Prime tower error

    It's sad to say that I have never gotten the hang of support blocking. The areas I would want to block need support material at the bottom end of the part, but the need stops about 15mm off the bed. The bogus surfaces are another 12 or 15cm off the bed. I'm using the 0.25mm nozzle, so I'm limited to 0.1mm layer height, so that's 1200 to 1500 trips to the prime tower with multiple laps around the tower each time. Here's an example part to illustrate the problem. I have min support size set to 100 which keeps support material out of some small pockets near the base where the support material usually breaks up and makes a bit of a mess out of the part. The real problem is the roughly horizontal hole up near the top of the part. Cura wants to support the ends of the hole, so some minimum value of "minimum support area" is needed, but the prime tower grows up that level whether or not there is support material there.

     

    It seems that some of the parameters that affect where support goes will correctly adjust the prime tower height, but other parameters do not. It seems like it should be fixable.

    UMS5_OBF block 3 V4.1c 1-layer.3mf

  • Link to post
    Share on other sites

    Posted · Prime tower error

    It sounds easy, but I can never get it to block where I want. In this case I would need to start blocking about 15mm off the build plate. I guess I just need to spend some time with it. Still, this seems like a manual workaround for a software bug.

  • Link to post
    Share on other sites

    Posted · Prime tower error

    Of course. Automatic support generation is rather complex to get right.

     

    To me the minimum support area setting sounds like a workaround for some manual change you want. If those areas don't satisfy the overhang angle then you shouldn't remove those areas based on their size. Size dependent support removal means that some small details will never be supported, no matter how bad the overhang is.

     

    It's really easy to get it to block exactly where you want, because you can simply click the location.

  • Link to post
    Share on other sites

    Posted · Prime tower error
    17 hours ago, bagel-orb said:

    Of course. Automatic support generation is rather complex to get right.

     

    To me the minimum support area setting sounds like a workaround for some manual change you want. If those areas don't satisfy the overhang angle then you shouldn't remove those areas based on their size. Size dependent support removal means that some small details will never be supported, no matter how bad the overhang is.

     

    It's really easy to get it to block exactly where you want, because you can simply click the location.

    If you have time, please have a look at the attached model, and see if you can find a way to support the small inset at one end, without building exterior support walls up the exterior faces. I've eliminated the support walls by increasing min support area to 200mm^2, but I still get a prime tower up to the top of the part which increases build time by about 9 hours. The prime tower is only needed for the 1st 1mm of the build. After that it is just a waste of resources.

    UMS5_Wing V4.2b - OBF part 2.3mf

  • Link to post
    Share on other sites

    Posted · Prime tower error

    Small inset? I'm not sure what you are talking about.

     

    Could you grab a screenshot and (e.g. in MS Paint) draw a circle around the 'smal inset' you want to have supported?

  • Link to post
    Share on other sites

    Posted · Prime tower error

    Oh you mean at the bottom?

     

    I don't normally do case-work like this, but here I am helkping you anyway. 😄 

     

    Problem situation:
    Adjusted settings: Support touching build plate only, minimum support area
    These settings didn't cut it.

     

    Solution:

    Remove customized settings and start fresh 🙂

     

    Add support blocker:
    image.png.4946ee01289a7305d7d5660e460e501a.png

     

    Select and scale the support blocker:
    image.thumb.png.cae67b0a3bdd3d6509091d575065ecfb.png

    Result:

    image.thumb.png.39947da60c538b9a90d4b3c8c20e1d02.png

     

    Here's the project file for you! [attached]

    Happy printing!
     

    UMS5_890022685_UMS5_WingV4.2b-OBFpart2.3mf

  • Link to post
    Share on other sites

    Posted · Prime tower error
    8 hours ago, bagel-orb said:

    Oh you mean at the bottom?

     

    I don't normally do case-work like this, but here I am helkping you anyway. 😄 

     

    Problem situation:
    Adjusted settings: Support touching build plate only, minimum support area
    These settings didn't cut it.

     

    Solution:

    Remove customized settings and start fresh 🙂

     

    Add support blocker:
    image.png.4946ee01289a7305d7d5660e460e501a.png

     

    Select and scale the support blocker:
    image.thumb.png.cae67b0a3bdd3d6509091d575065ecfb.png

    Result:

    image.thumb.png.39947da60c538b9a90d4b3c8c20e1d02.png

     

    Here's the project file for you! [attached]

    Happy printing!
     

    UMS5_890022685_UMS5_WingV4.2b-OBFpart2.3mf 598.72 kB · 0 downloads

    Thanks for taking the time. I'm having trouble figuring out why this worked. It looks like you are blocking support starting about half way up the piece, and that prevents all the superfluous support up the side walls. Do you know what that support material was trying to accomplish? Is there something about the shape that would make it want to add support? Oddly, I've printed the same shape, but instead of shelling the part and adding interior support manually, I used Cura to do a low density fill, with one wall layer and something like 2% fill, and in that case it does not try to build support up the sidewalls. The exterior of the part is the same either way.

  • Link to post
    Share on other sites

    Posted · Prime tower error

    Support was being added for the top of the part, but the support is a bit wider than the overhang. That's meant to be able to support that top surface better, but in this case it was so far removed from the top surface that it ended up outside.

     

    You could also have prevented the support by reducing the support horizontal expansion setting.

     

    Now I just tell the program not to see the top surface as overhang at all, so no support is generated in the first place.

     

    The support blockers are actually blocking overhang, not the support structure itself.

  • Link to post
    Share on other sites

    Posted · Prime tower error

    Interesting. It is a lofted part , so may have infinitesimal overhang, on the order of numerical resolution. Looks like I need to spend some time getting to know the blocker function.

     

    Now that I'm seeing this part and some similar parts actually printed, I'm not sure that my effort to shell the parts out in CAD is really that helpful. I tried to make the shell with the ideal wall thickness for two layers. This part, with nearly vertical walls is coming out OK, but other parts with more angled walls are a bit of a mess. It ends up trying to make walls 2 plus a small fraction thick, and the walls end up being a bit of a mess - lots of texture in some areas. If I use Cura with 2 wall layers and zero fill, I get really good walls, but it's a bit of effort to get support structure inside the part as needed. I can add in low percentage fill, but again, it's challenging to get material where I want it and still keep the part density low enough to be useful.

     

     

  • Link to post
    Share on other sites

    Posted · Prime tower error

    Yeah. Minimizing infill can be difficult.

     

    You could look at gradual infill and infill meshes. Those are some advanced functionality to be able to control the infill better. But truth be told, it's not easy to understand. Maybe first get the hang of support blockers (*overhang* blockers).

  • Link to post
    Share on other sites

    Posted · Prime tower error

    We're 2022 and this bug is still in the latest cura. I made a script that detects the last extruder switch and removes the prime tower from all higher layers. You'll need to switch on relative extrusion (under Special Modes) for it to work. Hope this helps anyone running into this issue.

     

    from ..Script import Script
    
    from UM.Application import Application #To get the current printer's settings.
    from UM.Logger import Logger
    
    from typing import List, Tuple
    
    class FixPrimeTower(Script):
        def __init__(self) -> None:
            super().__init__()
    
        def getSettingDataString(self) -> str:
            return """{
                "name": "Fix Prime Tower",
                "key": "FixPrimeTower",
                "metadata": {},
                "version": 2,
                "settings":
                {
    
                }
            }"""
    
        def initialize(self) -> None:
            super().initialize()
    
    
        def execute(self, data: List[str]) -> List[str]:
           
            lastTlayer = 0;
            for index, layer in reversed(list(enumerate(data))):
                lines = layer.split("\n")
                hasT = False
                for line in lines:
                    hasT |= line.startswith("T")
                if hasT:
                    lastTlayer = index
                    break
    
            for index, layer in enumerate(data):                
                
                if index <= lastTlayer:
                    continue;
                lines = layer.split("\n")
                
                
                cnt = 0
                nlst = []
                inPrimeTower = False
                # Scroll each line of instruction for each layer in the G-code
                for line in lines:
                    if not inPrimeTower:
                        if ";TYPE:PRIME-TOWER" in line:
                            inPrimeTower = True
                            nlst.pop()
                            nlst.pop()
                        else:
                            nlst.append(line)
                    else:
                        if self.getValue(line, "E") is not None and float(self.getValue(line, "E")) < 0:
                            inPrimeTower = False
                newLayer = ""
                for line in nlst:
                    newLayer += line + "\n"
                data[index] = newLayer
            return data

     

  • Link to post
    Share on other sites

    Create an account or sign in to comment

    You need to be a member in order to leave a comment

    Create an account

    Sign up for a new account in our community. It's easy!

    Register a new account

    Sign in

    Already have an account? Sign in here.

    Sign In Now
    • Our picks

      • UltiMaker Cura 5.7 stable released
        Cura 5.7 is here and it brings a handy new workflow improvement when using Thingiverse and Cura together, as well as additional capabilities for Method series printers, and a powerful way of sharing print settings using new printer-agnostic project files! Read on to find out about all of these improvements and more. 
         
          • Like
        • 18 replies
      • S-Line Firmware 8.3.0 was released Nov. 20th on the "Latest" firmware branch.
        (Sorry, was out of office when this released)

        This update is for...
        All UltiMaker S series  
        New features
         
        Temperature status. During print preparation, the temperatures of the print cores and build plate will be shown on the display. This gives a better indication of the progress and remaining wait time. Save log files in paused state. It is now possible to save the printer's log files to USB if the currently active print job is paused. Previously, the Dump logs to USB option was only enabled if the printer was in idle state. Confirm print removal via Digital Factory. If the printer is connected to the Digital Factory, it is now possible to confirm the removal of a previous print job via the Digital Factory interface. This is useful in situations where the build plate is clear, but the operator forgot to select Confirm removal on the printer’s display. Visit this page for more information about this feature.
          • Like
        • 0 replies
    ×
    ×
    • Create New...