Model.hm_flangedetectionsetparams#
- Model.hm_flangedetectionsetparams(max_width, min_width=0.000000, feature_angle=DBL_MAX)#
Defines parameters for finding flanges in both geometry and FE. Multiple calls to this function can be made to override or redefine the parameters. Settings are cleared on any call to
Model.hm_flangedetectioninit()/Model.hm_flangedetectionend().This must be preceded by a call to
Model.hm_flangedetectioninit(). Onlymax_widthis mandatory. All other parameters are optional and have default values. Parameters can be specified in any order.- Parameters:
max_width (double) – The maximum width of flanges to be detected.
min_width (double) – The minimum width of flanges to be detected. Default is 0.0 if not specified.
feature_angle (double) – The expected deviation at inner boundaries of flanges, in degrees. Default is the global meshing feature angle if not specified.
- Returns:
hwReturnStatus- Status object
Example#
Find 2D flanges from elements in all components , use a min width of 2 , a max width of 20 and a feature angle of 20 , and write out all flange details to a file named C:/temp / flanges.txt#import hm import hm.entities as ent model = hm.Model() flangesfile = open("C:/temp/flanges.txt", "w") comps = hm.Collection(model, ent.Component) model.hm_flangedetectioninit(collection=comps) model.hm_flangedetectionsetparams(max_width=20.0, min_width=2.0, feature_angle=20.0) model.hm_flangedetectionfindflanges(find=1) _, result = model.hm_flangedetectiongetnumberofflanges() n=result.numberOfFlanges if n > 0: flangesfile.write(f"Number of flanges = {n}\n") flangesfile.write("Flanges details \n") for i in range(0,n): _, result = model.hm_flangedetectiongetflangedetails(index=i) entityType = result.entityType dimension = result.dimension detectionType = result.detectionType flangeEntityIDs = result.flangeEntityIDs freeBoundaryEntityIDs = result.freeBoundaryEntityIDs connectedBoundaryEntityIDs = result.connectedBoundaryEntityIDs minWidth = result.minWidth maxWidth = result.maxWidth length = result.length hasHoles = result.hasHoles isInfinite = result.isInfinite Details = [ entityType, dimension, detectionType, flangeEntityIDs, freeBoundaryEntityIDs, connectedBoundaryEntityIDs, minWidth, maxWidth, length, hasHoles, isInfinite ] flangesfile.write(f"details = {Details}\n") print(i) status, result = model.hm_flangedetectiongetflangemidline(index=i,offset_distance=5.0) print("pointCoordinates",result.pointCoordinates) Coordinates = result.pointCoordinates for points in Coordinates: midPoint=points.midPoint flangesfile.write(f"midline = {midPoint}\n") model.hm_flangedetectionfindmates(max_search_dist=10.0, min_search_dist=0.0) _, result = model.hm_flangedetectiongetnumberofmatinggroups() m = result.numberOfMatingGroups if m>0: for i in range(0,m): _,result = model.hm_flangedetectiongetmatinggroupdetails(index=i) matingGroupDetails = result.matingGroupDetails for details in matingGroupDetails: memberType = details.memberType memberContents = details.memberContents flangesfile.write(f"memberType = {memberType}\n") flangesfile.write(f"memberContents = {memberContents}\n") else: flangesfile.write("Flange mates not detected.\n") else: flangesfile.write("Flanges not detected.\n") model.hm_flangedetectionend() flangesfile.close()