divanoLetto / 3D_STEP_Classification

A new approach for retrieval and classification of 3D models that directly performs in the CAD format without any format conversion to other representations like point clouds of meshes, thus avoiding any loss of information.
59 stars 11 forks source link

How the graph works? #4

Open Prarthana1116 opened 1 year ago

Prarthana1116 commented 1 year ago

I run the code of Graph_classification of "step_2_graph.py" and its successfully converted my step file to graph data. But I am keen to know how does the graph works? What are the primitive geometric parameters taken into consideration to convert step to graph data? Could you please explain me in details, if possible? For better understanding for myself, I have attached two images of step data and its graph conversion. Its a simple shaft and bracket data but the graph seems so complex. So, I would be thankful if you could explain me. Here I have attached the images of it. shaft bracket

Thankyou

divanoLetto commented 1 year ago

The structure of the graph depends on the modeling process used during the creation phase of the CAD models and in particular on their B-rep structure. A 3D model in B-rep is represented as a collection of connected surfaces, edge loops, edges and vertices. Each of these elements forms a node of the graph, while the relationships between elements form the arcs of the graph. Going into detail, the entities taken into consideration are all the geometric primitives such as points, complex geometric surfaces such as splines, and semantic properties of the model such as name, security level and domain. In creating the graph we take into consideration each entity present in the file step.

The same shape can therefore be described by an infinite number of different graphs depending on the type of modeling used. In the examples shown we have the case of a very simple representation (shaft) and a very complex one (bracket). Without being able to actually analyze the step files it is difficult to say why the second example is very complex, probably a very inefficient type of modeling was used. For example, it is possible that the holes in the bracket were made not as individual curved surfaces, but as sets of numerous flat surfaces like the figure below.

cerchioapprossimato

Prarthana1116 commented 1 year ago

Thank you so much for your time and brief explanation.

ADITHYAG73 commented 8 months ago

Hello, I read your research paper 'CAD 3D model classification by GNN', it was a wonderful read. I have a couple of questions : 1) In section 2.1 'Feature based approaches' one of the approach that is described is a frequency domain representation of a CAD model. I found it particularly intriguing, can you shed some light on how it is done in python (as is claimed in that paper) ? 2) The requirement pythonocc-core , is it pip installable? I tried installing it through pip , it didn't work..

Thanks in Advance