?? microstrip-radial-stub.ulp
字號:
#usage "<qt><b>Draw a Microstrip Radial Stub</b><p>"
"RUN microstrip-radial-stub"
"<p>"
"<author>Author: support@cadsoft.de </author></qt>"
// THIS PROGRAM IS PROVIDED AS IS AND WITHOUT WARRANTY OF ANY KIND, EXPRESSED OR IMPLIED
int grid = 1;
string GridUnit[] = { "MIC", "MM", "MIL", "INCH" };
real GridWidth[] = { 10.2, 0.0102, 0.4, 0.0004 }; // default by grid
if (board) { board(B) grid = B.grid.unit; }
if (library) { library(L) grid = L.grid.unit; }
real width = GridWidth[grid];
string layer = "1";
string gridstr = "";
real D = 0.01;
real L = 0.99;
real angle = 30.0; // angle of Stub
int arcres = angle / 3; // resolution of angle in steps
real angle_offset = 0.0; // rotate the complete stub
int polygon = 1; // draw as polygon
real arcsinXa;
real arcsinYa;
real arcsinXe;
real arcsinYe;
real ox, oy; // offset X Y
string signame = "";
string cmd_draw_info = "<img src=microstrip-radial-stub.bmp>";
string s;
string h;
string err = " ";
int rank = 0;
if (board) rank = 1;
string polyinit;
sprintf (polyinit, "CHANGE ORPHANS ON;\nCHANGE POUR SOLID;\nCHANGE RANK %d;\n", rank);
real wwidth2;
real RadiusL;
real angleL;
int test = 0;
// ******************** Functions ****************************
string esigname(string sig) {
if (sig) sig = "'" + sig + "'";
return sig;
}
// ************************************************************************
string xy_arc( real ang, real radius, real offx, real offy) {
string xy;
real rad = PI / 180 * ang;
sprintf(xy, "(%.4f %.4f)\n",
offx + (cos(rad) * radius),
offy + (sin(rad) * radius) );
return xy;
}
real bogenY2( real ang, real radius) {
real rad = PI / 180 * (ang/2);
return sin(rad) * radius;
}
real bogenX( real ang, real radius) {
real rad = PI / 180 * (ang/2);
return cos(rad) * radius;
}
// ***
real Xneu(real Xalt, real Yalt, real Xorigin, real Yorigin, real UserWinkel) {
real RADIUS = sqrt(((Xalt - Xorigin) * (Xalt - Xorigin)) + ((Yalt - Yorigin) * (Yalt - Yorigin)));
real WinkelNeu; /* alter Cosinus Winkel = (Xalt - Xorigin) / RADIUS; */
if ((Xalt > Xorigin) && (Yalt >= Yorigin)) { /* Quadrant 1 */
WinkelNeu = acos((Xalt - Xorigin) / RADIUS) * 57.29578 + UserWinkel;
real rad = PI / 180 * WinkelNeu;
return (RADIUS * cos(rad)); }
if ((Xalt < Xorigin) && (Yalt >= Yorigin)) { /* Quadrant 2 */
WinkelNeu = acos((Xalt - Xorigin) / RADIUS) * 57.29578 + UserWinkel;
real rad = PI / 180 * WinkelNeu;
return (RADIUS * cos(rad)); }
if ((Xalt < Xorigin) && (Yalt < Yorigin)) { /* Quadrant 3 */
WinkelNeu = 360 - acos((Xalt - Xorigin) / RADIUS) * 57.29578 + UserWinkel;
real rad = PI / 180 * WinkelNeu;
return (RADIUS * cos(rad)); }
if ((Xalt > Xorigin) && (Yalt < Yorigin)) { /* Quadrant 4 */
WinkelNeu = 360 - acos((Xalt - Xorigin) / RADIUS) * 57.29578 + UserWinkel;
real rad = PI / 180 * WinkelNeu;
return (RADIUS * cos(rad)); }
if ((Xalt == Xorigin) && (Yalt == Yorigin)) { /* Ursprung */
WinkelNeu = (Xalt - Xorigin) + UserWinkel;
real rad = PI / 180 * WinkelNeu;
return (RADIUS * cos(rad)); }
if ((Xalt == Xorigin) && (Yalt > Yorigin)) { /* 90
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -