GDSIIExporter 2.0.135
dotnet add package GDSIIExporter --version 2.0.135
NuGet\Install-Package GDSIIExporter -Version 2.0.135
<PackageReference Include="GDSIIExporter" Version="2.0.135" />
paket add GDSIIExporter --version 2.0.135
#r "nuget: GDSIIExporter, 2.0.135"
// Install GDSIIExporter as a Cake Addin #addin nuget:?package=GDSIIExporter&version=2.0.135 // Install GDSIIExporter as a Cake Tool #tool nuget:?package=GDSIIExporter&version=2.0.135
In the design of integrated circuits, the most popular format for interchange is the Calma GDS II stream format (GDS II is a trademark of Calma Company, a wholly owned subsidiary of General Electric Company, U.S.A.).
Using GDSIIExporter, programmer can very easy create GDSII stream format file without deep knowledge of the GDSII format details .
The component has been developed and implemented as dynamic link library.
#include <TCHAR.h>
#include <iostream>
#include <math.h>
#include "GDSIIInterface.h"
#include "GDSIIConst.h"
#define pt 200
int _tmain(int argc, char* argv[])
{
HANDLE hnd;
int rc = eErrNoError;
int x1[pt];
int y1[pt];
const char* src = "Test.gds";
int x[] = { 110,210,327,200,600,700,880,1000 };
int y[] = { 0,100,250,150,300,440,900,800 };
int xb[] = { 110,210,327,550 };
int yb[] = { 0,200,250,170 };
int xar[] = { 0,1100,0 };
int yar[] = { 0,0,1000 };
//To build SIN graph
double k;
for (int i = 0; i < pt; i++)
{
k = i / 10.;
x1[i] = i * 10;
y1[i] = long(500 + sin(k) * 500);
}
//Beging GDS
rc = GDS_BeginLib(src, 1e-3, 1e-9, &hnd);
if (rc != eErrNoError) goto DONE;
rc = GDS_BeginStructure(hnd, "str1");
if (rc != eErrNoError) goto DONE;
rc = GDS_Box(hnd, 105, 105, 205, 205, 0, 10, 0, 0);
if (rc != eErrNoError) goto DONE;
rc = GDS_BoxWH(hnd, 250, 105, 200, 300, 0, 10, 0, 0);
if (rc != eErrNoError) goto DONE;
rc = GDS_Square(hnd, 500, 105, 400, 0, 0, 0, 0);
if (rc != eErrNoError) goto DONE;
rc = GDS_Path(hnd, x, y, 8, 10, 1, 63, PATHTYPE1, 0, PLEX_HEAD);
if (rc != eErrNoError) goto DONE;
rc = GDS_Path(hnd, x1, y1, pt, 5, 1, 63, PATHTYPE1, ELFLAGS_TEMPLATE, 0);
if (rc != eErrNoError) goto DONE;
rc = GDS_Boundary(hnd, xb, yb, 4, 1, 61, 0, 0);
if (rc != eErrNoError) goto DONE;
rc = GDS_Text(hnd, 100, 100, "Olex.G@outlook.com", 1, 4,
PRESENT_HCENTER | PRESENT_VBOTTOM, PATHTYPE1, 0, STRANS_0,
0.1, 0, 0, 0);
if (rc != eErrNoError) goto DONE;
rc = GDS_Text(hnd, 100, 300, "GDSIIExporter", 1, 4,
PRESENT_HCENTER | PRESENT_VBOTTOM, PATHTYPE1, 0, STRANS_0,
0.1, 0, 0, 0);
if (rc != eErrNoError) goto DONE;
rc = GDS_Text(hnd, 100, 500, "Copyright Ole.G", 1, 4,
PRESENT_HLEFT | PRESENT_VBOTTOM, PATHTYPE1, 0, STRANS_0,
0.05, 45, 0, 0);
if (rc != eErrNoError) goto DONE;
rc = GDS_Circle(hnd, 1500, 1000, 1000, 150, 0, 0, 0, 0);
if (rc != eErrNoError) goto DONE;
rc = GDS_Circle(hnd, 1000, 1500, 1000, 7, 0, 0, 0, 0);
if (rc != eErrNoError) goto DONE;
rc = GDS_Arc(hnd, 100, 150, 1000, 45, 178, 135, 40, 0, 0, PATHTYPE1, 0, 0);
if (rc != eErrNoError) goto DONE;
rc = GDS_Arc(hnd, 400, 300, 600, 120, 270, 100, 40, 0, 0, PATHTYPE2, 0, 0);
if (rc != eErrNoError) goto DONE;
rc = GDS_Sector(hnd, 1000, 1500, 1050, 30, 185, 100, 0, 0, 0, 0);
if (rc != eErrNoError) goto DONE;
rc = GDS_Sector(hnd, 1000, 1000, 800, 120, 290, 199, 0, 0, 0, 0);
if (rc != eErrNoError) goto DONE;
rc = GDS_Square(hnd, 500, 500, 400, 0, 0, 0, 0);
if (rc != eErrNoError) goto DONE;
rc = GDS_EndStructure(hnd);
if (rc != eErrNoError) goto DONE;
rc = GDS_EndLib(hnd);
if (rc != eErrNoError) goto DONE;
DONE:
if (rc != eErrNoError)
{
const int buffSize = 256;
char errMsg[buffSize] = { 0 };
GDS_GetError(rc, errMsg, buffSize);
std::cout << errMsg;
}
return 0;
}
GDSIIExporter nuget package includes detailed documentation on how to use it.
Product | Versions Compatible and additional computed target framework versions. |
---|---|
native | native is compatible. |
-
native 0.0
- No dependencies.
NuGet packages
This package is not used by any NuGet packages.
GitHub repositories
This package is not used by any popular GitHub repositories.
Version | Downloads | Last updated |
---|---|---|
2.0.135 | 619 | 4/25/2020 |