PCB Matrix Format
by Numerical Innovations, Inc. (www.numericalinnovations.com)
CamMatrixDoxy.h
1
42
43//----------------------------------------------------------------------------------//
44//----------------------------------------------------------------------------------//
45//----------------------------------------------------------------------------------//
46
73
74
75//----------------------------------------------------------------------------------//
76
93
94//----------------------------------------------------------------------------------//
95
123
124//----------------------------------------------------------------------------------//
125
226
227//----------------------------------------------------------------------------------//
228
285
286//----------------------------------------------------------------------------------//
287
315
316//----------------------------------------------------------------------------------//
317//Dialog Box: <DIALOGBOX></DIALOGBOX>
318//----------------------------------------------------------------------------------//
319
396
397
398//----------------------------------------------------------------------------------//
399//Message Box: <MESSAGEBOX></MESSAGEBOX>
400//----------------------------------------------------------------------------------//
401
447
448
449//----------------------------------------------------------------------------------//
450//PROMPT DIALOG:
451//----------------------------------------------------------------------------------//
452
477
478
479//----------------------------------------------------------------------------------//
480//MULTIPLE FILE SELECTION:
481//----------------------------------------------------------------------------------//
482
523
524//----------------------------------------------------------------------------------//
525//FOLDER SELECTION:
526//----------------------------------------------------------------------------------//
527
554
555
556//----------------------------------------------------------------------------------//
557//Apertures Table:
558//----------------------------------------------------------------------------------//
559
567
568
569//----------------------------------------------------------------------------------//
570// NC Tools Table:
571//----------------------------------------------------------------------------------//
572
580
581
582//----------------------------------------------------------------------------------//
583// SMT Paste Table:
584//----------------------------------------------------------------------------------//
585
593
594
595//----------------------------------------------------------------------------------//
596// Layers Table:
597//----------------------------------------------------------------------------------//
598
622
623
624//----------------------------------------------------------------------------------//
625// Blind and Buried Via Setup:
626//----------------------------------------------------------------------------------//
627
635
636
637//----------------------------------------------------------------------------------//
638// Command Console
639//----------------------------------------------------------------------------------//
640
650
651
652//----------------------------------------------------------------------------------//
653// Clear Console
654//----------------------------------------------------------------------------------//
655
665
666
667//----------------------------------------------------------------------------------//
668//WAIT CURSOR
669//----------------------------------------------------------------------------------//
670
677
678//----------------------------------------------------------------------------------//
679
686
687//----------------------------------------------------------------------------------//
688//----------------------------------------------------------------------------------//
689//----------------------------------------------------------------------------------//
690//TODO: ADD REMAINING ITEM TYPES and TEST
691/*
692<tr><td>EditPoint <td colspan="2">
693<tr><td>EditPathWidth <td colspan="2">
694<tr><td>EditAngle <td colspan="2">
695<tr><td>EditScale <td colspan="2">
696<tr><td>EditColCnt <td colspan="2">
697<tr><td>EditRowCnt <td colspan="2">
698<tr><td>EditColSpace <td colspan="2">
699<tr><td>EditRowSpace <td colspan="2">
700<tr><td>EditTextHeight <td colspan="2">
701<tr><td>EditTextXScale <td colspan="2">
702<tr><td>EditTextString <td colspan="2">
703<tr><td>EditBoxHeight <td colspan="2">
704<tr><td>EditBoxWidth <td colspan="2">
705
706<tr><td>ComboLayer <td colspan="2">
707<tr><td>ComboLayerAll <td colspan="2">
708<tr><td>ComboLayerNc <td colspan="2">
709<tr><td>ComboLayerMetal <td colspan="2">
710
711<tr><td>ComboLayerMarkup <td colspan="2">
712<tr><td>ComboLayerBoolean <td colspan="2">
713<tr><td>ComboLayerType <td colspan="2">
714<tr><td>ComboComposite <td colspan="2">
715<tr><td>ComboNotComposite <td colspan="2">
716<tr><td>ComboUnits <td colspan="2">
717<tr><td>ComboPoints <td colspan="2">
718<tr><td>ComboPathType <td colspan="2">
719<tr><td>ComboShape <td colspan="2">
720<tr><td>ComboInsert <td colspan="2">
721<tr><td>ComboTextStyle <td colspan="2">
722<tr><td>ComboTextJustify <td colspan="2">
723<tr><td>ComboTextExternal <td colspan="2">
724<tr><td>ComboTextBarcode <td colspan="2">
725<tr><td>ComboTextFonts <td colspan="2">
726<tr><td>ComboRouteElements <td colspan="2">
727<tr><td>ComboOrient <td colspan="2">
728<tr><td>ComboCellviewType <td colspan="2">
729<tr><td>ComboLibs <td colspan="2">
730<tr><td>ComboCells <td colspan="2">
731<tr><td>ComboJobs <td colspan="2">
732<tr><td>ComboViews <td colspan="2">
733<tr><td>ComboTechs <td colspan="2">
734<tr><td>ComboMaterial <td colspan="2">
735<tr><td>ComboRouteDir <td colspan="2">
736<tr><td>ComboLayerOP <td colspan="2">
737<tr><td>ComboFindType <td colspan="2">
738<tr><td>ComboPrinters <td colspan="2">
739<tr><td>ComboPrinterNames <td colspan="2">
740<tr><td>ComboApertures <td colspan="2">
741<tr><td>ComboAperturesCustom <td colspan="2">
742<tr><td>ComboCompLevel <td colspan="2">
743<tr><td>ComboComponents <td colspan="2">
744<tr><td>ComboComponentType <td colspan="2">
745<tr><td>ComboFootprints <td colspan="2">
746<tr><td>ComboFootprintLibrary <td colspan="2">
747<tr><td>ComboTools <td colspan="2">
748<tr><td>ComboToolCompensation <td colspan="2">
749<tr><td>ComboClockwise <td colspan="2">
750<tr><td>ComboBoolean <td colspan="2">
751<tr><td>ComboYesNo <td colspan="2">
752<tr><td>ComboNets <td colspan="2">
753<tr><td>ComboPriceFormula <td colspan="2">
754<tr><td>ComboPinType <td colspan="2">
755<tr><td>ComboPinEType <td colspan="2">
756<tr><td>ComboPinMType <td colspan="2">
757
758<tr><td>PopupLayerSelection <td colspan="2">
759<tr><td>PopupPointSelection <td colspan="2">
760<tr><td>PopupComboLibs <td colspan="2">
761<tr><td>PopupComboCells <td colspan="2">
762<tr><td>PopupPoints <td colspan="2">
763<tr><td>PopupChooseFont <td colspan="2">
764<tr><td>PopupComboLayerSubtypeAll <td colspan="2">
765<tr><td>PopupComboLayerSubtypeRout <td colspan="2">
766<tr><td>PopupComboLayerSubtypeDrill <td colspan="2">
767<tr><td>PopupComboLayerSubtypeSoldermask <td colspan="2">
768<tr><td>PopupComboLayerSubtypeMask <td colspan="2">
769<tr><td>PopupComboLayerSubtypeDocument <td colspan="2">
770<tr><td>PopupComboLayerSubtypeFlex <td colspan="2">
771<tr><td>PopupComboLayerSubtypeConductivePaste <td colspan="2">
772<tr><td>PopupComboLayerSubtypeDielectric <td colspan="2">
773*/
774
804
805//----------------------------------------------------------------------------------//
806//Display Commands: <ZOOMALL /> <ALL_LAYERS_ON />
807//----------------------------------------------------------------------------------//
808
831
832//----------------------------------------------------------------------------------//
833
843
844//----------------------------------------------------------------------------------//
845
907
908
909//----------------------------------------------------------------------------------//
910
923
924
925//----------------------------------------------------------------------------------//
926// Short Cuts
927//----------------------------------------------------------------------------------//
928
945
946//----------------------------------------------------------------------------------//
947
967
968//----------------------------------------------------------------------------------//
969
978
979//----------------------------------------------------------------------------------//
980
988
989//----------------------------------------------------------------------------------//
990
998
999//----------------------------------------------------------------------------------//
1000
1008
1009//----------------------------------------------------------------------------------//
1010
1018
1019//----------------------------------------------------------------------------------//
1020
1028
1029//----------------------------------------------------------------------------------//
1030
1038
1039
1040//----------------------------------------------------------------------------------//
1041
1049
1050//----------------------------------------------------------------------------------//
1051
1060
1061//----------------------------------------------------------------------------------//
1062
1071
1072
1073//----------------------------------------------------------------------------------//
1074
1083
1084
1085//----------------------------------------------------------------------------------//
1086
1094
1095
1096//----------------------------------------------------------------------------------//
1097
1105
1106
1107//----------------------------------------------------------------------------------//
1108
1123
1124//----------------------------------------------------------------------------------//
1125
1133
1134//----------------------------------------------------------------------------------//
1135
1161
1162//----------------------------------------------------------------------------------//
1163//----------------------------------------------------------------------------------//
1164//----------------------------------------------------------------------------------//
1165
1191
1192//----------------------------------------------------------------------------------//
1193/*
1194TODO: <tr><td>INCLUDE_JOBS=NAME <td colspan="2">Optional. Job names in the workspace to be included. Must be comma separated. (Default is All Jobs are included). <br>
1195*/
1196
1254
1255//----------------------------------------------------------------------------------//
1256//----------------------------------------------------------------------------------//
1257//----------------------------------------------------------------------------------//
1258
1323
1324//----------------------------------------------------------------------------------//
1325
1530
1531//----------------------------------------------------------------------------------//
1532
1577
1578//----------------------------------------------------------------------------------//
1579
1610
1611//----------------------------------------------------------------------------------//
1612
1646
1647
1648
1682
1683
1733
1734
1759
1760
1787
1788
2052
2053
2054
2090
2091
2156
2157
2202
2203
2245
2585
2586
2902
2903
2905// TRANSFORM
2907
2908/*
2909<tr><td>*POLAR_ARRAY=X,Y,DX,DY,SET <td colspan="2">Arrays selected objects by a specified center point and angle to fill.
2910<tr><td>*STAGGERED_ARRAY=X,Y,DX,DY,SET <td colspan="2">Arrays selected objects in a staggered (hexagon) pattern. Typically used to optimize circular objects.
2911<tr><td>*DEEMBED=SET <td colspan="2">Automatically solves the polygon-inside-polygon fill problem for selected objects.
2912<tr><td>*EXPLODE=SET <td colspan="2">Explode selected objects.
2913<tr><td>*BOOLEAN=MODE,SET1,SET2 <td colspan="2">Perform 2D boolean operations on two selection sets: AND,OR,XOR,Subtract.
2914<tr><td>*OFFSET=DISTANCE,SET <td colspan="2">Create parallel paths, lines, polygons and arcs - from selected objects.
2915*/
2916
2917
2954
2955
2957// BOOLEAN
2959
3030
3032// FABRICATION
3034
3035/*
3036<tr><td>COPPER_POUR=Clearance,MinSize,Method,Fill,Pattern,Layer,FilltoEdge,SET <td colspan="2">
3037<tr><td>PINHOLE_ELIMINATION=MinSize,SET <td colspan="2">
3038<tr><td>GENERATE_NC_LAYER=SOURCE_LAYER <td colspan="2">
3039<tr><td>GENERATE_NEGATIVE_LAYER=SOURCE_LAYER <td colspan="2">
3040<tr><td>GENERATE_MASK_LAYER=CLEARANCE <td colspan="2">
3041<tr><td>GENERATE_PASTE_LAYER=CLEARANCE <td colspan="2">
3042<tr><td>GENERATE_FAB_DRAWING=DRILL_LAYER <td colspan="2">
3043*/
3044
3263
3264
3266// ASSEMBLY
3268
3367
3368
3370// SMT_STENCIL
3372
3498
3499
3501// Selection / Filter
3503
3547
3646
3647
3689
3690
3730
3732// EXPORT
3734
3735
3797
3798
3873
3874
3910
3911
3944
3945
3978
3979
4020
4021
4061
4062
4098
4099
4134
4135
4171
4172
4173
4234
4235
4283
4284
4285
4312
4313
4314//----------------------------------------------------------------------------------//
4315//----------------------------------------------------------------------------------//
4316//----------------------------------------------------------------------------------//
4317
4354
4355//----------------------------------------------------------------------------------//
4356
4357/*
4358TODO:
4359<tr><td>DrillSmallest=VALUE <td colspan="2"> <br><br>
4360<tr><td>DrillDensity=VALUE <td colspan="2"> <br><br>
4361<tr><td>RoutScoring=VALUE <td colspan="2"> <br><br>
4362<tr><td>FlyingProbeTesting=VALUE <td colspan="2"> <br><br>
4363<tr><td>RoHs=VALUE <td colspan="2"> <br><br>
4364<tr><td>CutoutsCount=VALUE <td colspan="2"> <br><br>
4365<tr><td>SlotsCount=VALUE <td colspan="2"> <br><br>
4366<tr><td>CountersinkCount=VALUE <td colspan="2"> <br><br>
4367<tr><td>CounterboreCount=VALUE <td colspan="2"> <br><br>
4368<tr><td>GoldFingersCount=VALUE <td colspan="2"> <br><br>
4369<tr><td>GoldFingersThickness=VALUE <td colspan="2"> <br><br>
4370<tr><td>ControlledImpedanceCount=VALUE <td colspan="2"> <br><br>
4371<tr><td>ControlledImpedanceTolerance=VALUE <td colspan="2"> <br><br>
4372<tr><td>CarbonInk=VALUE <td colspan="2"> <br><br>
4373<tr><td>EdgePlatingSides=VALUE <td colspan="2"> <br><br>
4374<tr><td>FilledViasCount=VALUE <td colspan="2"> <br><br>
4375<tr><td>FilledViasNonConductiveCount=VALUE <td colspan="2"> <br><br>
4376
4377*/
4378
4379
4380
4695
4696
4697//Extra Options not yet included
4698/*
4699<tr><td><b>OASIS Options:</b><td colspan="2">
4700<tr><td>oasis-import_cell=NAME <td colspan="2">OASIS top cell to convert.
4701<tr><td>oasis-import_separate_datatypes <td colspan="2">Separate layer for each layer/type.
4702
4703<tr><td><b>BITMAP Rasterize Options:</b><td colspan="2">
4704<tr><td>bmp-import_dpi=NUM <td colspan="2">Import Bitmap Resolution - Pixels Per Inch. (default: 800.0)
4705<tr><td>bmp-import_dpm=NUM <td colspan="2">Import Bitmap Resolution - Pixels Per Millimeter. (default: 100.0)
4706<tr><td>bmp-import_BackgroundBlack <td colspan="2">Black pixels will be ignored. Default is a White background.
4707<tr><td>bmp-import_OptimizePixelsAsFlashes <td colspan="2">Output adjacent pixels as flashes.
4708<tr><td>bmp-import_OptimizePixelsAsPolygons <td colspan="2">Output adjacent pixels as polygons.
4709<tr><td>bmp-import_GrayscalePercentage=NUM <td colspan="2">Pixels with a gray-scale similar to the background color are ignored. (default: 75.0)
4710<tr><td>bmp-import_VerticalScalePercentage=NUM <td colspan="2">Scale pixels in Y direction (default: 100.0).
4711
4712<tr><td><b>Plotter Options:</b><td colspan="2">
4713<tr><td>plot-export_type=TYPE <td colspan="2">Assign plotter type. Choose from: GSI77, GSI78, HPGL, Postscript.
4714<tr><td>plot-export_offset=X,Y <td colspan="2">Plotter offset in inches. Use comma to separate X and Y.
4715
4716<tr><td><b>PDF/Postscript Options:</b><td colspan="2">
4717<tr><td>ps-import_page=NUM <td colspan="2">Determine which page to import. (1 is the default).
4718<tr><td>ps-import_paths=MODE <td colspan="2">Choose how to import Paths. Choose from: Detect, Polygon, Rounded, Truncated, Extended. (Default: Rounded)
4719<tr><td>ps-import_fill=MODE <td colspan="2">Choose how to import boundaries. Choose from: Detect, DeEmbed, Fill, Outline. (Default: Outline)
4720<tr><td>ps-import_text=MODE <td colspan="2">Choose how to import text. Choose from: None, Polygon, Adjustable, DefaultFont. (Default: Polygon)
4721<tr><td>ps-import_defaultfont=FONT <td colspan="2">Assign the default QuickTrans font to use if nothing can be detected. (Default: Arial.fnt)
4722<tr><td>ps-import_flash_round <td colspan="2"Automatically flash Round and Donut shapes.
4723<tr><td>ps-import_flash_rectangle <td colspan="2">Automatically flash Rectangle shapes.
4724<tr><td>ps-import_separatelayerpercolor <td colspan="2">Create a new layer for each object color.
4725<tr><td>ps-import_ghostscript=PATH <td colspan="2">Assign the file path to locate the specific Ghostscript EXE or DLL.
4726<tr><td>ps-import_ghostscript_commands=COMMANDS <td colspan="2">Assign additional Ghostscript commands. Make comma separated.
4727
4728*/
4729
4730
4731//----------------------------------------------------------------------------------//
4732
4769
4770
4771//----------------------------------------------------------------------------------//
4772
4810
4811//----------------------------------------------------------------------------------//
4812
4839
4840
4841//----------------------------------------------------------------------------------//
4842
4900
4901//----------------------------------------------------------------------------------//
4902/*
4903 <tr><td>@1 <td colspan="1"> First Job
4904 <tr><td>@3 <td colspan="1"> Third Job
4905 <tr><td>@ -1 <td colspan="1"> Last Job minus 1 (i.e second to last)
4906 <tr><td>@ -3 <td colspan="1"> Last Job minus 3 (i.e fourth to last)
4907*/
4908
4928
4929//----------------------------------------------------------------------------------//
4930
5002
5003//----------------------------------------------------------------------------------//
5004
5038
5039
5040//----------------------------------------------------------------------------------//
5041
5058
5059//----------------------------------------------------------------------------------//
5060
5107
5108//----------------------------------------------------------------------------------//
5109
5148
5149//----------------------------------------------------------------------------------//
5150/*What about Factors .75 - use percentage instead of factors*/
5170
5171
5172//----------------------------------------------------------------------------------//
5173
5183
5184//----------------------------------------------------------------------------------//
5185
5251
5252
5253//----------------------------------------------------------------------------------//
5254
5303
5304
5305//----------------------------------------------------------------------------------//
5306//----------------------------------------------------------------------------------//
5307//----------------------------------------------------------------------------------//
5308
5309
5318
5319
5320
5433
5434//----------------------------------------------------------------------------------//
5435
5512
5513
5514//----------------------------------------------------------------------------------//
5515//----------------------------------------------------------------------------------//
5516//----------------------------------------------------------------------------------//
5517
5566
5567
5568//----------------------------------------------------------------------------------//
5569
5602
5603//----------------------------------------------------------------------------------//
5604
5643
5644//----------------------------------------------------------------------------------//
5645
5711
5712//----------------------------------------------------------------------------------//
5713
5748
5749//----------------------------------------------------------------------------------//
5750
5775
5776
5777//----------------------------------------------------------------------------------//
5778
5794
5795//----------------------------------------------------------------------------------//
5796//----------------------------------------------------------------------------------//
5797//----------------------------------------------------------------------------------//
5798
5828
5829//----------------------------------------------------------------------------------//
5830//----------------------------------------------------------------------------------//
5831//----------------------------------------------------------------------------------//
5832
5833//More Potential Examples
5834//- \subpage example-matrix-test-3 "Generate a quotation for PCB Bareboard"
5835//- \subpage example-matrix-test-3 "Generate a PCB Bareboard Fabrication Report"
5836// TODO: Add an option that shows typical pricing - so the user can at least have something in mind...
5837
5864
5865
5866//----------------------------------------------------------------------------------//
5867//----------------------------------------------------------------------------------//
5868//----------------------------------------------------------------------------------//
5869
5870
6010
6011//----------------------------------------------------------------------------------//
6012
6079
6080
6081//----------------------------------------------------------------------------------//
6082
6115
6116//----------------------------------------------------------------------------------//
6117
6211
6212//----------------------------------------------------------------------------------//
6213
6252
6253
6254//----------------------------------------------------------------------------------//
6255//----------------------------------------------------------------------------------//
6256//----------------------------------------------------------------------------------//
6257
6334
6335
6381
6382
6429
6430
6528
6529//----------------------------------------------------------------------------------//
6530
6561
6562//----------------------------------------------------------------------------------//
6563
6617
6618//----------------------------------------------------------------------------------//
6619
6620