Difference between revisions of "User:Ali Haydar/GSOC19/project"

From BRL-CAD
Line 1: Line 1:
=='''Annotations: Implement support for 2D  annotations, labels that can be added to geometry'''==
+
=='''Annotations: Implement more annotation support: labels, notes, and dimensions'''==
  
The project is divided into two parts:
+
The project is divided into three consepts:
*Creating a new primitive for annotations
+
*extending the MGED and Archer commands to inculde the new annotation types:
*Rendering the primitives to the wireframe view
+
*calculating each type templet diemntions if nedded like the fields in the annotation box 
 +
*drawing the new types in the wire frame view  
  
==='''Creating a new primitive for annotations'''===
+
==='''extending the MGED and Archer comands to inculde the new annotation types'''===
*Annotations comprise of:
+
*New types of annotaions :
**Notes  and Labels : Single line or Multiline text
+
**dimention line
**Leader Lines (includes GD&T)
+
**angular dimention
 +
**multible lables in multible fields box
 +
**lable in a box
 +
**single or multible line note in a box
 +
 +
*the extending in mged will be like:
 +
<br style="clear: both" />
 +
 
 +
<pre>
 +
mged> in
 +
Enter name of solid: annot_1
 +
Enter solid type: annot
 +
Enter annotation type : dimention line  
 +
"sudo "
 +
Enter starting point of the dimention line
 +
Enter end point of the dimention line
 +
Enter dimentinon ( or the dimention can be calculated (this chois can be taken if the usuer wants to over ride the acutl dimention )
 +
       
 +
</pre>
 +
 
 +
*all the annotions types should be entered in the same annotaion primative so this will require modifications on the current primative
 +
*We can consider the same abrouch of manual annotions as an example in the multible field annotion the usuer will provide the number of fields and the lables or we can consider a spcific characteer like (@) when encounterd the program considers it the end of the field and the lable existed in it and the end of this lable vlist( this will help withe the calculation of the the field ( cell ) dimentions so the user enters all the lables in the same line.( this can be discused withe the socity) .
 +
 
 +
*The leader lines will be constructed in correspondance with each type.
 +
*rendering each primative type in wire frame.
 +
==='''calculating each type diemntions if nedded like the fields in the annotation box'''===
 +
*in the case of
  
*The primary goal is to implement simple leader lines, so that we have a basic frame for further amendments.
 
*Support for view Independent annotations: This is resolved by using a separate coordinate system in two dimensions for the labels. This coordinate system has a direct mapping with the original 3D coordinate system that comprises of the wireframes.
 
*Coordinate system is nothing but a transformation matrix. This matrix projects all the points in the 3D coordinate system to the 2D coordinate system that will contain the annotations.
 
*The plan of action comprises of the creation of a new primitive “annotation”. The basic workflow can be related to that of the sketch primitive.
 
 
*The annotation primitive will comprise of various parameters that define the labels.
 
*The annotation primitive will comprise of various parameters that define the labels.
 
*Here we are aiming for manual annotations. The parameters will be provided by the user through the command line. ”in” followed by various parameters some of which are:
 
*Here we are aiming for manual annotations. The parameters will be provided by the user through the command line. ”in” followed by various parameters some of which are:

Revision as of 18:10, 20 May 2019

Annotations: Implement more annotation support: labels, notes, and dimensions

The project is divided into three consepts:

  • extending the MGED and Archer commands to inculde the new annotation types:
  • calculating each type templet diemntions if nedded like the fields in the annotation box
  • drawing the new types in the wire frame view

extending the MGED and Archer comands to inculde the new annotation types

  • New types of annotaions :
    • dimention line
    • angular dimention
    • multible lables in multible fields box
    • lable in a box
    • single or multible line note in a box
  • the extending in mged will be like:


mged> in
Enter name of solid: annot_1
Enter solid type: annot
Enter annotation type : dimention line 
"sudo " 
Enter starting point of the dimention line 
Enter end point of the dimention line 
Enter dimentinon ( or the dimention can be calculated (this chois can be taken if the usuer wants to over ride the acutl dimention )
        
  • all the annotions types should be entered in the same annotaion primative so this will require modifications on the current primative
  • We can consider the same abrouch of manual annotions as an example in the multible field annotion the usuer will provide the number of fields and the lables or we can consider a spcific characteer like (@) when encounterd the program considers it the end of the field and the lable existed in it and the end of this lable vlist( this will help withe the calculation of the the field ( cell ) dimentions so the user enters all the lables in the same line.( this can be discused withe the socity) .
  • The leader lines will be constructed in correspondance with each type.
  • rendering each primative type in wire frame.

calculating each type diemntions if nedded like the fields in the annotation box

  • in the case of
  • The annotation primitive will comprise of various parameters that define the labels.
  • Here we are aiming for manual annotations. The parameters will be provided by the user through the command line. ”in” followed by various parameters some of which are:
    • Position
    • Text - leader line
    • Additional object reference name

Container for annotations