This project is part of the @thi.ng/umbrella monorepo.
IGES 5.3 serializer for (currently only) polygonal geometry, both open & closed.
Mainly intended for exporting geometry to be used in various CAD applications (e.g. Rhino, Houdini, Fusion 360)
ALPHA - bleeding edge / work-in-progress
Search or submit any issues for this package
- @thi.ng/geom - Functional, polymorphic API for 2D geometry types & SVG generation
yarn add @thi.ng/iges
ES module import:
<script type="module" src="https://cdn.skypack.dev/@thi.ng/iges"></script>
For Node.js REPL:
# with flag only for < v16
node --experimental-repl-await
> const iges = await import("@thi.ng/iges");
Package sizes (gzipped, pre-treeshake): ESM: 2.89 KB
import * as iges from "@thi.ng/iges";
const doc = iges.newDocument({
maxCoord: 100,
precision: 3,
author: "toxi",
authorOrg: "thi.ng",
});
doc.start = [
"Example file for @thi.ng/iges",
"Defines single open 2D polyline (type 106)"
];
iges.addPolyline(doc, [
[0,0],
[0, 100],
[50, 150],
[100, 100],
[0, 100],
[100, 0],
[0, 0],
[100, 100],
[100, 0]
]);
console.log(iges.serialize(doc));
Resulting output (IGES is a text file format):
Example file for @thi.ng/iges S 1
Defines single open 2D polyline (type 106) S 2
1H,,1H;,,,12H@thi.ng/iges,5H0.0.1,32,38,6,308,15,,1.000,2,2HMM,1,0.254, G 1
15H20180712.212228,0.001,100.000,4Htoxi,6Hthi.ng,11,0, G 2
15H20180712.212228; G 3
106 1 0 0 0 0 0 000000000D 1
106 0 0 3 11 0 0 0D 2
106,1,9,0.000,0.000,0.000,0.000,100.000,50.000,150.000,100.000, 0000001P 1
100.000,0.000,100.000,100.000,0.000,0.000,0.000,100.000,100.000, 0000001P 2
100.000,0.000; 0000001P 3
S0000002G0000003D0000002P0000003 T 1
Karsten Schmidt
If this project contributes to an academic publication, please cite it as:
@misc{thing-iges,
title = "@thi.ng/iges",
author = "Karsten Schmidt",
note = "https://thi.ng/iges",
year = 2016
}
© 2016 - 2021 Karsten Schmidt // Apache Software License 2.0