What's new

Any ideas what the next update will include?

Max

Administrator
Staff member
Ok, Alibre doesn't need any optimizations at all, according to you.
Please have a better day. I did not say anything like what you are acting like I said. I said that we have 2 existing methods that are performant at scale, and that I did not understand the way in which you were using terminology.

In your subsequent example, you have an imported part with no history that you've converted to a surface. Check Part doesn't show complexity, but Check Surface will. For native parts, adding a convert to Surface feature at the end of the tree will not positively impact recompute. There may be some sneaky way to achieve a lightweight approach, possibly, but they all have drawbacks - most notably in your example the mass properties of all the fasteners would be ignored. It is likely any such solution would be new and custom, not just the application of features we have today out of the box. It is also possible, though I do not actually know, that having surfaces of equivalent geometry at scale is equally unperformant as having bodies at scale. No idea. Not something we've tested. It's more likely I think that having "a 3D representation" that is also performant at scale will require simplification (e.g. a schematic revolve-cut representation), not just changing entity types.

The takeaway here, I hope, is that often there is a lot more subtlety to performance related things than might meet the eye and, often, we ask ourselves whether solving these problems is really worth the time in cases like this where there exists an industry-standard performant approach already working (using textures or graphical representation).
 
Last edited:

stepalibre

Alibre Super User
I did not understand the way in which you were using terminology.
I did the same. The point there was to show how a model could have geometry visible without any topology. The modeled thread is added to the same collections edge, face, verts. Surfaces have a separate collection true but surfaces are not as heavy. Alibre' support for surfaces is limited which in this case is a good thing. My question was more about how modeled threads would perform as more thread features are added to parts, assemblies and drawings. Let's wait for the release!

About Solid to Surface: the result is history converted into surfaces, and part topology is cleared.

My programs select edges and faces. Adding and suppressing features will change index positions. To not have that happen, I need to isolate the model topology by clearing the collections. Then my code can reliably make selections. Solid to Surface command does the clearing. This is very efficient combined with configurations. Solid to Surface does not have dependents, they can be deleted without breaking anything.

I made a part to explain how this is more performant in my workflow. The same concept can work for modeled threads:.

With Topology:

1744446520988.png

Without Topology:

1744446605346.png

With Topology:

1744446855306.png

Without Topology:

1744446888375.png

With topology:

1744446926124.png

At this point my code will select Edge<1> or Edge<2> to fillet or chamfer the top edge. I suppress Solid to Surface at different places in the model where my program is selecting an edge or face. After Solid to Surface the topo collections are cleared new feature topo is added.

Automating assemblies and referencing is simplified using this workflow.

1744449402982.png

Automating features is more manageable, and simplified when using AI and this workflow.

Python:
def valid_fillet_example():
    # Create a new part named "BlockForFillet"
    part_obj = Part("BlockForFillet")

    # Create a simple rectangle on the XY-plane
    xy_plane = part_obj.GetPlane("XY-Plane")
    sketch = part_obj.AddSketch("SketchBlock", xy_plane)
    # 40×20 rectangle
    sketch.AddRectangle(0, 0, 40, 20, False)
    
    # Extrude the rectangle to 10 mm height
    part_obj.AddExtrudeBoss("BlockExtrusion", sketch, 10, False)

    # Enumerate edges to see what edges exist
    edges = part_obj.GetEdges()
    for i, e in enumerate(edges):
        print("Index:", i, "Name:", e.Name, "Length:", e.Length)

    # Suppose from the printout, we see that the top edges might be Edge<5>, Edge<6>, etc.
    # We'll pick one edge that is definitely a sharp top edge:
    edge_name_to_fillet = "Edge<6>"
    target_edge = part_obj.GetEdge(edge_name_to_fillet)

    # Apply a constant fillet of 2 mm to that sharp edge
    part_obj.AddFillet("MyFillet", target_edge, 2.0, False)
    print("Fillet succeeded on a valid sharp edge:", edge_name_to_fillet)

# Example usage:
valid_fillet_example()

 
  • Like
Reactions: tyc

tyc

Senior Member
@stepalibre maybe just be patient and wait for the release. Then you can do your code testing with the actual product.

The modeled thread feature appears to be primarily designed for 3D printing, and it's unlikely that anyone would create an assembly filled with thousands of threaded parts. In most cases, there is no need for modeled threads; simplicity is often the best approach. By keeping designs straightforward, we can enhance efficiency and functionality.
 

domcm

Senior Member
Some fantastic updates on the way! As a long time Alibre user, I am especially happy to see the usability updates such as Customizable Rotation Speed and Customizable Edge Rollover Width.
 

aptivaboy

Senior Member
Thank you for everyones' replies. I am looking forward to this.

One possible suggestion to pass on regarding the filleting, Max... At some point, could a, "Max Fillet" or "Max Chamfer" option be included in the filleting and chamfering dialogue? This way, the user would see immediately how large the fillet or chamfer would be, precisely how big Alibre could get it, without having to click upwards over and over. I realize I'm likely a special case, working mostly in organic forms with large sweeping curves (think sci-fi models) but it would be a time saver. Anyway, just something to maybe pass along for the future.

Thank you for listening and for all of the replies!

Robert
 

stepalibre

Alibre Super User
@stepalibre maybe just be patient and wait for the release. Then you can do your code testing with the actual product.

The modeled thread feature appears to be primarily designed for 3D printing, and it's unlikely that anyone would create an assembly filled with thousands of threaded parts. In most cases, there is no need for modeled threads; simplicity is often the best approach. By keeping designs straightforward, we can enhance efficiency and functionality.

If I don't push back on Max at least once a month I can't live with myself. My comments and questions were really about performance and stability not modeled thread representation or the hole tool. I constantly hit performance walls that should've been fixed 5 versions ago. And still having almost every 3D CAD and DCC app installed, Alibre Design is in a unique position.

I do have a need to show modeled threads everywhere they are used. There are many optimizations that can reduce the complexity of geometry rendering. An LOD system is one but there are too many to name. The simplest is a toggle that automatically or when a box is checked the higher level of detail representation is turned off, and replaced with a lower level of detail representation such as a cosmetic thread. My programs create this behavior, I posted a trigger/sensor script example. That is the piece that allow me to detect model changes and do stuff like automatic feature suppression. Alibre works great for tools like this!

A sensor system is a very different use case over events or callbacks. A sensor is a real time background process that every file in the session can be control with. You can have any number of sensors running concurrently independent of each other. Sensors can read/write data and do stuff. This is important because the Alibre API is not fully implemented and there is no way to regenerate and make updates the way I want.

For example, in an assembly parts could all have real modeled threads but they are not visible or computed, only when zoomed in, in edit mode or when Face<3> is selected the modeled threads are shown. Zooming out will trigger the lightweight representation. It's pointless for modeled threads to be realized in a context where they are not visible, so a lightweight representation and geometry instancing is smart. This is not a new concept many applications and APIs work this way.

I understand that there is more to the story.

Thank you for everyones' replies. I am looking forward to this.
I am too!
 
Last edited:

Just_Steve

Member
If I don't push back on Max at least once a month I can't live with myself.
You sure can. I believe in you.

At the risk of coming off as The Tone Police, I gently suggest that sometimes your comment comes across as being adversarial and/or confrontational when that isn't called for. You don't need to "push back." Really, you don't.

Expressing your wants and needs is a good thing, but it feels like you are frustrated and maybe even resentful that Max isn't personally making changes for you, specifically. You are an extremely sophisticated user, on the far right-hand side of the user bell curve; I will candidly admit that much of the time I don't even understand what you're asking for.

It's not that I'm dumb--it's that you're very, very, very smart. I can't blame Max for being somewhat confused as well. And when Max asks you for clarification, it seems like you chose to lash out. C'mon, man, let's not do that.

It's a gnarly world out there, but it can be a friendly forum.
 
Last edited:

stepalibre

Alibre Super User
My jokes don't come through?

I don't mean it that way, not at all. I hope @DavidJ and @Max and team understand this. I express the good and the bad if present, as much as possible. I provide examples to minimize confusion though I admit I am not always successful. Tough discussions are necessary for improvement, but I agree that a more friendly approach is best. I do appreciate Max's attention and the time he takes to reply to my ramblings. Even though email he reply promptly with questions and answers. Thanks Max.

However when get Target no longer availablexom.alibre. design, ops. OperationTargetProxy topologyAutographOrGuid = [{513.0.0[#171#183][#159#166#172]}] modeling a part, that I can model in 5 programs (or write code to create it) side by side with Alibre Design Expert but without any issues, there is room for improvement and not always a nice way to stay it.
 

stepalibre

Alibre Super User
My jokes don't come through?

I don't mean it that way, not at all. I hope @DavidJ and @Max and team understand this. I express the good and the bad if present, as much as possible. I provide examples to minimize confusion though I admit I am not always successful. Tough discussions are necessary for improvement, but I agree that a more friendly approach is best. I do appreciate Max's attention and the time he takes to reply to my ramblings. Even though email he reply promptly with questions and answers. Thanks Max.

However when get Target no longer availablexom.alibre. design, ops. OperationTargetProxy topologyAutographOrGuid = [{513.0.0[#171#183][#159#166#172]}] modeling a part, that I can model in 5 programs (or write code to create it) side by side with Alibre Design Expert but without any issues, there is room for improvement and not always a nice way to stay it.
Update:
I get asked why do I use Alibre if other apps are better. Why use Alibre if FreeCAD is better. I think Alibre Design is better. I development with many CAD and DCC apps and APIs. I use Alibre because it's better for general 3D CAD work and I have custom programs and workflows made for Alibre Design. There are areas where it is not good enough and I incorporate custom tools and applications to fill those gaps. I don't compare Alibre Design, SolidWorks or Inventor. They are all 3D CAD applications but with very different workflows and toolsets. I'm comparing modeling stability and reliability not feature to feature or command to command. This is all subobjective, we each have our own use cases.
 

HaroldL

Alibre Super User
Thank you for everyones' replies. I am looking forward to this.

One possible suggestion to pass on regarding the filleting, Max... At some point, could a, "Max Fillet" or "Max Chamfer" option be included in the filleting and chamfering dialogue? This way, the user would see immediately how large the fillet or chamfer would be, precisely how big Alibre could get it, without having to click upwards over and over. I realize I'm likely a special case, working mostly in organic forms with large sweeping curves (think sci-fi models) but it would be a time saver. Anyway, just something to maybe pass along for the future.

Thank you for listening and for all of the replies!

Robert
That sounds like a great idea. It would take a lot of guesswork out of some designs.
(BTW, I added the Bold text in the comment reply for emphasis.)
 

stepalibre

Alibre Super User
:) = Alibre is working just as well as FreeCAD v1
;) = Max is dropping new features in the chat
:( = PDM server is down but it's running on the same machine
:mad: = I tried to start a 2nd instance of V28 but now it silently prevents it
:confused: = AlibreScript is still IronPython 2.7 when IronPython 3 was released old but still hurts
:cool: = My AlibreScript AI is working with Grok and Mistral
:p = Relief Maker is working now
:D = Relief Maker + Marmoset 5 + Blender 4.4
:eek: = PDM without configuration support
:oops: = I forgot where I saved a few models and now searching PDM I noticed I saved them in my downloads folder, not in PDM
:rolleyes: = I need to finish my addon but is waiting for @NateLiquidGravity custom toolbars addon because I don't have time to update my solution
o_O = I thought modeled thread support would never come this soon
 
Top