Jump to content

Cuq

Expert
  • Posts

    676
  • Joined

  • Last visited

  • Days Won

    18

Posts posted by Cuq

  1. First results, the plugin works fine now, and G02 G03 movements with Z also work well on my Marlin firmware.

    Finally, contrary to what I expected on a simple high-speed part, circular interpolation eliminates certain micro-pauses in the machine which generate slight defects on the print.

    Inked20201128_141123_LI.jpg

    • Like 1
  2. Hello,

     

    I'm working on a new Plug_in used to analyse / Debug Cura Profils.  In of his function is to solved issue on invalid profile  (Mainly on the qualityChanges container)   

    PRofile.JPG

     

    The solution works fine but I need to "refresh" the profile in Cura after the modification of the MetaData.   Do you know if there is any solution to "reload" or refresh the GlobalContainerStack after this modication.

     

    Right now I'm oblige to manualy  re-specify the material to update the profil , I'm looking for an automated solution. 

     

    Hoping to have been clear enough in my request and being aware that this kind of answer can only come from a few people on this forum.

     

    @nallath ? 

     

     

     

     

     

     

     

  3. ok .. I have made some minor modification on the @ahoeben Plug-in for my own tests.  I will made some tests regarding  you new settings this weekend. I will give you some feedback.   I only have an Ender-3; so I don't know if this machine will support the 3D circular interpolation.  I don't expect to get real benefits in terms of quality or machine dynamique but I want to test if your new settings will give the possibility to respect the initial small radius shape on this machine.  

    Right now, just on the the theoretical point of view the conversion into 3D arc is correct . Let's see tomorrow if it's ok in the real life.

    • Like 2
  4. On 11/23/2020 at 7:41 PM, FormerLurker said:

    I can't seem to edit my post yet, but here is a correction to the firmware compensation parameters:

    --mm-per-arc-segment=1 --min-arc-segments=12

    I had a dash where it should have been an equal sign.

    Hello @FormerLurker,

     

    We should use :

    • --mm-per-arc-segment=1 
    • --min-arc-segments=12

    or 

    • -a=1 
    • -s=12

    What is the recommanded  command syntax ?

    Cmd.JPG

  5. non c'était marqué JGAurora A5 il me semble. Du coup c'est vrai que la hauteur sous portique étant très faible ici .. Il faut tricher et augmenter la valeur en s'assurant comme indiqué que l'ordre des pièces sera bon . Mais du coup je pense pas que l'impression en ligne puisse passer. il faudrait mettre les pièce en diagonal ?

    JGAurora.JPG

  6. En mode d'impression "Un à la fois" la zone d'impression est limitée par le paramètre "Hauteur du portique" pour éviter que théoriquement la barre supérieure de ton portique ne vienne frotter sur tes pièces.   Pour enlever cette limitation augmente la valeur dans les paramètres de l'imprimante et assure toi que l'ordre d'impression ne risque pas d'amener le portique sur une pièce déjà imprimée. 

     

     

    hauteur du portique.JPG

  7. Hello,

     

    I have an problem to manage / link Quality Changes containers in one of my new Plug-in.   I don't have any problem to get the Quality changes containers associated with a machine by using the findInstanceContainers function. But I get at least two containers for each profil : one for the Extruder ( if it's a single extruder machine ) and one for the global stack.  But I don't know how is made the link between this two containers and how we can detect if it's an extruder container or a global one.   The only possibility is to analyse the Id. But this doesn't look a very clean solution to me.

    Do you know if there are any other function / method / key to anlyse the "type" of containers and the link between these files ?

     

    Thanks in advance

  8. When you import an image in cura you can define if the black is the higher or the lower.  Normaly if it's to create a Lithophane;  dark part must the higher ( default setting)  because if you want a dark area you need to have as much as material as possible.

     

    Settings.JPG

    • Like 1
  9. Thanks for you comment @ahoeben . Finaly this 

    solution is not for me, I'm always printing from the SD card and on a test part like the Benchy I can see a lost of quality on small radius without real benefits on printing time. But I'm pleased to have run my machine in G2/G3 mode for the first times. It was not a wast of times. Thanks again for the amazing work you made for the community.

  10. My First test with your PlugIn .. Works great on my Creality machine (basic Stock machine , no firmware modification, printing from sd card). No real difference of quality .. But the G02/G03 interpolation part is a "little" bit faster on the machine but not significant. 

     

     

    126981980_1470846176455074_1670163064617322411_o.jpg

     

    G1-G2G3.jpg

  11. 16 hours ago, Fabiuz said:

    Thanks, this is what I was looking for! Can you link the page where this "Property" are documented?

    Unfortunetly there is no real documentation for these scripts or plugins ...   If you need some informations you must go directly in the source code . For this type of informations I'm reading directly the  fdmprinter.def.json Jason file   https://github.com/Ultimaker/Cura/blob/master/resources/definitions/fdmprinter.def.json

     

    You can find in this file every parameters associaed with a printer and for each parameters existing proterties.

    layer_height.JPG

  12. I'm still avaing some problem to implement this code .  I can get the facette center point and the normal with 

     

    face_mid, face_normal = meshdata.getFacePlane(face_id)

     

    But I'm still fighting with the possibility to have in the same time the subroutine _onSelectedFaceChanged and def event(self, event)  . An idea or a suggestion to move forward on this point ?

     

  13. Ok I will investigate this code ...

     

        def _onSelectedFaceChanged(self):
            if not self._select_face_mode:
                return
    
            self._handle.setEnabled(not Selection.getFaceSelectMode())
    
            selected_face = Selection.getSelectedFace()
            if not Selection.getSelectedFace() or not (Selection.hasSelection() and Selection.getFaceSelectMode()):
                return
    
            original_node, face_id = selected_face
            meshdata = original_node.getMeshDataTransformed()
            if not meshdata or face_id < 0:
                return
            if face_id > (meshdata.getVertexCount() / 3 if not meshdata.hasIndices() else meshdata.getFaceCount()):
                return
    
            face_mid, face_normal = meshdata.getFacePlane(face_id)
            object_mid = original_node.getBoundingBox().center
            rotation_point_vector = Vector(object_mid.x, object_mid.y, face_mid[2])
            face_normal_vector = Vector(face_normal[0], face_normal[1], face_normal[2])
            rotation_quaternion = Quaternion.rotationTo(face_normal_vector.normalized(), Vector(0.0, -1.0, 0.0))
    
            operation = GroupedOperation()
            current_node = None  # type: Optional[SceneNode]
            for node in Selection.getAllSelectedObjects():
                current_node = node
                parent_node = current_node.getParent()
                while parent_node and parent_node.callDecoration("isGroup"):
                    current_node = parent_node
                    parent_node = current_node.getParent()
            if current_node is None:
                return
    
            rotate_operation = RotateOperation(current_node, rotation_quaternion, rotation_point_vector)
            operation.addOperation(rotate_operation)
            operation.push()

     

    • Like 1
×
×
  • Create New...