cancel
Showing results for 
Search instead for 
Did you mean: 
cancel
Showing results for 
Search instead for 
Did you mean: 

Community Tip - Did you know you can set a signature that will be added to all your posts? Set it here! X

Note attached to a surface.

LH_10747950
6-Contributor

Note attached to a surface.

SO I'm making a project to calculate the surface areas of a sheet metal part that has a surface finish, two types "finish1" and "finish2", but I only have access to the free java object toolkit. I know I cannot use the surface finishes nor the annotations. I had an idea to attach a note of a specific type to a surface with a surface finish and then get the surface its attached to then get its area. Is this possible? I've tried GetAttachment() as it is a DetailNoteItem and doing GetParent which  returns with the part which I think isn't helpful as i none of the model items from that are surfaces. Is there another way?

 

 

 

 

	//Surface Finishes
	private HashMap <String, Double> getFinishes(Solid solid){
		double finish1 = 0;
		double finish2 = 0;
		
		HashMap <String, Double> finishes = new HashMap <String, Double>();
		try {
		
		ModelItems modelItems = solid.ListItems(ModelItemType.ITEM_DTL_NOTE);
		
		for (int i = 0; i<modelItems.getarraysize(); i++) {
			
			ModelItem modelItem = modelItems.get(i);
			
			printMsg("modelItem: " + modelItem.GetName());
			DetailNoteItem detailNoteItem = (DetailNoteItem) modelItem;
			DetailTextLines textLines = detailNoteItem.GetTextLines(DetailTextDisplayOption.DISPMODE_NUMERIC);
				
			for (int j=0;j<textLines.getarraysize();j++) {
				
				DetailTextLine textLine = textLines.get(j);
				DetailTexts texts = textLine.GetTexts();
										
				for (int k =0;k<texts.getarraysize();k++) {
					
					DetailText text = texts.get(k);
					String note = text.GetText();
					//printMsg("note: " + note);
					if (modelItem.GetName().equals("Note_24")){
						printMsg("Note: " + note);
						
						
						try {
						
						DetailAttachment detailAttachment = detailNoteItem.GetAttachment();
						printMsg("got attachment");
						printMsg("Attachment: "+ detailAttachment);
						
						}
						catch (jxthrowable e) {
							e.printStackTrace();
						}
						
						
						try {
						
						Parent parent = detailNoteItem.GetDBParent();
						printMsg("got parent");
						printMsg("Parent: " + parent);
						
						Part parentPart = (Part) parent;
						
						ModelItems parentModelItems = parentPart.ListItems(null);
						
						for (int l = 0; l<parentModelItems.getarraysize();l++) {
							ModelItem parentModelItem = parentModelItems.get(l);
							//printMsg("modelItem: "+ parentModelItem);
							
						}
						}
						catch (jxthrowable e) {
							e.printStackTrace();
						}
						
						
						try {
						
						Child child = detailNoteItem.GetChild(null);
						printMsg("got child");
						printMsg("Child: " + child);
						
						}
						catch (jxthrowable e) {
							e.printStackTrace();
						}
										
					}
				}
			}
		}
		
		finishes.put("finish1",finish1);
		finishes.put("finish2",finish2);
		
		}catch (jxthrowable e) {
			e.printStackTrace();
		}
		return finishes;
	
	}

 

 

 

 

 

 

 

2 REPLIES 2

Have you considered datum analysis features within the model to calculate the areas? These features include parameters for the surface area that can be used in a note.

========================================
Involute Development, LLC
Consulting Engineers
Specialists in Creo Parametric
LH_10747950
6-Contributor
(To:tbraxton)

I have not tried it, I'm still new to Creo so I've never used them before and the article To_Create_an_Analysis_Feature doesn't seem too helpful as I don't know what definition or type I should use. would it be okay for you to give me a quick run down on the basics of these? Thanks!

Top Tags