📄 autosilkutils.il
字号:
(")", '(((0.583 1.0) (0.75 0.833) (0.833 0.667) (0.833 0.0) (0.75 -0.167) (0.583 -0.333))))
("*", '(((1.0 0.333) (0.0 0.333)) ((0.133 0.7) (0.867 -0.033)) ((0.5 -0.167) (0.5 0.833)) ((0.867 0.7) (0.133 -0.033))))
("+", '(((0.5 0.117) (0.5 0.55)) ((0.717 0.333) (0.317 0.333))))
(",", '(((0.533 0.033) (0.467 -0.183))))
("-", '(((0.717 0.333) (0.283 0.333))))
(".", '(((0.5 -0.033) (0.533 -0.017) (0.533 0.017) (0.5 0.033) (0.467 0.017) (0.467 -0.017) (0.5 -0.033))))
("/", '(((0.8 1.0) (0.2 -0.033))))
("0", '(((0.5 1.0) (0.633 0.967) (0.733 0.883) (0.8 0.783) (0.85 0.65) (0.867 0.5) (0.85 0.35) (0.8 0.217) (0.733 0.117) (0.633 0.033) (0.5 0.0) (0.367 0.033) (0.267 0.117) (0.2 0.217) (0.15 0.35) (0.133 0.5) (0.15 0.65) (0.2 0.783) (0.267 0.883) (0.367 0.967) (0.5 1.0))))
("1", '(((0.7 0.0) (0.3 0.0)) ((0.3 0.8) (0.5 1.0) (0.5 0.0))))
("2", '(((0.85 0.0) (0.15 0.0) (0.183 0.15) (0.283 0.317) (0.433 0.433) (0.767 0.6) (0.833 0.683) (0.85 0.783) (0.817 0.883) (0.7 0.967) (0.533 1.0) (0.4 0.983) (0.283 0.933) (0.183 0.833))))
("3", '(((0.267 0.917) (0.417 0.983) (0.567 1.0) (0.717 0.95) (0.8 0.867) (0.833 0.767) (0.8 0.667) (0.717 0.583) (0.617 0.533)) ((0.467 0.533) (0.617 0.533) (0.733 0.5) (0.85 0.417) (0.883 0.3) (0.867 0.2) (0.783 0.1) (0.65 0.017) (0.517 0.0) (0.367 0.017) (0.233 0.083) (0.133 0.2))))
("4", '(((0.917 0.283) (0.083 0.283) (0.7 1.0) (0.7 0.0))))
("5", '(((0.75 1.0) (0.3 1.0) (0.25 0.567) (0.4 0.633) (0.517 0.65) (0.633 0.633) (0.75 0.567) (0.833 0.483) (0.867 0.35) (0.85 0.217) (0.767 0.1) (0.65 0.033) (0.5 0.0) (0.35 0.017) (0.233 0.067) (0.133 0.15))))
("6", '(((0.783 0.883) (0.7 0.967) (0.583 1.0) (0.467 0.983) (0.35 0.9) (0.267 0.783) (0.217 0.667) (0.183 0.45) (0.2 0.283) (0.267 0.133) (0.383 0.033) (0.517 0.0) (0.633 0.033) (0.733 0.117) (0.8 0.217) (0.817 0.317) (0.8 0.433) (0.733 0.533) (0.65 0.6) (0.533 0.633) (0.4 0.6) (0.3 0.533) (0.183 0.417))))
("7", '(((0.167 1.0) (0.833 1.0) (0.7 0.75) (0.617 0.567) (0.55 0.4) (0.5 0.217) (0.467 0.0))))
("8", '(((0.5 0.0) (0.383 0.017) (0.25 0.067) (0.167 0.15) (0.133 0.267) (0.167 0.383) (0.267 0.483) (0.417 0.533) (0.583 0.533) (0.683 0.567) (0.767 0.65) (0.8 0.767) (0.75 0.883) (0.633 0.967) (0.5 1.0) (0.367 0.967) (0.25 0.883) (0.2 0.767) (0.233 0.65) (0.317 0.567) (0.417 0.533) (0.583 0.533) (0.733 0.483) (0.833 0.383) (0.867 0.267) (0.833 0.15) (0.75 0.067) (0.617 0.017) (0.5 0.0))))
("9", '(((0.833 0.617) (0.733 0.467) (0.633 0.383) (0.5 0.35) (0.383 0.367) (0.283 0.433) (0.2 0.55) (0.167 0.667) (0.2 0.8) (0.267 0.9) (0.367 0.967) (0.5 1.0) (0.617 0.967) (0.717 0.9) (0.8 0.767) (0.833 0.617) (0.833 0.433) (0.8 0.283) (0.717 0.133) (0.6 0.033) (0.467 0.0) (0.333 0.033) (0.217 0.117))))
(":", '(((0.5 0.417) (0.533 0.433) (0.533 0.467) (0.5 0.483) (0.467 0.467) (0.467 0.433) (0.5 0.417)) ((0.5 -0.033) (0.533 -0.017) (0.533 0.017) (0.5 0.033) (0.467 0.017) (0.467 -0.017) (0.5 -0.033))))
(";", '(((0.617 0.333) (0.383 0.333) (0.383 0.567) (0.617 0.567) (0.617 0.333)) ((0.617 -0.067) (0.383 -0.067) (0.383 0.167) (0.617 0.167) (0.617 -0.067) (0.383 -0.3))))
("<", '(((0.833 0.667) (0.167 0.333) (0.833 0.0))))
("=", '(((0.283 0.483) (0.717 0.483)) ((0.717 0.183) (0.283 0.183))))
(">", '(((0.167 0.667) (0.833 0.333) (0.167 0.0))))
("?", '(((0.283 0.867) (0.333 0.933) (0.417 0.983) (0.5 1.0) (0.617 0.967) (0.683 0.9) (0.717 0.817) (0.717 0.733) (0.667 0.65) (0.6 0.6) (0.533 0.533) (0.5 0.433) (0.5 0.183)) ((0.5 -0.033) (0.533 -0.017) (0.533 0.017) (0.5 0.033) (0.467 0.017) (0.467 -0.017) (0.5 -0.033))))
("@", '(((1.0 -0.167) (0.833 -0.333) (0.167 -0.333) (0.0 -0.167) (0.0 0.833) (0.167 1.0) (0.833 1.0) (1.0 0.833) (1.0 0.167) (0.867 0.033) (0.75 0.167) (0.75 0.5) (0.583 0.667) (0.417 0.667) (0.25 0.5) (0.25 0.167) (0.417 0.0) (0.583 0.0) (0.75 0.167))))
("A", '(((0.233 0.35) (0.767 0.35)) ((0.917 0.0) (0.5 1.0) (0.083 0.0))))
("B", '(((0.117 0.533) (0.633 0.533) (0.75 0.5) (0.85 0.4) (0.883 0.283) (0.85 0.167) (0.783 0.067) (0.667 0.0) (0.117 0.0) (0.117 1.0) (0.567 1.0) (0.683 0.95) (0.75 0.883) (0.783 0.783) (0.75 0.667) (0.7 0.583) (0.633 0.533))))
("C", '(((0.917 0.15) (0.833 0.083) (0.733 0.033) (0.617 0.0) (0.5 0.0) (0.383 0.033) (0.267 0.1) (0.167 0.2) (0.117 0.3) (0.083 0.45) (0.1 0.6) (0.167 0.767) (0.25 0.867) (0.367 0.95) (0.517 1.0) (0.65 1.0) (0.767 0.967) (0.867 0.917))))
("D", '(((0.133 0.0) (0.467 0.0) (0.6 0.05) (0.7 0.117) (0.783 0.217) (0.85 0.333) (0.867 0.5) (0.85 0.667) (0.783 0.783) (0.7 0.883) (0.6 0.95) (0.467 1.0) (0.133 1.0) (0.133 0.0))))
("E", '(((0.167 0.517) (0.567 0.517)) ((0.833 1.0) (0.167 1.0) (0.167 0.0) (0.833 0.0))))
("F", '(((0.183 0.517) (0.583 0.517)) ((0.817 1.0) (0.183 1.0) (0.183 0.0))))
("G", '(((0.85 0.9) (0.75 0.967) (0.617 1.0) (0.5 1.0) (0.367 0.95) (0.267 0.883) (0.167 0.783) (0.1 0.667) (0.067 0.567) (0.067 0.45) (0.1 0.317) (0.167 0.2) (0.267 0.1) (0.383 0.033) (0.55 0.0) (0.717 0.033) (0.833 0.1) (0.933 0.2) (0.933 0.5) (0.6 0.5))))
("H", '(((0.15 0.5) (0.85 0.5)) ((0.85 0.0) (0.85 1.0)) ((0.15 1.0) (0.15 0.0))))
("I", '(((0.7 0.0) (0.3 0.0)) ((0.5 0.0) (0.5 1.0)) ((0.7 1.0) (0.3 1.0))))
("J", '(((0.833 1.0) (0.833 0.333) (0.8 0.2) (0.7 0.1) (0.6 0.033) (0.467 0.0) (0.35 0.033) (0.25 0.1) (0.167 0.2))))
("K", '(((0.417 0.667) (0.867 0.0)) ((0.133 0.383) (0.767 1.0)) ((0.133 1.0) (0.133 0.0))))
("L", '(((0.833 0.0) (0.167 0.0) (0.167 1.0))))
("M", '(((0.933 0.0) (0.933 1.0) (0.5 0.167) (0.067 1.0) (0.067 0.0))))
("N", '(((0.883 1.0) (0.883 0.0) (0.117 1.0) (0.117 0.0))))
("O", '(((0.5 0.0) (0.633 0.017) (0.75 0.083) (0.85 0.183) (0.917 0.3) (0.95 0.433) (0.95 0.567) (0.917 0.7) (0.85 0.817) (0.75 0.917) (0.633 0.983) (0.5 1.0) (0.367 0.983) (0.25 0.917) (0.15 0.817) (0.083 0.7) (0.05 0.567) (0.05 0.433) (0.083 0.3) (0.15 0.183) (0.25 0.083) (0.367 0.017) (0.5 0.0))))
("P", '(((0.167 0.417) (0.567 0.417) (0.717 0.467) (0.8 0.567) (0.833 0.7) (0.8 0.833) (0.7 0.95) (0.567 1.0) (0.167 1.0) (0.167 0.0))))
("Q", '(((0.833 0.0) (0.633 0.267)) ((0.5 0.0) (0.633 0.017) (0.75 0.083) (0.85 0.183) (0.917 0.3) (0.95 0.433) (0.95 0.567) (0.917 0.7) (0.85 0.817) (0.75 0.917) (0.633 0.983) (0.5 1.0) (0.367 0.983) (0.25 0.917) (0.15 0.817) (0.083 0.7) (0.05 0.567) (0.05 0.433) (0.083 0.3) (0.15 0.183) (0.25 0.083) (0.367 0.017) (0.5 0.0))))
("R", '(((0.833 0.0) (0.583 0.483)) ((0.167 0.483) (0.583 0.483) (0.7 0.533) (0.8 0.617) (0.833 0.75) (0.8 0.883) (0.717 0.95) (0.583 1.0) (0.167 1.0) (0.167 0.0))))
("S", '(((0.783 0.883) (0.683 0.967) (0.567 1.0) (0.45 1.0) (0.333 0.95) (0.25 0.867) (0.217 0.75) (0.267 0.633) (0.383 0.567) (0.583 0.533) (0.733 0.467) (0.817 0.367) (0.85 0.25) (0.8 0.133) (0.7 0.05) (0.567 0.0) (0.433 0.0) (0.283 0.05) (0.15 0.133))))
("T", '(((0.883 1.0) (0.117 1.0)) ((0.5 0.0) (0.5 1.0))))
("U", '(((0.867 1.0) (0.867 0.283) (0.8 0.133) (0.667 0.033) (0.5 0.0) (0.333 0.033) (0.2 0.133) (0.133 0.283) (0.133 1.0))))
("V", '(((0.917 1.0) (0.5 0.0) (0.083 1.0))))
("W", '(((1.0 1.0) (0.767 0.0) (0.5 1.0) (0.233 0.0) (0.0 1.0))))
("X", '(((0.85 0.0) (0.15 1.0)) ((0.85 1.0) (0.15 0.0))))
("Y", '(((0.5 0.45) (0.833 1.0)) ((0.167 1.0) (0.5 0.45) (0.5 0.0))))
("Z", '(((0.817 0.0) (0.183 0.0) (0.817 1.0) (0.183 1.0))))
("[", '(((0.667 -0.333) (0.333 -0.333) (0.333 1.0) (0.667 1.0))))
("\\", '(((1.0 -0.333) (0.0 1.0))))
("]", '(((0.333 1.0) (0.667 1.0) (0.667 -0.333) (0.333 -0.333))))
("^", '(((0.5 -0.333) (0.5 1.0)) ((0.833 0.333) (0.5 1.0) (0.167 0.333))))
("_", '(((1.0 -0.333) (0.0 -0.333))))
("`", '(((0.333 0.875) (0.458 0.875) (0.458 1.0) (0.333 1.0) (0.333 0.875) (0.5 0.667))))
("a", '(((0.8 0.133) (0.733 0.067) (0.633 0.017) (0.517 0.0) (0.4 0.033) (0.3 0.1) (0.233 0.2) (0.2 0.333) (0.233 0.467) (0.3 0.567) (0.4 0.633) (0.517 0.667) (0.633 0.65) (0.733 0.617) (0.8 0.55)) ((0.8 0.667) (0.8 0.0))))
("b", '(((0.2 0.15) (0.283 0.067) (0.383 0.017) (0.483 0.0) (0.583 0.017) (0.7 0.083) (0.767 0.183) (0.8 0.317) (0.8 0.45) (0.733 0.567) (0.633 0.633) (0.483 0.667) (0.383 0.65) (0.283 0.6) (0.2 0.5)) ((0.2 1.0) (0.2 0.0))))
("c", '(((0.767 0.1) (0.667 0.033) (0.55 0.0) (0.417 0.033) (0.317 0.117) (0.25 0.217) (0.233 0.333) (0.25 0.45) (0.317 0.567) (0.417 0.633) (0.55 0.667) (0.65 0.65) (0.767 0.583))))
("d", '(((0.8 0.55) (0.717 0.617) (0.633 0.65) (0.517 0.667) (0.383 0.633) (0.283 0.55) (0.217 0.45) (0.2 0.333) (0.217 0.217) (0.283 0.117) (0.383 0.033) (0.517 0.0) (0.633 0.017) (0.733 0.067) (0.8 0.15)) ((0.8 0.0) (0.8 1.0))))
("e", '(((0.783 0.133) (0.667 0.033) (0.55 0.0) (0.433 0.017) (0.333 0.083) (0.25 0.183) (0.217 0.283) (0.217 0.383) (0.25 0.483) (0.317 0.6) (0.417 0.65) (0.533 0.667) (0.65 0.633) (0.733 0.567) (0.783 0.45) (0.25 0.45))))
("f", '(((0.217 0.6) (0.55 0.6)) ((0.75 0.883) (0.7 0.967) (0.6 1.0) (0.5 0.983) (0.433 0.933) (0.4 0.85) (0.4 0.0))))
("g", '(((0.8 0.15) (0.733 0.083) (0.617 0.017) (0.517 0.0) (0.383 0.033) (0.283 0.117) (0.217 0.233) (0.2 0.333) (0.233 0.45) (0.3 0.567) (0.383 0.633) (0.517 0.667) (0.633 0.65) (0.733 0.6) (0.8 0.533)) ((0.8 0.667) (0.8 -0.117) (0.733 -0.233) (0.633 -0.317) (0.517 -0.333) (0.383 -0.317) (0.267 -0.25))))
("h", '(((0.783 0.0) (0.783 0.483) (0.733 0.583) (0.617 0.65) (0.517 0.667) (0.383 0.65) (0.3 0.6) (0.217 0.517)) ((0.217 1.0) (0.217 0.0))))
("i", '(((0.5 0.933) (0.533 0.95) (0.533 0.983) (0.5 1.0) (0.467 0.983) (0.467 0.95) (0.5 0.933)) ((0.5 0.0) (0.5 0.667))))
("j", '(((0.733 0.933) (0.767 0.95) (0.767 0.983) (0.733 1.0) (0.7 0.983) (0.7 0.95) (0.733 0.933)) ((0.733 0.667) (0.733 -0.067) (0.683 -0.217) (0.583 -0.3) (0.45 -0.333) (0.35 -0.317) (0.233 -0.25))))
("k", '(((0.783 0.0) (0.433 0.433)) ((0.217 0.283) (0.75 0.667)) ((0.217 1.0) (0.217 0.0))))
("l", '(((0.5 1.0) (0.5 0.0))))
("m", '(((1.0 0.0) (1.0 0.467) (0.95 0.567) (0.867 0.633) (0.75 0.667) (0.633 0.633) (0.55 0.567) (0.5 0.483)) ((0.5 0.0) (0.5 0.483) (0.45 0.567) (0.367 0.633) (0.25 0.667) (0.133 0.633) (0.05 0.567) (0.0 0.483)) ((0.0 0.667) (0.0 0.0))))
("n", '(((0.783 0.0) (0.783 0.467) (0.733 0.583) (0.633 0.65) (0.517 0.667) (0.383 0.65) (0.283 0.583) (0.217 0.5)) ((0.217 0.667) (0.217 0.0))))
("o", '(((0.5 0.0) (0.6 0.017) (0.7 0.083) (0.767 0.2) (0.783 0.333) (0.767 0.467) (0.7 0.583) (0.6 0.65) (0.5 0.667) (0.4 0.65) (0.3 0.583) (0.233 0.467) (0.2 0.333) (0.233 0.2) (0.3 0.083) (0.4 0.017) (0.5 0.0))))
("p", '(((0.2 0.133) (0.267 0.067) (0.383 0.017) (0.5 0.0) (0.633 0.033) (0.733 0.1) (0.783 0.217) (0.8 0.333) (0.783 0.45) (0.733 0.567) (0.617 0.65) (0.5 0.667) (0.367 0.65) (0.283 0.6) (0.2 0.517)) ((0.2 0.667) (0.2 -0.333))))
("q", '(((0.8 0.15) (0.717 0.067) (0.617 0.017) (0.5 0.0) (0.4 0.017) (0.283 0.1) (0.217 0.217) (0.2 0.333) (0.217 0.45) (0.283 0.567) (0.4 0.65) (0.5 0.667) (0.617 0.65) (0.717 0.6) (0.8 0.517)) ((0.8 0.667) (0.8 -0.333))))
("r", '(((0.733 0.6) (0.633 0.65) (0.55 0.667) (0.433 0.65) (0.35 0.6) (0.267 0.533)) ((0.267 0.667) (0.267 0.0))))
("s", '(((0.7 0.6) (0.6 0.65) (0.5 0.667) (0.4 0.65) (0.333 0.6) (0.3 0.517) (0.367 0.4) (0.667 0.3) (0.733 0.25) (0.75 0.15) (0.717 0.083) (0.65 0.033) (0.55 0.0) (0.45 0.0) (0.333 0.05) (0.25 0.117))))
("t", '(((0.733 0.667) (0.267 0.667)) ((0.5 0.0) (0.5 1.0))))
("u", '(((0.783 0.667) (0.783 0.0)) ((0.783 0.2) (0.717 0.083) (0.617 0.017) (0.5 0.0) (0.383 0.017) (0.283 0.083) (0.217 0.2) (0.217 0.667))))
("v", '(((0.8 0.667) (0.5 0.0) (0.2 0.667))))
("w", '(((0.917 0.667) (0.717 0.0) (0.5 0.667) (0.283 0.0) (0.083 0.667))))
("x", '(((0.25 0.0) (0.75 0.667)) ((0.75 0.0) (0.25 0.667))))
("y", '(((0.633 0.117) (0.317 0.667)) ((0.85 0.667) (0.633 0.117) (0.533 -0.15) (0.467 -0.233) (0.383 -0.3) (0.25 -0.333) (0.15 -0.3))))
("z", '(((0.75 0.0) (0.25 0.0) (0.75 0.667) (0.25 0.667))))
("{", '(((0.667 1.0) (0.5 1.0) (0.333 0.833) (0.333 0.45) (0.167 0.333) (0.333 0.217) (0.333 -0.167) (0.5 -0.333) (0.667 -0.333))))
("|", '(((0.5 1.0) (0.5 -0.333))))
("}", '(((0.333 1.0) (0.5 1.0) (0.667 0.833) (0.667 0.45) (0.833 0.333) (0.667 0.217) (0.667 -0.167) (0.5 -0.333) (0.333 -0.333))))
("~", '(((1.0 0.333) (0.833 0.0) (0.667 0.0) (0.333 0.667) (0.167 0.667) (0.0 0.333))))
(t, list(list(0.1:0, 0.1:1, 0.9:1, 0.9:0, 0.1:0)))
)
foreach(line, lines
lineList = tconc(nil, list(lx + chWid * caar(line), ly + txtHgt * cadar(line)))
foreach(pt, cdr(line), tconc(lineList, list(lx + chWid * car(pt), ly + txtHgt * cadr(pt))))
result = cons(car(lineList), result)
)
result
))
defun( ASU_getGeometryObjects (subclassPrefix, objTypes)
let((layers)
foreach(class, '("BOARD", "PACKAGE")
layers = append(mapcar(lambda((side) strcat(class, " GEOMETRY/", subclassPrefix, "_", side)) '("TOP", "BOTTOM")), layers)
)
findTypeObjects(objTypes, ?layers layers)
))
defun( ASU_showLog (drcMsgs)
let((drcLogFileName, drcLogFile, p)
drcLogFileName = "ASU_drcs"
drcLogFile = strcat(drcLogFileName, ".log")
p = if(isCallable('axlDMOpenLog), axlDMOpenLog(drcLogFileName), outfile(drcLogFile, "w"))
when(isCallable('axlLogHeader), axlLogHeader(p, "Silkscreen Checker DRC log"))
if(drcMsgs then foreach(msg, drcMsgs, fprintf(p, "%s\n", msg)) else fprintf(p, "No DRCs created\n"))
if(isCallable('axlDMClose), axlDMClose(p), close(p))
axlUIViewFileCreate(drcLogFile, "Silkscreen Checker DRC log", nil)
))
;The following function is required because axlFlushDisplay doesn't work in some circumstances.
defun( ASU_tweakDisplay ()
let((wBox, (tad axlMKSConvert(0.001, "MM")))
wBox = axlWindowBoxGet()
axlWindowBoxSet(list(caar(wBox) + tad:cadar(wBox), cadr(wBox)))
axlWindowBoxSet(wBox)
))
defun( ASU_getLayerSide (layer @optional obj)
let((side)
side = car(last(parseString(layer, "/_"))), when(side == "BOT", side = "BOTTOM")
and(obj, !member(side, '("TOP", "BOTTOM")), if(obj ->isMirrored then side = "BOTTOM" else side = "TOP"))
unless(side == "BOTTOM", side = "TOP")
side
))
defun( DRCbrowse_createForm (@optional drcs, padSubclass)
let((units, drcList, formFile, p, (x 2), (y 0), listLen, zoomExt, form, txtInfo, txtBlkPairs)
defvar(DRCbrowse_tempLayers)
defvar(DRCbrowse_hiddenLayers)
defvar(DRCbrowse_drcInfo)
defvar(DRCbrowse_drcLayer)
defvar(DRCbrowse_padSubclass)
defvar(DRCbrowse_transactionMark)
defvar(DRCbrowse_transactionLevel)
unless(drcs, drcs = axlSelectByProperty("DRC", "EXTERNAL_VIOLATION_DESCRIPTION"))
DRCbrowse_padSubclass = if(padSubclass then padSubclass else "SOLDERMASK")
units = car(AFn_getDesignUnits())
unless(axlDBGetPropDictEntry("DRCBROWSE_INDEX"), axlDBCreatePropDictEntry("DRCBROWSE_INDEX", "INTEGER" "drcs"))
when(drcs, drcs = DRCbrowse_sort(drcs, "ByLocation"))
drcList = DRCbrowse_getDRClist(drcs)
listLen = max(4, min(length(drcList), 10))
;formFile = strcat(getWorkingDir(), "/ASU_temp.form")
formFile = "ASU_temp.form"
p = outfile(formFile "w")
AFn_formHeader(p, 63, "DRC Browse Form")
AFn_formPopupDefine(p, "TEXTBLKPOP", '(("17" "0.85mm")))
AFn_formMessage(p, "drcCount", ?level 0, ?msgString "%d DRCs")
AFn_formMessage(p, "drcMessage", ?level 0, ?msgString "%s")
AFn_formText(p, "DRC list", x, y), y = y + 2
AFn_formList(p, "drclist", "DRC List:", x, y, 60, listLen), y = y + listLen * 2 - 1
unless(boundp('DRCbrowse_units), defvar(DRCbrowse_units, units))
if(boundp('DRCbrowse_zoomExt) && DRCbrowse_units == units then zoomExt = DRCbrowse_zoomExt
else
zoomExt = if(units == "mils" || units == "inches" then axlMKSConvert(800 "mils") else axlMKSConvert(20 "mm"))
defvar(DRCbrowse_zoomExt, zoomExt)
)
AFn_formRealFillin(p, "zoomExt", 5, 5, x, y ?title "Zoom extent: " ?minVal 0, ?value zoomExt, ?units units)
AFn_formChecklistItem(p, "zoomEnable", x + 24, y, "Zoom Enable")
AFn_formChecklistItem(p, "filterLayers", x + 39, y, "Filter Display Layers"), y = y + 3
AFn_formButton(p, "removeDRC", "Remove DRC", x, y, 15, 3)
AFn_formButton(p, "removeAllDRC", "Remove All Remaining DRCs", x + 20, y, 25, 3)
AFn_formButton(p, "viewDRCLog", "View DRC log", x + 47, y, 12, 3), y = y + 3
AFn_formChecklistItem(p, "allowFixMods", x, y, "Allow modification of fixed objects"), y = y + 2
AFn_formChecklistItem(p, "associate", x, y, "Apply changes to matching parent silkscreen class object"), y = y + 2
AFn_formButton(p, "moveObj" "Move Object", x, y, 13, 3)
AFn_formButton(p, "moveSymb" "Move symbol", x, y + 2, 13, 3)
AFn_formButton(p, "rotateObj" "Rotate Object", x + 15, y, 12, 3)
AFn_formRealFillin(p, "rotateAng", 3, 3, x + 15, y + 2, ?units "degrees", ?value 90, ?decimalPlaces 0)
AFn_formButton(p, "changeObj" "Change Object", x + 30, y, 12, 3)
AFn_formRealFillin(p, "changeVal", 4, 4, x + 29, y + 2, ?title "Change Val:", ?titleLabel "chgValLabel", ?units "units ")
AFn_formButton(p, "removeObj", "Remove Object", x + 46, y, 12, 3), y = y + 4
AFn_formPop(p, "textblk", "TEXTBLKPOP", x + 29, y, 20, ?title "Change to:", ?x2 x + 38, ?titleLabel "txtblktitle"), y = y + 3
AFn_formList(p, "drcInfo", "DRC Info", x, y, 60, 4), y = y + 8
AFn_formButton(p, "oops", "Oops", x, y, 12, 3)
AFn_formButton(p, "cancel", "Quit", x + 23, y, 15, 3)
AFn_formButton(p, "drcbrowsehelp", "Help", x + 50, y, 10, 3)
AFn_formEnd(p)
close(p)
defvar(DRCbrowse_drcList, drcList)
axlDehighlightObject(findTypeObjects('("SHAPES", "TEXT", "LINES", "SHAPES", "DRCS"))); Delete all temporary highlights
defvar(DRCbrowse_highlightedObjs)
defvar(DRCbrowse_movedObj)
defvar(DRCbrowse_form, axlFormCreate('form, formFile, '(E INNER), 'DRCbrowse_formAction, nil))
axlUIWShow(ASU_startForm, 'hide)
defvar(DRCbrowse_modFields, '("moveObj", "moveSymb", "rotateObj", "removeObj", "changeObj", "removeDRC", "changeVal", "textblk", "chgValLabel", "changeValUnits", "oops"))
defvar(DRCbrowse_obj)
foreach(drc, drcList, axlFormSetField(form, "drclist", car(drc)))
foreach(field, DRCbrowse_modFields, axlFormSetFieldEditable(form, field, 0))
unless(boundp('DRCbrowse_zoomEnable), defvar(DRCbrowse_zoomEnable, t))
axlFormSetField(form, "zoomEnable", DRCbrowse_zoomEnable)
unless(boundp('DRCbrowse_filterLayers), defvar(DRCbrowse_filterLayers, t))
axlFormSetField(form, "filterLayers", DRCbrowse_filterLayers)
unless(boundp('DRCbrowse_associate), defvar(DRCbrowse_associate))
axlFormSetField(form, "associate", DRCbrowse_associate)
unless(boundp('DRCbrowse_allowFixMods), defvar(DRCbrowse_allowFixMods))
axlFormSetField(form, "allowFixMods", DRCbrowse_allowFixMods)
if(DRCbrowse_getDRCID("0") && drcList && index(DRCbrowse_getObj(DRCbrowse_getDRCID("0")) ->layer, "AUTOSILK")
then axlFormSetFieldVisible(form, "associate", 1)
else axlFormSetFieldVisible(form, "associate", 0)
)
foreach(field, '("textblk", "txtblktitle"), axlFormSetFieldVisible(form, field, 0))
for(txtBlk, 1, axlDBControl('maxTextBlock)
txtInfo = DRCbrowse_getTextBlkStr(txtBlk)
txtBlkPairs = cons(list(sprintf(nil, "%-4d %s", txtBlk, txtInfo), txtBlk), txtBlkPairs)
)
axlFormBuildPopup(form, "TEXTBLKPOP", reverse(txtBlkPairs))
if(drcList then
axlFormSetInfo(form "actionMsg" "Select a DRC to zoom into")
axlFormMsg(form, "drcCount", length(DRCbrowse_drcList))
else axlFormSetInfo(form, "actionMsg", "No DRCs were found")
)
unless(fboundp('axlDBTransactionCommit), axlFormSetFieldVisible(form, "oops", 0))
axlFormDisplay(form)
deleteFile(formFile)
))
defun( DRCbrowse_formAction (form)
let((allowFixMods, changeFields, layer, drcid, drcPos
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -