1. This site uses cookies. By continuing to use this site, you are agreeing to our use of cookies. Learn More.

V22 Assembly Material Bug

Discussion in 'General Discussion' started by DanielIdzerda, Oct 19, 2020.

  1. DanielIdzerda

    DanielIdzerda Member

    Hi All,
    Ran into this bug a couple of days into using V22. Submitted it to support and they acknowledge it as a bug but at this point its not important enough to warrant a hot-fix release (I suspect if there are enough people that it is an issue for it will get moved up the list) so we need to wait till V23 (Feb) for a fix for it.

    The Bug:
    The new material system does not work in assemblies and you cannot override the "Material" field manually on the Part Data page.
    That in itself is able to be worked around but a NEW (Opening existing files keeps the existing material) file defaults to "Aluminum - cast hammered"

    Wondering if anyone else has run into this and if not how are you handling materials on assemblies differently?

    One of the main places we use the material on an assembly would be a weldment.

    Also we have the Material showing on our title block and use the same title block for all our drawings right now. Do you run different title blocks for parts and assemblies?

    For now we have rolled back to V21 but V22 has some nice improvements (except for the files that we have saved in the new version).
     
  2. Lew_Merrick

    Lew_Merrick Alibre Super User

    Hi Daniel -- Then you do not understand, Material Values are assigned to Parts and not to Assemblies (which are made up of Parts). -- Lew
     
  3. JST

    JST Alibre Super User

    Perhaps neither of you understand.....

    A hypothetical: You have an assembly which holds a fuel tank assembly (tank, valve,cap, etc). Now you have a mass that is not terribly easy to model, as the fuel fills the tank, which may be odd shaped. You would need to define "fuel" material, and then do a boolean (perhaps not that easy due to the thin walled tank) to fill it.

    Now, I do think that is the "proper" procedure, giving the answers to a number of questions that you need answers for (volume, cg, etc), but I can see why a person might want to change properties on the fuel tank assembly instead, to do a quick and dirty sanity check. Not every quick check during the design process needs an exhaustive and academically correct analysis of every part involved.

    yes, there are other ways to do a quick check, of course, and not all of them even need the fuel tank present to do the check. But it is a reasonable thing to want.

    There is a conflict here in "CAD land".... The academics want to say that CAD is a DOCUMENTATION tool only, while practical designers claim (with very good reason) that CAD is a DESIGN tool. This is a case where the academic definition clashes with the practical design usage.
     
    Last edited: Oct 20, 2020
  4. DanielIdzerda

    DanielIdzerda Member

    Lew/JST,
    I think that you both make good points.
    Lew I agree with this, looking at it again weldment's are a bad example they really should be treated as you said.

    Another example that one of my colleges pointed out would be a pneumatic cylinder. We currently break the piston and shaft from the body and make an extended and retracted configuration. In this case the "Assembly" is actually a "Part".
    We use the Material field for the part number so that when it is used in another assembly we do not need to have an additional BOM table column for vendor part number when it is a mix of manufactured and purchased parts.
    Maybe there is a better way of doing this.

    We have not been using the analysis part of materials, so this did not really come to mind. But is a cool example. Before V22 we just manually entered the material into the field (not saying this is the ideal, just how we were using it)

    ---

    With all that in mind, even if you say we are never using materials in an assembly. If you use the Material property in your BOM on every assembly created with V22 it will show up not blank but with "Aluminium - cast hammered". If all you could do would be to clear it to blank that would cover the vast majority of the situations.

    Thanks for your input it's nice to hear how others approach these things.

    Thanks,
    Daniel
     
  5. idslk

    idslk Alibre Super User

    Hello Daniel,

    if you only want to have a "self set name" in the material property text field for use in your BOM or text field on a drawing, it could be done with a little script.
    It will not set any density or things like that, only the "material text".
    Code:
    Your_Material_for_title_block = 'Good_Steel'
    try:
      ca = CurrentAssembly()
    except:
      sys.exit('No assembly')
    import clr
    clr.AddReferenceToFileAndPath(r'C:\Program Files\Alibre Design\Program\AlibreX.dll')
    from AlibreX import ADExtendedDesignProperty
    Global.Root.TopmostSession.DesignProperties.ExtendedDesignProperty(ADExtendedDesignProperty.AD_MATERIAL,Your_Material_for_title_block)
    print ca.Material
    If you are in an assembly you can run this script and it will put "Good_Steel" in your material field...
    To change edit the variable in the first script line:
    Your_Material_for_title_block = "Your own material name..."

    As ever: use the script at your own risk!

    Regards
    Stefan
     
    traffic_hazard likes this.
  6. DanielIdzerda

    DanielIdzerda Member

    I will try this, I'll spin up a VM with V22 in it to test.
    I did try it using this code (C#), The API docs listed designProperties.Material as a Get/Set but it didn't work.
    Code:
    Console.WriteLine(session.Name);
    IADDesignSession designSession = (IADDesignSession)session;
    IADDesignProperties designProperties = designSession.DesignProperties;
    Console.WriteLine(designProperties.Material);
    designProperties.Material = "Welded Aluminum";
    Console.WriteLine(designProperties.Material);
    
    Thanks,
    Daniel
     
  7. bigseb

    bigseb Alibre Super User

    Lost me here. Can you explain?
     
  8. DanielIdzerda

    DanielIdzerda Member

    Stefan,
    This code (converted to C#) worked for me. Might have to make a utility for us to use for now.
    Thanks,
    Daniel
     
  9. DanielIdzerda

    DanielIdzerda Member

    My understanding was that if you wanted to account for the mass of the fuel in the tank. The "fuel" would have to be part with a density defined and generating that part accurately could be complicated.
     
  10. bigseb

    bigseb Alibre Super User

    That I understood but not his method.
     
  11. DanielIdzerda

    DanielIdzerda Member

    ahh I see
     
  12. simonb65

    simonb65 Alibre Super User

    Boolean operations are your friend here! Create a solid from the tank boundaries, then remove the tank from the tank boundaries (which leaves you with the contents), extrude cut off the top down to your tank fuel level, assign a density, save as a part. Bring that part into your assembly and constrain inside the tank!
     
  13. bigseb

    bigseb Alibre Super User

    That's what I would do. And its pretty straightforward too. Thta's why I think I didn't understand what JST was talking about.
     
    simonb65 likes this.
  14. JST

    JST Alibre Super User

    Depends on your accuracy needed. I suppose you could boolean subtract the tank from a solid made from the tank. I thought more in terms of boolean subtracting the tank from a block and then clearing the outside piece.

    I find booleans a nuisance. Very useful but clumsy in some ways.
     
  15. NateLiqGrav

    NateLiqGrav Alibre Super User

    The "Remove Model Pieces" feature will help get rid of the outside block as long as the tank had no holes/leaks.
     
    simonb65 likes this.
  16. Thank you Stefan! I use the material field in my title block, and having it set for an assembly is problematic. This fixed it until V23.

    -TH
     

Share This Page