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

📄 microstrip-radial-stub.ulp

📁 老外的PCB设计软件,是免费的.可以上网更新.
💻 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 + -