OK, in ./qcadlib/src/engine/rs.h, add the following code under "Paper formats" (I put mine between 'Executive' and 'A0')
- Code: Select all
AnsiB,
AnsiC,
AnsiD,
AnsiE,
ArchA,
ArchB,
ArchC,
ArchD,
ArchE1,
ArchE,
This same list of sizes separated by commas can be put in $QTDIR/include/qprinter.h under "enum PageSize", though I'm not sure it's necessary.
and in ./qcadlib/src/engine/rs_units.cpp add the following code under "@return Size of the given paper format":
- Code: Select all
case RS2::AnsiB:
ret = RS_Vector(279.4, 431.8);
break;
case RS2::AnsiC:
ret = RS_Vector(431.8, 558.8);
break;
case RS2::AnsiD:
ret = RS_Vector(558.8, 863.6);
break;
case RS2::AnsiE:
ret = RS_Vector(863.6, 1117.6);
break;
case RS2::ArchA:
ret = RS_Vector(228.6, 304.8);
break;
case RS2::ArchB:
ret = RS_Vector(304.8, 457.2);
break;
case RS2::ArchC:
ret = RS_Vector(457.2, 609.6);
break;
case RS2::ArchD:
ret = RS_Vector(609.6, 914.4);
break;
case RS2::ArchE1:
ret = RS_Vector(762.0, 1066.8);
break;
case RS2::ArchE:
ret = RS_Vector(914.4, 1219.2);
break;
(once again, between Executive and A0)
and in the same file after "Converts a paper format to a string (e.g. for a combobox)." put this code:
- Code: Select all
case RS2::AnsiB:
ret = "ANSI B";
break;
case RS2::AnsiC:
ret = "ANSI C";
break;
case RS2::AnsiD:
ret = "ANSI D";
break;
case RS2::AnsiE:
ret = "ANSI E";
break;
case RS2::ArchA:
ret = "Arch A";
break;
case RS2::ArchB:
ret = "Arch B";
break;
case RS2::ArchC:
ret = "Arch C";
break;
case RS2::ArchD:
ret = "Arch D";
break;
case RS2::ArchE1:
ret = "Arch E1";
break;
case RS2::ArchE:
ret = "Arch E";
break;
and after "converts a string to a paper format"
- Code: Select all
} else if (p=="ansi b") {
ret = RS2::AnsiB;
} else if (p=="ansi c") {
ret = RS2::AnsiC;
} else if (p=="ansi d") {
ret = RS2::AnsiD;
} else if (p=="ansi e") {
ret = RS2::AnsiE;
} else if (p=="arch a") {
ret = RS2::ArchA;
} else if (p=="arch b") {
ret = RS2::ArchB;
} else if (p=="arch c") {
ret = RS2::ArchC;
} else if (p=="arch d") {
ret = RS2::ArchD;
} else if (p=="arch e1") {
ret = RS2::ArchE1;
} else if (p=="arch e") {
ret = RS2::ArchE;
I hope this helps somebody...
PS: I didn't include ANSI A because it's essentially 'Letter' size in landscape format.
And ANSI B isn't the same as Executive or Ledger.