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

Properties of material

  • 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