Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
Panel
titleOn this page:

Table of Contents
outlinetrue
stylenone

Loading of

...

Editable Appraisers

Appraisers are loaded during program startup according to the instructions specified in PacorBat.ini. Each appraiser is loaded using the LoadExternalGrading command which admits the modifier flags /edit, /profile, and /parents with the following meaning:

...

Switching of active appraiser in the editor does not entail switching of active appraiser in the optimization module.

Intervals

...

Editing

All editable intervals are classified into cut parameters and symmetry parameters based on their name prefix: names starting with Restriction_ denote cut parameters, and those starting with Variation_ are considered symmetry parameters. Cut parameters may have arbitrary values. Symmetry parameters always have left border 0, which is not specified in the file and not available for editing.

...

To save the changes, click Save. There are three equivalent Save buttons: on the Appraiser interval editor panel, on the Appraiser Profile panel, and on the Appraiser tab of the main application window.

Recalculation of

...

Optimization Forms

For correct working of the optimization routine, the optimization forms must be recalculated (rebuilt) after the change of intervals. Being a time-consuming operation, it is not initiated automatically, and has to be started manually by clicking Recalculate cutting , or Recalculate all cuttings (if more than one cutting type were changed).

...

While the forms are being recalculated, the buttons are also disabled. After the recalculation is completed, click Save to rewrite the *.dmc and *.dmcx files.

Creation and

...

Editing of

...

Profiles

An appraiser may contain multiple profiles. A profile contains interval borders for all cutting types, as well as the starting and optimization forms. It is impossible to have profiles with different cuts, or with different methods of grading of the same cuts. The profiles may differ only in the interval borders and the sets of forms.

...

Some predefined profiles are made read-only.

Application 1. Creating

...

New Cut

Earlier appraisers contained just a single list of intervals, a list of optimization parameters, the start form, and the optimization forms. Modern format of editable appraiser (Version=7) is more complex and agile. For an appraiser to work, one has to specify the following:

...

Code Block
[cut]
  Name:       "Princess 3s"
  Quality:    EX VG GD FR
  Parameters: DownHeight_GIA (%) \
    DownAngleLevel0 (°) \
    GirdleHeight_GIA (%) \
    Table (%) \
    FullHeight (%) \
    GirdleRatio (.) \
    UpAngle (°) \
    UpAngleLevel1 (°) \
    UpCleanLevel1 (%) \
    VirtualCuletOffsetX (°) \
    VirtualCuletOffsetY (°) \
    DownCleanLevel1 (%) \
    UpHeight_GIA (%) \
    DownCleanLevel2 (%) \
    Unknown_33 (°)
  Optimize:   Table Table Table \
    DownAngleLevel0 DownAngleLevel0 DownAngleLevel0 \
    GirdleHeight GirdleHeight_GIA GirdleHeight_GIA \
    UpAngle UpAngle UpAngle_uHFix \
    DownAngle DownHeight_GIA DownHeight_GIA \
    GirdleRatio GirdleRatio GirdleRatio \
    UpAngleLevel0 UpAngle UpAngle \
    DownAngleLevel1 DownCleanLevel1 DownCleanLevel1 \
    Culet VirtualCuletOffsetX VirtualCuletOffsetX \
    CuletOffsetX VirtualCuletOffsetY VirtualCuletOffsetY \
    OP_1 UpAngleLevel1 UpAngleLevel1 \
    OP_2 UpCleanLevel1 UpCleanLevel1 \
    OP_3 VirtualCuletOffsetX VirtualCuletOffsetX \
    OP_4 VirtualCuletOffsetY VirtualCuletOffsetY \
    OP_5 DownCleanLevel2 DownCleanLevel2 \
    OP_6 Unknown_33 Unknown_33 \
  Mass: 0.01  100000 \
    52 63.0 55 61 1.5 3.5 66.5 72 67.0 74.0 0.980 1.040 33 45 28 40 45 55 -1.00 +1.00 -1.00 +1.00 70 80 8 13 25 40 5 10 \
    50 65.0 54 63 1.3 4.5 64.5 75 65.0 76.0 0.970 1.050 32 48 27 43 43 57 -1.02 +1.02 -1.02 +1.02 65 85 7 15 24 42 4 11 \
    48 66.0 53 64 1.1 5.5 62.5 77 63.0 78.0 0.960 1.060 31 50 26 45 41 59 -1.04 +1.04 -1.02 +1.04 60 90 6 16 23 43 3 12 \
    46 69.0 52 65 1.0 6.5 60.5 79 61.0 80.5 0.920 1.080 30 52 25 47 40 60 -1.09 +1.09 -1.04 +1.09 50 95 5 17 20 45 2 14
[end]
 
; Check 2456250 diamonds. Inside group 682500. Weights: 1.05993 1.07332 1.02597 1.12828
[fixedcut]
  Name: "Princess 3s"
  Parameters: Table (%) DownHeight_GIA UpCleanLevel1 (%) UpAngle (°) DownAngleLevel0 (°) DownCleanLevel1 (%) DownCleanLevel2 (%) GirdleAngle (°) VirtualCuletOffsetX (°) VirtualCuletOffsetY (°) GirdleHeight_GIA (%)
  OptimizationSet1: EX 71.99945100 0.60249450 52.49950050 33.00119900 60.99940100 79.99900100 39.99850100 5.00049900 0.00000000 0.00000000 3.49980100
  OptimizationSet2: EX 71.99945100 0.60249450 52.49950050 33.00119900 60.99940100 79.99900100 39.99850100 5.00049900 0.00000000 0.00000000 3.49980100
  OptimizationSet2: EX 71.99945100 0.52001099 50.00000000 44.99880100 60.99940100 79.99900100 39.99850100 5.00049900 0.00000000 0.00000000 3.49980100
  OptimizationSet2: EX 69.07679981 0.52001099 50.00000000 42.86079851 60.99940100 79.99900100 39.99850100 5.00049900 0.00000000 0.00000000 2.00009950
  OptimizationSet2: EX 71.99945100 0.57500000 50.00000000 44.99880100 60.99940100 79.99900100 39.99850100 5.00049900 0.00000000 0.00000000 3.49980100
; Check 2456250 diamonds. Inside group 737500. Weights: 1.10070 1.13218 1.12642 1.20632
  OptimizationSet1: VG 74.99895100 0.61249250 53.49930050 32.00159900 62.99910100 84.99800100 41.99820100 4.00069900 0.00000000 0.00000000 4.49968100
  OptimizationSet2: VG 74.99895100 0.61249250 53.49930050 32.00159900 62.99910100 84.99800100 41.99820100 4.00069900 0.00000000 0.00000000 4.49968100
  OptimizationSet2: VG 66.79725341 0.50001499 50.00000000 44.92031219 62.99910100 84.99800100 41.99820100 4.00069900 0.00000000 0.00000000 4.49968100
  OptimizationSet2: VG 72.37447550 0.61249250 46.50069950 47.99840100 62.99910100 84.99800100 41.99820100 4.00069900 0.00000000 0.00000000 1.30031900
  OptimizationSet2: VG 72.37447550 0.57500000 50.00000000 47.99840100 62.99910100 84.99800100 41.99820100 4.00069900 0.00000000 0.00000000 4.49968100
; Check 2456250 diamonds. Inside group 825625. Weights: 1.16290 1.16801 1.17259 1.26076
  OptimizationSet1: GD 76.99855100 0.65998201 50.00000000 31.00189900 63.99890100 89.99700100 42.99800100 3.00089900 0.00000000 0.00000000 5.49956100
  OptimizationSet2: GD 76.99855100 0.65998201 50.00000000 31.00189900 63.99890100 89.99700100 42.99800100 3.00089900 0.00000000 0.00000000 5.49956100
  OptimizationSet2: GD 66.12251648 0.48001799 50.00000000 46.19225951 63.99890100 89.99700100 42.99800100 3.00089900 0.00000000 0.00000000 5.49956100
  OptimizationSet2: GD 69.75000000 0.61499100 45.50089950 49.99810100 63.99890100 89.99700100 42.99800100 3.00089900 0.00000000 0.00000000 1.10043900
  OptimizationSet2: GD 69.75000000 0.57000000 45.50089950 49.99810100 63.99890100 89.99700100 42.99800100 3.00089900 0.00000000 0.00000000 5.49956100
; Check 2456250 diamonds. Inside group 868375. Weights: 1.17799 1.20275 1.22186 1.32968
  OptimizationSet1: FR 78.99815100 0.68997701 50.00000000 30.00219900 64.99870100 94.99550100 44.99750100 2.00119900 0.00000000 0.00000000 5.12472550
  OptimizationSet2: FR 78.99815100 0.68997701 50.00000000 30.00219900 64.99870100 94.99550100 44.99750100 2.00119900 0.00000000 0.00000000 5.12472550
  OptimizationSet2: FR 65.55792105 0.46002299 50.00000000 47.45263260 64.99870100 94.99550100 44.99750100 2.00119900 0.00000000 0.00000000 6.49945100
  OptimizationSet2: FR 69.75000000 0.63248850 45.00099950 51.99780100 64.99870100 94.99550100 44.99750100 2.00119900 0.00000000 0.00000000 1.00054900
  OptimizationSet2: FR 69.75000000 0.57500000 45.00099950 51.99780100 64.99870100 94.99550100 44.99750100 2.00119900 0.00000000 0.00000000 6.49945100

  Start: [cutname]     69.25000000 0.57500000 50.00000000 39.00000000 58.00000000 79.99900100 39.99850100 5.00049900 0.00000000 0.00000000 3.00000000
[end]

Graded

...

Parameters

The graded parameters are those listed in the line Parameters.

Info
Backslash ("\") at the end of a line indicates continuation of the line.

Grading of

...

Parameters

To grade the selected parameters, let us create a set of editable intervals of cut parameters.

Code Block
interval : Restriction_Table               : DC_TableDiameter         : : : EX 66.5 72 VG 64.5 75 GD 62.5 77 FR 60.5 79 : (%) : "Intervals for Table"
interval : Restriction_CrownAngle          : DC_CrownAngle            : : : EX 33 45 VG 32.0 48 GD 31 50 FR 30 52 : (°) : "Intervals for Crown Angle"
interval : Restriction_CrownAngle2         : DC_CrownAngleLevel2      : : : EX 28 40 VG 27 43 GD 26 45 FR 25 47 : (°) : "Intervals for Crown Angle Level 2"
interval : Restriction_CrownCleanLevel1    : DC_CrownCleanLevel1      : : : EX 45 55 VG 43 57 GD 41 59 FR 40 60 : (%) : "Intervals for Crown Clean Level 1"
interval : Restriction_PavilionAngle1      : DC_PavilionAngleLevel1   : : : EX 55 61 VG 54 63 GD 53 64 FR 52 65 : (°) : "Intervals for Pavilion Angle Level 1"
interval : Restriction_PavilionCleanLevel1 : DC_PavilionCleanLevel1   : : : EX 70 80 VG 65 85 GD 60 90 FR 50 95 : (%) : "Intervals for Pavilion Clean Level 1"
interval : Restriction_PavilionCleanLevel2 : DC_PavilionCleanLevel2   : : : EX 25 40 VG 24 42 GD 23 43 FR 20 45 : (%) : "Intervals for Pavilion Clean Level 2"
interval : Restriction_GirdleRatio         : DC_GirdleRatio           : : : EX 0.98 1.04 VG 0.97 1.05 GD 0.96 1.06 FR 0.92 1.08 : (.) : "Intervals for Girdle Ratio"
interval : Restriction_GirdleBezel         : DC_GirdleThickness       : : : EX 1.5 3.5 VG 1.3 4.5 GD 1.1 5.5 FR 1 6.5 : (%) : "Intervals for Girdle Thickness"
interval : Restriction_VirtualCuletX       : DC_VirtualCuletOffsetX   : : : EX -1.0 1.0 VG -1.02 1.02 GD -1.04 1.04 FR -1.09 1.09 : (°) : "Intervals for Virtual Culet X"
interval : Restriction_VirtualCuletY       : DC_VirtualCuletOffsetY   : : : EX -1.0 1.0 VG -1.02 1.02 GD -1.02 1.04 FR -1.04 1.09 : (°) : "Intervals for Virtual Culet Y"
interval : Restriction_CornerBreakAngle    : DC_CornerBreakAngle      : : : EX 5 10 VG 4 11 GD 3 12 FR 2 14 : (°) : "Intervals for Corner Break Angle"
interval : Restriction_CrownHeight         : DC_CrownHeight           : : : EX 8.0 13 VG 7 15 GD 6 16 FR 5 17 : (%) : "Intervals for Crown Height"
interval : Restriction_PavilionDepthBezel  : DC_PavilionDepthBezel    : : : EX 52 63 VG 50 65 GD 48 66 FR 46 69 : (%) : "Intervals for Pavilion Depth"
interval : Restriction_TotalHeight         : DC_TotalHeight           : : : EX 67 74 VG 65 76 GD 63 78 FR 61 80.5 : (%) : "Intervals for Total Height"

Overall

...

Stone Grading

Conventionally, the overall grade is composed of all cut grades (Restriction_*) and symmetry grades. Since we have not definedМ any symmetry parameters, there are only cut grades. To begin with, let us assemble them all into one composite grade called Restrictions:

...

Code Block
grading : Main : Restrictions : Bad : Final

Individual

...

Grading of

...

Parameters

To display the individual parameter grades in the diamond panel, we have to define a list called IndividualList and set up the correspondence between parameters and their intervals.

Code Block
intervallist : IndividualList : name id : \
  Restriction_CornerBreakAngle, DC_CornerBreakAngle; \
  Restriction_TotalHeight, DC_TotalHeight; \
  Restriction_CrownAngle, DC_CrownAngle; \
  Restriction_GirdleBezel, DC_GirdleThickness; \
  Restriction_CrownAngle2, DC_CrownAngleLevel2; \
  Restriction_CrownHeight, DC_CrownHeight; \
  Restriction_PavilionDepthBezel, DC_PavilionDepthBezel; \
  Restriction_PavilionAngle1, DC_PavilionAngleLevel1; \
  Restriction_Table, DC_TableDiameter; \
  Restriction_VirtualCuletX, DC_VirtualCuletOffsetX; \
  Restriction_VirtualCuletY, DC_VirtualCuletOffsetY; \
  Restriction_GirdleRatio, DC_GirdleRatio; \
  Restriction_CrownCleanLevel1, DC_CrownCleanLevel1; \
  Restriction_PavilionCleanLevel1, DC_PavilionCleanLevel1; \
  Restriction_PavilionCleanLevel2, DC_PavilionCleanLevel2; \
  : "List for individual grading of parameters in Panel"

Optimization

...

Parameters

The optimization parameters must be mentioned in the list called Optimize.

Code Block
Optimize: \
  DC_TableDiameter DC_TableDiameter DC_TableDiameter \
  DC_GirdleThicknessValue DC_GirdleThicknessBezel DC_GirdleThicknessBezel \
  DC_CrownAngle_Table DC_CrownAngle_Table DC_CrownAngle_CrownHeight_Fixed \
  DC_PavilionAngle DC_PavilionDepthBezel DC_PavilionDepthBezel \
  DC_GirdleRatio DC_GirdleRatio DC_GirdleRatio \
  DC_CrownAngleLevel1 DC_CrownAngle_Table DC_CrownAngle_Table \
  DC_PavilionAngleLevel1 DC_PavilionAngleLevel1 DC_PavilionAngleLevel1 \
  DC_PavilionAngleLevel2 DC_PavilionCleanLevel1 DC_PavilionCleanLevel1 \
  DC_Culet DC_VirtualCuletOffsetX DC_VirtualCuletOffsetX \
  DC_CuletX DC_VirtualCuletOffsetY DC_VirtualCuletOffsetY \
  OP_1 DC_CrownAngleLevel2 DC_CrownAngleLevel2 \
  OP_2 DC_CrownCleanLevel1 DC_CrownCleanLevel1 \
  OP_3 DC_VirtualCuletOffsetX DC_VirtualCuletOffsetX \
  OP_4 DC_VirtualCuletOffsetY DC_VirtualCuletOffsetY \
  OP_5 DC_PavilionCleanLevel2 DC_PavilionCleanLevel2 \
  OP_6 DC_CornerBreakAngle DC_CornerBreakAngle \

Optimization

...

Intervals

To set up the intervals for optimization parameters, we define a set of optimization intervals. These intervals must be named opt_*.

Code Block
optimizationinterval : opt_ca  : DC_CornerBreakAngle             : : Restriction_CornerBreakAngle    : left : right : , : (°) : "Optimization for Corner Break Angle"
optimizationinterval : opt_th  : DC_TotalHeight                  : : Restriction_TotalHeight         : left : right : , : (%) : "Optimization for Total Height"
optimizationinterval : opt_b   : DC_CrownAngle_Table             : : Restriction_CrownAngle          : left : right : , : (°) : "Optimization for Crown Angle"
optimizationinterval : opt_gi  : DC_GirdleThicknessBezel         : : Restriction_GirdleBezel         : left : right : , : (%) : "Optimization for Girdle Thickness"
optimizationinterval : opt_b2  : DC_CrownAngleLevel2             : : Restriction_CrownAngle2         : left : right : , : (°) : "Optimization for Crown Angle Level 2"
optimizationinterval : opt_hc  : DC_CrownHeight_CrownAngle_Fixed : : Restriction_CrownHeight         : left : right : , : (%) : "Optimization for Crown Height"
optimizationinterval : opt_pdb : DC_PavilionDepthBezel           : : Restriction_PavilionDepthBezel  : left : right : , : (%) : "Optimization for Pavilion Depth"
optimizationinterval : opt_a1  : DC_PavilionAngleLevel1          : : Restriction_PavilionAngle1      : left : right : , : (°) : "Optimization for Pavilion Angle Level 1"
optimizationinterval : opt_t   : DC_TableDiameter                : : Restriction_Table               : left : right : , : (%) : "Optimization for Table"
optimizationinterval : opt_vcx : DC_VirtualCuletOffsetX          : : Restriction_VirtualCuletX       : left : right : , : (°) : "Optimization for Virtual Culet X"
optimizationinterval : opt_vcy : DC_VirtualCuletOffsetY          : : Restriction_VirtualCuletY       : left : right : , : (°) : "Optimization for Virtual Culet Y"
optimizationinterval : opt_rt  : DC_GirdleRatio                  : : Restriction_GirdleRatio         : left : right : , : (.) : "Optimization for Girdle Ratio"
optimizationinterval : opt_c1  : DC_CrownCleanLevel1             : : Restriction_CrownCleanLevel1    : left : right : , : (%) : "Optimization for Crown Clean Level 1"
optimizationinterval : opt_p1  : DC_PavilionCleanLevel1          : : Restriction_PavilionCleanLevel1 : left : right : , : (%) : "Optimization for Pavilion Clean Level 1"
optimizationinterval : opt_p2  : DC_PavilionCleanLevel2          : : Restriction_PavilionCleanLevel2 : left : right : , : (%) : "Optimization for Pavilion Clean Level 2"

Start

...

Form and

...

Optimization Forms

Since the appraiser is editable, once the intervals are changed, the optimization forms might fall out of the corresponding groups, which would lower the algorithm performance. If the starting form would fall out of the group too, it would render the optimization inoperable. The forms should be listed in the file so as to make them capable of automatic recalculation:

...

Sometimes automatic recalculation is impossible. For example, the appraiser 15Sep2016 uses non-interval Facetware grades for cutting type BrilliantF64. When working with such appraisers, the automatic recalculation should be turned off by changing "... : auto : ..." to "... : fixed : ...". After being edited, the forms (*.dmc and *.dmcx files) should be recalculated manually. Currently the appraiser editor offers no interface for this. If the forms falls out of the group, the appraiser would raise a warning in the terminal, telling that a certain form is out of the group and would be ignored in the calculation.

Conclusion

The above example was one of direct transfer of the data from the old appraiser to the new one, without any changes on along the way. There are the ways to get more creative. For example, culet offset is rather a Variation parameter than Restriction (since its lower border is 0):

...