Jump to content

Cuq

Expert
  • Posts

    676
  • Joined

  • Last visited

  • Days Won

    18

Posts posted by Cuq

  1. HEllo,

     

    I'm trying to use the code node.callDecoration("getConvexHull")  to get the Convex hull of an element . I got the coordinates points but the Code callDecoration("getConvexHull")  change 'something' in the scene and then Cura Crash .

     

    Any Idea or advise will be welcome ( @nallath, @fieldOfView ?)

     

        def addAutoSupportMesh(self) -> int:
            nb_Tab=0
            act_position = Vector
            
            for node in DepthFirstIterator(self._application.getController().getScene().getRoot()):
                if node.callDecoration("isSliceable"):
                    Logger.log('d', "isSliceable : {}".format(node.getName()))
                    node_stack=node.callDecoration("getStack")           
                    if node_stack: 
                        type_infill_mesh = node_stack.getProperty("infill_mesh", "value")
                        type_cutting_mesh = node_stack.getProperty("cutting_mesh", "value")
                        type_support_mesh = node_stack.getProperty("support_mesh", "value")
                        type_anti_overhang_mesh = node_stack.getProperty("anti_overhang_mesh", "value") 
                        
                        if not type_infill_mesh and not type_support_mesh and not type_anti_overhang_mesh :
                        # and Selection.isSelected(node)
                            Logger.log('d', "Mesh : {}".format(node.getName()))
                            
                            hull_polygon = node.callDecoration("getConvexHull")
                            if not hull_polygon or hull_polygon.getPoints is None:
                                Logger.log("w", "Object {} cannot be calculated because it has no convex hull.".format(node.getName()))
                                continue
    
                            for point in hull_polygon.getPoints():
                                nb_Tab+=1 
                                Logger.log('d', 'X : ' + str(point[0]))
                                Logger.log('d', 'Y : ' + str(point[1]))
                                # self._createSupportMesh(node, act_position)
                                   
            return nb_Tab

     

  2. I make my plugins for my own needs. And as I don't print so tricky material , I don't need such type of tricks; but thanks a lot for this exchange It 's always interesting. You give me anyway an idea. As it is very easy to get the convex hull of the model ( the shadow of the model you already see on the build plate)  I think I will try in a futur release to place automaticaly some tab in the corner of these positions. Thanks a lot for this idea.    

    • Like 1
  3. Hello,

    That's a different request from the initial demand. But on this point I'm totaly agree with you. It's almost impossible to know what have been modified and if you say "Update",  your profile are automaticaly updated whitout any option to get back the initial state. So by security you prefer to create a new one and after a while you have dozens of profile #1 #2 #3.. But you don't know what is the real good one.  Profile management in Cura sucks ! 🙂   

    Thats Why I'm not using it 😢

    • Like 3
  4. This option is already available since a long time . In the general settings : Default behavior when opening a project file.

    image.png.de5fe56f1df793249b099dd03bace14b.png

     

    If you select "Always ask me this" , When you will load a project you will have the choice between :

    image.png.3a075f92bb4384f1c20162dc085d2c73.png

     

    Open As project -> the default behaviour with the choice of the creation or update of the existing profile. 

    OR Import Model. In this case Cura will only load the geometry, And in this case the current printer, the current profile and the current material are used.

     

  5. 3 hours ago, darkdvd said:

    Je pense que @Pierranthony a raté son arrivée sur notre forum si vivant et chaleureux 😁 

     

    J'ai trouvé le prochain gif pour @darkdvd 

    cerbere.gif et mon prochain print

    image.thumb.png.b2e9a9944c4d2ceab14f997350568608.png

     

    A noter que le choix du plateau n'est pas anecdotique 🤣

     

     

  6. Récupéré ne veut pas dire Gratuit .. Il y a des machines récupérées qui restent plus cher qu'une achetée. 

    Sinon petite précision concernant l'aide en ligne du Settings Guide. La langue des articles n'a rien à voir avec la langue choisie dans Cura. Au démarrage c'est effectivement la langue du logiciel. Mais si vous avez changé la langue des articles Ici :

    image.thumb.png.f132a04ed0faddbbff4b15442e6c1fbf.png

     

    C'est cette langue qui est affichée ( sauf si un article n'était pas traduit) l'on rebascule alors sur l'article par défaut en Anglais. Mais pour le français comme ils sont tous traduits ca ne devrait pas exister (si vous constater une erreur le mieux c'est de remonter vos remarques ici : https://github.com/Ghostkeeper/SettingsGuide/discussions/86 en spécifiant la version du plugin ( actuellement 2.9.0) et de préférence toujours avec la dernière version ou alors ici https://github.com/Ghostkeeper/SettingsGuide/issues si l'erreur concernait tous les articles.

  7. Le problème vient de ton fichier STL, Les normales des trinangles ne sont pas bonnes ce qui pertube le fonctionnment du trancheur. On peut le voir avec le rendu , une fois le triangle et rouge, celui d'a coté non .

    image.thumb.png.58df8ed1a9e826f4bf2218accc0eb194.png

     

    Corrige le problème du STL avec MeshMixer par exemple avant d'essayer la découpe dans Cura.

     

  8. I'm sure there is a simplest solution, but nothing better for the moment.

     

    		width: childrenRect.width
    		height: !freeformButton.checked && !abutmentButton.checked  ? 0 : (abutmentButton.checked ? (UM.Theme.getSize("setting_control").height*2+UM.Theme.getSize("default_margin").height): childrenRect.height)
    		anchors.leftMargin: UM.Theme.getSize("default_margin").width
    		anchors.top: textfields.bottom
    		anchors.topMargin: UM.Theme.getSize("default_margin").height

     

  9. Yes if you modify the code in the Postprocessing Plugin  (Ultimaker Cura 5.x.x\share\cura\plugins\PostProcessingPlugin\PostProcessingPlugin.py  or Ultimaker Cura 4.x.x\plugins\PostProcessingPlugin\PostProcessingPlugin.py)

     

            if ";POSTPROCESSED" not in gcode_list[0]:
                for script in self._script_list:
                    try:
                        gcode_list = script.execute(gcode_list)
                    except Exception:
                        Logger.logException("e", "Exception in post-processing script.")
                if len(self._script_list):  # Add comment to g-code if any changes were made.
                    gcode_list[0] += ";POSTPROCESSED\n"
                gcode_dict[active_build_plate_id] = gcode_list
                setattr(scene, "gcode_dict", gcode_dict)
            else:
                Logger.log("e", "Already post processed")

     

    But you will have to do it for every new release of Cura.

  10. No difference between printing via usb or sd card. To configure cura to heat the nozzle and the build plate , you must install the machine settings plugin of @fieldOfView to get access to the hidden machine parameter , and you will have an option to activate/desactivate to wait the nozzle or the build plate have reach the right temperature before to execute the program.

     

    https://marketplace.ultimaker.com/app/cura/plugins/fieldofview/PrinterSettingsPlugin

     

    image.png.a4da3f4f435b4407fb9b8ebbb17f502f.png

  11. On thing is to reduce the flow density for the support element , this parameter is not in the support section. Like that you have the weakness of yours supports and you save some material 

     

    You can easely reduce to 70%

×
×
  • Create New...