Foreword
In RCS, it is possible to import a DXF and to rebuild a 2D part.
You might have to adjust some setting regarding DXF layer organization, DXF block naming policy to correctly rebuild the part.
A DXF converter is described with an XML file. In that file, you will find different options, organized in sections
- general option
- part info
- action on entities
Options
| Name | Values | |
| is_aama | boolean | |
| import_scale | float | |
| part | block layer layer_and_color | A part is defined by a block A part is defined by a layer A part is defined by a layer and a color |
| rebuild_accuracy (required) | float | Precision for the entities reconnection |
| external_rebuild | boolean | Reconnect the entities in layer EXT (external contour) |
| external_rebuild_color | color | Color for the reconnected external contours |
| internal_rebuild | boolean | Reconnect the entities in layer INT_TO_CUT and INT_TO_DRAW (internal contour) |
| marker_rebuild | boolean | Reconnect the entities in layer MARKER (marker) |
| notch_rebuild | boolean | Reconnect the entities in layer NOTCH (notch) |
| import_explode_bulged_pline | boolean | |
| notch_geom_rebuild | boolean | Create a notch with informations read in the DXF The informations are the width and the depth If the entity is a point P then width = 0 and depth = P(Z) If the entity is a segment S then width = length (S) and depth = S.P1 (Z) For the actions, use layer_out="NOTCH_TO_BUILD" |
| notch_depth | float | Only with notch_geom_rebuild Overload the depth value read in the DXF |
| notch_width | float | Only with notch_geom_rebuild Overload the width value read in the DXF |
| s_code_n_notch_detection | boolean | Detect notches and size codes Is considered as integrable motifs, all the linear entities with a double contact with the external contour |
| s_code_n_notch_detection_tol | float | Only with s_code_n_notch_detection Precision in mm to consider if an entity is in contact with the external contour |
Part_Info_Converters
Example 1:
<part_info_converters origin="block_name"> <part_info_converter regexp="No_(.+)_([0-9]+)00_([0-9]+)_x([0-9+])"> <copy value="\1" to="PMATERIAL" /> <copy value="\2" to="PSIZE" /> <copy value="\3-\1" to="PNAME"/> <copy value="\4" to="PREFQUANT"/> <copy value="\4" to="PSYMQUANT"/> </part_info_converter> </part_info_converters>
Example 2:
<part_info_converters origin="entities"> <part_info_converter regexp="Piece Name: *(.+) *"> <copy value="\1" to="PNAME" /> </part_info_converter> <part_info_converter regexp="Size: *(.+) *"> <copy value="\1" to="PSIZE" /> </part_info_converter> <part_info_converter regexp="Quantity: *([0-9]+), *([0-9]+) *"> <copy value="\1" to="PREFQUANT" /> <copy value="\2" to="PSYMQUANT" /> </part_info_converter> <part_info_converter regexp="Fabric: *(.+) *"> <copy value="\1" to="PMATERIAL" /> </part_info_converter> </part_info_converters>
Actions
Example
<action layer_out="TEXT" color_out="red" > <filter.By_Entity_Code value="characters" /> </action>
Filter
By_Annot_User | Annotation user in the entity |
By_Entity_Code | Entity code (ex : block, characters, polyline, etc...) |
By_Layer_Group_Name_Regexp | |
By_Layer_Name_Regpat | Layer name with optional regpat (ex : Layer_Material, Layer_N*) |
By_One_Color | Color name or color number (ex : red, dark_green, 50, 32) |
By_One_Layer | Layer number |
By_P_Props | (ex : P_Mat_Categ, P_Name, Prim_Diameter, Prim_Is_Closed, ...) |
Action
| layer_out | Destination layer (ex : EXT, INT_TO_CUT, DRILL, ...) |
| color_out | Destination color (name or number) |
| block_explode | Only for the blocks none one_level : explode the block one time recursive : explode the block and the blocks inside |
| deleted | Delete the filtered entity (TRUE or FALSE) |
| point_to_circle | Only for the points Turn the point into a circle with a diameter of X mm (ex : 6, 1.8) |
Was this article helpful?
That’s Great!
Thank you for your feedback
Sorry! We couldn't be helpful
Thank you for your feedback
Feedback sent
We appreciate your effort and will try to fix the article