On this page:

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:

FlagParametersDescription
/filefilenameAppraiser from <filename> is loaded as read-only.
/editfilenameAppraiser from <filename> is loaded as editable.
/profilefilenameProfiles are read from <filename>.
/parentsfilename1[;filename2...]Specifies parent files which this appraiser depends upon. If the parent files are edited, then this appraiser is also considered updated.
/editsourcefilename<filename> is used as a default source of parameters.

Path to the file can be specified either as absolute or relative to the batch file. Standard path specification variables like %ProgramData% can be used too.

A simple loading command may look as follows (here LocalAppraiser.txt is the appraiser file, and LocalAppraiser.pro contains its profiles):

LoadExternalGrading /edit LocalAppraiser.txt /profile LocalAppraiser.pro

One file may contain one or more appraisers. All editable appraisers would be available for selection on the panels Appraiser Interval Editor and Appraiser Profiles. Currently the editor deals only with the interval border values. If the appraiser contains no editable entities, it would not be seen in the list. When an appraiser is edited and saved, its file is reloaded, as are all files (if any) for which this one was specified as parent.

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.

For example, here is a description of the table width parameter:

 interval : Restriction_Table : DC_TableDiameter : : : EX 55 59 VG 54 60.5 GD 53 62.5 FR 52.5 64.5 : (%) : "Intervals for Table"

When viewed in editor, it is represented as follows:

The purpose of global editor buttons is described below.

ButtonFunction
Show/Hide AppraiserToggles the appraiser selection dropdown list.
Show/Hide ParametersToggles the table of parameters.
Show/Hide IntervalsToggles the visual representation of intervals in the bottom of the window (it can be used for editing as well).
Show/Hide Info

Toggles the display of overall parameter info: Grid, Minimum, and Maximum.

  • Grid specifies the step size for a parameter. All changes are rounded to the multiples of it.
  • Minimum and maximum are the borders within which the intervals can be edited. The editor would not allow entering values outside of these borders.
View cutSwitches to the list of cut parameters.
View SymmetrySwitches to the list of symmetry parameters.
UndoUndoes the most recent change, if any.
RedoRedoes the most recently undone change, if any.
Revert to fileReverts the selected parameters to the values in the file.
Revert to originalReverts the selected parameters to the values in the profile.

To edit an interval:

  1. Select the appraiser from a dropdown list, then select a profile on the Appraiser profile panel. The appraiser should be specified as editable in the file and also loaded as editable (see the syntax of the LoadExternalGrading command above), otherwise the editor is rendered view-only.
  2. (Optionally) Click Link profile and appraiser, so that all changes are applied to the profile and to the appraiser simultaneously.
  3. Select the cutting type. Note that the list of cutting types contain a special position called Common parameters. These are parameters applicable to all cuts. Specific cuts may redefine the parameters defined in it.
  4. Switch to cut parameters or symmetry parameters, depending on your purpose.

Below are the details of the interface dealing with the individual border values.

Double-clicking in any cell of the editable profile transforms it into an input field. Selection can be moved around using Tab / Shift+Tab keys.

You may change the field by typing the values in, or by dragging the intervals in the bottom of the window.

Pressing Esc finishes the editing and discards changes. Pressing Enter or clicking in another cell finishes the editing and keeps the newly entered value in the edited cell.

If the entered value collides with another interval border on the same side (no matter more strict or more loose), when editing is finished, that border is changed to the same value as the edited one, so as to maintain consistency. Such a change is considered single from the point of view of Undo/Redo, i.e., Undo would revert both borders at once to their corresponding previous values.

If the entered value collides with the opposite border, when editing is finished, the value of the edited border is set to the value of the opposite border, rather than the actual entered value.

If the appraiser definition file happens to contain inconsistent intervals, these are shown in red upon opening.

Changed values are shown in bold. The presence of unsaved changes is further indicated by the blue bullet in the name column of the corresponding line and the bold Save button at the upper right corner of the panel.

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).

If the selected cut can't be recalculated, the buttons are disabled.
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.

All profiles are listed on the Appraiser Profile panel.

Top of the panel contains the functional buttons for manipulating profiles. The same buttons also appear on the Appraiser tab of the main application window.

ButtonFunction

New ProfileCreates a new profile with the data from the editor.

New copy of ProfileCreates a copy of current profile.

Delete ProfileDeletes the selected profile.

Copy data to AppraiserCopies data from the profile to the editor.

Copy data to ProfileCopies data from the editor to the profile.

Set to defaultsSets the data to defaults.

Link Profile and AppraiserLink the profile to appraiser editor, so that any changes made in the latter are instantly copied to the former.

Profile name should be unique within one appraiser.

When a new profile is created, copies of all starting and optimization forms of the current appraiser are made. They are stored in the same folder as the original appraiser forms, and distinguished by a filename suffix sXXXX.

To edit the profile, copy the data from it to the editor, alter them, and then copy the data back. Alternatively, check Link profile and Appraiser so that all changes from the editor instantly appear in the profile. The edited profile gets saved upon pressing Save or upon switching to another profile.

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:

  • Parameters which are supposed to be graded.
  • Grades for these parameters (editable or read-only intervals).
  • Overall grade rules (a set of possible values for individual parameters' grades).
  • Individual grades to appear in the diamond panel.
  • List of parameters to use in the optimization.
  • Intervals of parameter values to use in the optimization.
  • Starting form and optimization forms.

As an example, let's create a new cut starting from the internal cut "Princess 3s". The previous appraiser contained the following description of this cut:

[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.

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.

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:

grading : Restrictions : Restriction_CornerBreakAngle Restriction_TotalHeight Restriction_CrownAngle Restriction_GirdleBezel \
  Restriction_CrownAngle2 Restriction_CrownHeight Restriction_PavilionDepthBezel Restriction_PavilionAngle1 Restriction_Table \
  Restriction_VirtualCuletX Restriction_VirtualCuletY Restriction_GirdleRatio Restriction_CrownCleanLevel1 Restriction_PavilionCleanLevel1 \
  Restriction_PavilionCleanLevel2 : Bad : 

Now let us create a final grade consisting or Restrictions alone:

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.

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.

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_*.

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:

form : "Start and optimization" : Start "DMCs\Princess 3s_Start.dmc"; \
  SetDiamond1 EX DMCs\Princess_3s_EX_Set1.dmcx, VG DMCs\Princess_3s_VG_Set1.dmcx, GD DMCs\Princess_3s_GD_Set1.dmcx, FR DMCs\Princess_3s_FR_Set1.dmcx; \
  SetDiamond2 EX DMCs\Princess_3s_EX_Set2.dmcx, VG DMCs\Princess_3s_VG_Set2.dmcx, GD DMCs\Princess_3s_GD_Set2.dmcx, FR DMCs\Princess_3s_FR_Set2.dmcx \
  : allacceptable : auto : Type1 : "Standard 10 optimization min-max forms for all grades"

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):

interval : Variation_VirtualCuletX       : DC_VirtualCuletOffsetX   : : : EX 0 1.0 VG 0 1.02 GD 0 1.04 FR 0 1.09 : (°) : "Intervals for Virtual Culet X"

The optimization interval for a Variation parameter is defined as follows:

optimizationinterval : opt_vcx : DC_VirtualCuletOffsetX : : Variation_VirtualCuletX : -right : right : , : (°) : "Optimization for Virtual Culet X"

Then the parameter should be incorporated into the Symmetry composite grade, which in turn goes into the overall grade, together with Restrictions.

The list of individual grades should be updated accordingly.

Since this cutting makes no distinction between DC_VirtualCuletOffsetX and DC_VirtualCuletOffsetY, it would suffice to create just one interval for both. Call it some neutral name, like Variation_VirtualCulet. Grades still can be done independently for both parameters. Such practices are specific for each appraiser and cutting type. For example, culet offsets in X and Y directions are equivalent in Round brilliant (in that they use the same interval), but probably not in Emerald.

  • No labels