Programming xData
If you develop your own plugins or the LISP programming, then you can read all the data used in A>V>C> plugin, displayed plug-in A>V>C> Property Palette. They are stored in xData (extended object data) of solid, table or other objects.
The source code for C# can be found in the plugin folder in the file xData_Source.7z or in GitHub.
xData AVCNames
Extended properties of solid. You can edit it.
• Field 0, Application Name = AVCNames• Field 1, Type AsciiString = 1000, value: Name, use for substitution %name%• Field 2, Type Integer32 = 1071, value: SolidFlags, substitutions %sweep%, %mirror% and %texture%• Field 3 Type AsciiString = 1000, value: Kind, substitution %kind%• Field 4 Type AsciiString = 1000, value: Info, substitution %info%[Flags] enum
SolidFlags
{ None = 0, Sweep = 1, // For Solid – measure like sweep Mirror = 2, // To count the number of identical parts - considered separately as mirror InBlock = 4 // For Smart Leader - look in the blocks Textured = 8, // For Solid - is the direction of the fibers, texture Across = 16 // For Solid - texture from side to side (on the short side) }xData AVCMetric
Metric of solid. Read only.
• Field 0 Application Name = AVCMetric
• Field 1 Type Integer32 = 1071, Value: Number of changes of solid at the time of metric record - if not the same as Solid3d.NumChanges - means the metric is outdated.
• Field 2 Type Real = 1040, Value: Length, use for substitution %len%
• Field 3 Type Real = 1040, Value: Width = %width%
• Field 4 Type Real = 1040, Value: Thickness = %thickness%
• Field 5 Type Real = 1040, Value: Volume = %volume%
• Field 6 Type Real = 1040, Value: Asymmetry = %asym%
• Field 7 Type AsciiString = 1000, Value: Asymmetry vector (3 characters or an empty string), %asymv%
• Field 8 Type AsciiString = 1000, Value: Technology = %tech%
• Field 9 Type Integer32 = 1071, Value: SolidMetricEnum flags
• Field 10 Type Real = 1040, Value: Area = %area%
• Field 11 Type Real = 1040, Value: Perimeter = %perimeter %
• Field 12 Type Integer32 = 1071, Value: FaceCount = %facecount %
• Field 13 Type Real = 1040, Value: Weight = %weight%
• Field 14 Type Real = 1040, Value: Cost = %cost%
• Field 15 Type BinaryChunk = 1004, Value: Lay matrix (The field contains 12 double numbers - the first 3 rows of the solid transform matrix)
[Flags] enum
SolidMetricEnum
{
/// <summary>
/// The part requires processing from the front side (when laying the front side down, this means drilling from below, milling from below).
/// Without taking into account the slope of the ends and 3d surfaces.
/// </summary>
FrontProcessing = 1 << 0,
/// <summary>
/// The part requires processing from the back side (when laying the façade down, this means drilling from above, milling from above).
/// Without taking into account the slope of the ends and 3d surfaces.
/// </summary>
RearProcessing = 1 << 1,
/// <summary>
/// Metric recording in XDataMetric is blocked during automatic measurement.
/// That is, the measurement will be made, but the results will not be written to XDataMetric
/// </summary>
Blocked = 1 << 2,
/// <summary>
/// The volume exactly matches the volume of the overall box
/// </summary>
IsBox = 1 << 3,
/// <summary>
/// not all surfaces are flat
/// </summary>
HasNotFlatFaces = 1 << 4,
/// <summary>
/// there are internal contours
/// </summary>
HasHoles = 1 << 5,
/// <summary>
/// has surfaces more complex than 2D CNC can make
/// </summary>
Has3dFaces = 1 << 6,
/// <summary>
/// the main plane is a rectangle
/// </summary>
FrontIsRectangle = 1 << 7,
/// <summary>
/// there are surfaces with a material different from the solid material (coating)
/// </summary>
HasCoveredFaces = 1 << 8,
/// <summary>
/// the facade surface is specified by color or coating or top. A body cannot be turned over, even if it is symmetrical
/// </summary>
HasPriorFace = 1 << 9
}
xData AVCMaterial
- Field 0 Application Name = AVCMaterial
- Field 1 Type Integer32 = 1071, Value: MatUseLike
- Field 2 Type Real = 1040, Value: Density
- Field 3 Type Real = 1040, Value: Length
- Field 4 Type Real = 1040, Value: Width
- Field 5 Type Real = 1040, Value: Thickness
- Field 6 Type AsciiString = 1000, Value: Index
- Field 7 Type AsciiString = 1000, Value: Article
- Field 8 Type Real = 1040, Value: Price
- Field 9 Type Integer32 = 1071, Value: MaterialEnum
- Field 10 Type AsciiString = 1000, Value: MillTool
- Field 11 Type AsciiString = 1000, Value: MillMode
- Field 12 Type AsciiString = 1000, Value: SawTool
- Field 13 Type AsciiString = 1000, Value: SawMode
enum MatUseLike { Unknown = 0, Volume = 0, Sheet = 1, Rod = 2, Cover = 3, Banding = 4, Varies = 5 }
[Flags] enum MaterialEnum { Grain = 1, // the material has texture along the long side }
xData AVCTbSplit
Used in TableSplit command
• Field 0 Application Name = AVCTbSplit• Field 1 Type AsciiString = 1000, Value: GUID of splited table like string.• Field 2 Type Integer32 = 1071, Value: part number (sheet) of splited table