⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 autosilkutils.il

📁 skill语言在Cadence平台二次开发中大量使用
💻 IL
📖 第 1 页 / 共 5 页
字号:
    (")", '(((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 + -