abstract-3d 0.4.21 → 0.5.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/lib/abstract-3d.d.ts +1 -0
- package/lib/abstract-3d.d.ts.map +1 -1
- package/lib/abstract-3d.js +12 -1
- package/lib/abstract-3d.js.map +1 -1
- package/lib/renderers/step/step-encoding.d.ts +13 -4
- package/lib/renderers/step/step-encoding.d.ts.map +1 -1
- package/lib/renderers/step/step-encoding.js +14 -5
- package/lib/renderers/step/step-encoding.js.map +1 -1
- package/lib/renderers/step/step-geometries/step-box.d.ts.map +1 -1
- package/lib/renderers/step/step-geometries/step-box.js +19 -14
- package/lib/renderers/step/step-geometries/step-box.js.map +1 -1
- package/lib/renderers/step/step-geometries/step-cylinder.d.ts.map +1 -1
- package/lib/renderers/step/step-geometries/step-cylinder.js +50 -26
- package/lib/renderers/step/step-geometries/step-cylinder.js.map +1 -1
- package/lib/renderers/step/step-geometries/step-plane.d.ts.map +1 -1
- package/lib/renderers/step/step-geometries/step-plane.js +10 -6
- package/lib/renderers/step/step-geometries/step-plane.js.map +1 -1
- package/lib/renderers/step/step.d.ts.map +1 -1
- package/lib/renderers/step/step.js +4 -8
- package/lib/renderers/step/step.js.map +1 -1
- package/package.json +2 -2
- package/src/abstract-3d.ts +14 -1
- package/src/renderers/step/step-encoding.ts +59 -9
- package/src/renderers/step/step-geometries/step-box.ts +53 -12
- package/src/renderers/step/step-geometries/step-cylinder.ts +194 -96
- package/src/renderers/step/step-geometries/step-plane.ts +46 -4
- package/src/renderers/step/step.ts +8 -11
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"step-cylinder.js","sourceRoot":"","sources":["../../../../src/renderers/step/step-geometries/step-cylinder.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"step-cylinder.js","sourceRoot":"","sources":["../../../../src/renderers/step/step-geometries/step-cylinder.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,OAAO,CAAC;AAChD,OAAO,EAKL,YAAY,EACZ,cAAc,EACd,QAAQ,EACR,IAAI,EAYJ,OAAO,GACR,MAAM,yBAAyB,CAAC;AACjC,OAAO,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAC3C,OAAO,EACL,kCAAkC,EAClC,aAAa,EACb,mBAAmB,EACnB,+BAA+B,EAC/B,kBAAkB,EAClB,eAAe,EACf,MAAM,EACN,YAAY,EACZ,UAAU,EACV,WAAW,EACX,mBAAmB,EAEnB,SAAS,EACT,iCAAiC,EACjC,UAAU,EACV,SAAS,EACT,UAAU,EACV,sBAAsB,EACtB,IAAI,EACJ,mBAAmB,EAEnB,uDAAuD,EAGvD,aAAa,EAEb,KAAK,EACL,6BAA6B,EAC7B,OAAO,EACP,eAAe,EACf,kBAAkB,EAClB,0BAA0B,EAC1B,4BAA4B,EAC5B,wBAAwB,EAExB,+BAA+B,EAE/B,WAAW,EAEX,kBAAkB,EAClB,uBAAuB,EACvB,mBAAmB,EACnB,MAAM,EACN,YAAY,GACb,MAAM,qBAAqB,CAAC;AAE7B,MAAM,UAAU,YAAY,CAAC,CAAW,EAAE,GAAa,EAAE,SAAe,EAAE,SAAe,EAAE,CAAc;IACvG,MAAM,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC;IACnB,MAAM,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC;IACnB,MAAM,GAAG,GAAG,QAAQ,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;IACjC,MAAM,GAAG,GAAG,YAAY,CAAC,CAAC,CAAC,GAAG,EAAE,SAAS,EAAE,SAAS,CAAC,CAAC;IACtD,MAAM,QAAQ,GAAG,cAAc,CAAC,SAAS,EAAE,CAAC,CAAC,GAAG,IAAI,QAAQ,CAAC,CAAC;IAE9D,MAAM,cAAc,GAAG,IAAI,OAAO,EAAE,CAAC;IACrC,MAAM,KAAK,GAAG,IAAI,KAAK,EAAE,CAAC;IAC1B,KAAK,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC;IAC9C,cAAc,CAAC,qBAAqB,CAAC,KAAK,CAAC,CAAC;IAE5C,MAAM,QAAQ,GAAG,IAAI,OAAO,EAAE,CAAC;IAC/B,MAAM,UAAU,GAAG,IAAI,OAAO,EAAE,CAAC;IACjC,QAAQ,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;IACtB,UAAU,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IAEzB,QAAQ,CAAC,YAAY,CAAC,cAAc,CAAC,CAAC;IACtC,UAAU,CAAC,YAAY,CAAC,cAAc,CAAC,CAAC;IAExC,MAAM,SAAS,GAAG,IAAI,OAAO,EAAE,CAAC;IAChC,SAAS,CAAC,GAAG,CAAC,CAAC,EAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC;IAC5B,SAAS,CAAC,YAAY,CAAC,cAAc,CAAC,CAAC;IAEvC,MAAM,SAAS,GAAG,IAAI,OAAO,EAAE,CAAC;IAChC,SAAS,CAAC,GAAG,CAAC,CAAC,EAAG,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC;IAC7B,SAAS,CAAC,YAAY,CAAC,cAAc,CAAC,CAAC;IAEvC,MAAM,EAAE,GAAG,IAAI,OAAO,EAAE,CAAC;IACzB,MAAM,EAAE,GAAG,IAAI,OAAO,EAAE,CAAC;IACzB,EAAE,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC;IACpB,EAAE,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC;IACrB,EAAE,CAAC,YAAY,CAAC,cAAc,CAAC,CAAC;IAChC,EAAE,CAAC,YAAY,CAAC,cAAc,CAAC,CAAC;IAEhC,+BAA+B,CAAC,CAAC,CAAC,CAAC;IACnC,MAAM,kBAAkB,GAAG,mBAAmB,CAAC,CAAC,CAAC,CAAC;IAElD,MAAM,OAAO,GAAG,UAAU,CACxB,YAAY,CAAC,eAAe,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EACrD,YAAY,CAAC,eAAe,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EACrD,IAAI,CAAC,eAAe,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,MAAM,CAAC,SAAS,CAAC,QAAQ,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAChF,CAAC,EACD,GAAG,CACJ,CAAC;IAEF,MAAM,OAAO,GAAG,UAAU,CACxB,YAAY,CAAC,eAAe,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EACrD,YAAY,CAAC,eAAe,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EACrD,MAAM,CACJ,kBAAkB,CAChB,eAAe,CAAC,OAAO,CAAC,GAAG,EAAE,SAAS,CAAC,EAAE,CAAC,CAAC,EAC3C,SAAS,CAAC,QAAQ,EAAE,CAAC,CAAC,EACtB,SAAS,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAC3B,CAAC,CACF,EACD,CAAC,EACD,CAAC,CACF,EACD,CAAC,EACD,GAAG,CACJ,CAAC;IAEF,MAAM,OAAO,GAAG,UAAU,CACxB,YAAY,CAAC,eAAe,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EACrD,YAAY,CAAC,eAAe,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EACrD,MAAM,CACJ,kBAAkB,CAChB,eAAe,CAAC,OAAO,CAAC,GAAG,EAAE,SAAS,CAAC,EAAE,CAAC,CAAC,EAC3C,SAAS,CAAC,QAAQ,EAAE,CAAC,CAAC,EACtB,SAAS,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAC3B,CAAC,CACF,EACD,CAAC,EACD,CAAC,CACF,EACD,CAAC,CACF,CAAC;IAEF,MAAM,GAAG,GAAG,mBAAmB,CAAC,YAAY,CAAC;QAE3C,aAAa,CACX,UAAU,CACR,SAAS,CACP;YACE,aAAa,CACX,OAAO,EACP,CAAC,EACD,GAAG,CACJ;YACD,aAAa,CACX,OAAO,EACP,CAAC,CACF;YACD,aAAa,CAAC,OAAO,EAAE,CAAC,EAAE,GAAG,CAAC;YAC9B,aAAa,CACX,OAAO,EACP,CAAC,EACD,GAAG,CACJ;SACF,EACD,CAAC,CACF,EACD,GAAG,EACH,CAAC,CACF,EACD,mBAAmB,CACjB,kBAAkB,CAChB,eAAe,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,SAAS,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,GAAG,SAAS,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,GAAG,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EACvF,SAAS,CAAC,UAAU,EAAE,CAAC,CAAC,EACxB,SAAS,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAC5B,CAAC,CACF,EACD,CAAC,EACD,CAAC,CACF,EACD,CAAC,CACF;QAED,aAAa,CACX,UAAU,CACR,SAAS,CAAC;YACR,aAAa,CACT,OAAO,EACP,CAAC,EACD,GAAG,CACJ;SACF,EACD,CAAC,CACF,EACD,GAAG,EACH,CAAC,CACF,EACD,KAAK,CACH,kBAAkB,CAChB,eAAe,CAAC,OAAO,CAAC,GAAG,EAAE,SAAS,CAAC,EAAE,CAAC,CAAC,EAC3C,SAAS,CAAC,QAAQ,EAAE,CAAC,CAAC,EACtB,SAAS,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAC3B,CAAC,CACF,EACD,CAAC,CACF,EACD,CAAC,EACD,GAAG,CACJ;QAED,aAAa,CACX,UAAU,CACR,SAAS,CACP;YACE,aAAa,CACX,OAAO,EACP,CAAC,EACD,GAAG,CACJ;SACF,EACD,CAAC,CACF,EACD,GAAG,EACH,CAAC,CACF,EACD,KAAK,CACH,kBAAkB,CAChB,eAAe,CAAC,OAAO,CAAC,GAAG,EAAE,SAAS,CAAC,EAAE,CAAC,CAAC,EAC3C,SAAS,CAAC,QAAQ,EAAE,CAAC,CAAC,EACtB,SAAS,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAC3B,CAAC,CACF,EACD,CAAC,CACF,EACD,CAAC,CACF;KACF,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IAEV,MAAM,IAAI,GAAG,kCAAkC,CAC7C,kBAAkB,CAAC,eAAe,CAAC,QAAQ,EAAE,CAAC,CAAC,EAAE,SAAS,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,SAAS,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAC7G,GAAG,EACH,CAAC,CACF,CAAC;IAEF,MAAM,IAAI,GAAG,OAAO,CAClB,eAAe,CACb,kBAAkB,EAClB,CAAC,CACF,EACD,UAAU,EACV,CAAC,CACF,CAAC;IAEF,+BAA+B,CAC7B,wBAAwB,CACtB,kBAAkB,CAChB,4BAA4B,CAC1B,IAAI,EACJ,CAAC,CACF,EACD,0BAA0B,CACxB,kBAAkB,EAClB,CAAC,CACF,EACD,CAAC,CACF,EACD,CAAC,CACF,EACD,IAAI,EACJ,CAAC,CACF,CAAC;IAEF,MAAM,KAAK,GAAG,UAAU,CAAC,QAAQ,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC;IAClD,uDAAuD,CACrD,WAAW,CACT,6BAA6B,CAC3B,mBAAmB,CAAC,kBAAkB,CAAC,uBAAuB,CAAC,sBAAsB,CAAC,KAAK,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAC3G,WAAW,CAAC,iCAAiC,CAAC,YAAY,EAAE,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,EACzE,CAAC,CACF,EACD,GAAG,EACH,CAAC,CACF,EACD,CAAC,CACF,CAAC;AACJ,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"step-plane.d.ts","sourceRoot":"","sources":["../../../../src/renderers/step/step-geometries/step-plane.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,EACL,QAAQ,EACR,IAAI,
|
|
1
|
+
{"version":3,"file":"step-plane.d.ts","sourceRoot":"","sources":["../../../../src/renderers/step/step-geometries/step-plane.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,EACL,QAAQ,EACR,IAAI,EAWL,MAAM,yBAAyB,CAAC;AAEjC,OAAO,EAiBL,WAAW,EAmBZ,MAAM,qBAAqB,CAAC;AAE7B,wBAAgB,SAAS,CAAC,CAAC,EAAE,KAAK,EAAE,GAAG,EAAE,QAAQ,EAAE,SAAS,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,EAAE,WAAW,GAAG,IAAI,CAiFzG"}
|
|
@@ -1,12 +1,12 @@
|
|
|
1
|
-
import { vec2Scale, vec3TransRot, vec3RotCombine, vec3Zero, vec3, vec3PosX, vec3PosZ, } from "../../../abstract-3d.js";
|
|
1
|
+
import { vec2Scale, vec3TransRot, vec3RotCombine, vec3Zero, vec3, vec3PosX, vec3PosZ, vec3RotNormal, } from "../../../abstract-3d.js";
|
|
2
2
|
import { parseRgb } from "../../shared.js";
|
|
3
|
-
import { ADVANCED_FACE, AXIS2_PLACEMENT_3D, CARTESIAN_POINT, COLOUR_RGB, CURVE_STYLE, DIRECTION, DRAUGHTING_PRE_DEFINED_CURVE_FONT, EDGE_CURVE, EDGE_LOOP, FACE_BOUND, FILL_AREA_STYLE_COLOUR, LINE, MANIFOLD_SURFACE_SHAPE_REPRESENTATION, MECHANICAL_DESIGN_GEOMETRIC_PRESENTATION_REPRESENTATION, OPEN_SHELL, ORIENTED_EDGE, PLANE, PRESENTATION_STYLE_ASSIGNMENT, SHELL_BASED_SURFACE_MODEL, STYLED_ITEM, SURFACE_SIDE_STYLE, SURFACE_STYLE_FILL_AREA, SURFACE_STYLE_USAGE, VECTOR, VERTEX_POINT, } from "../step-encoding.js";
|
|
3
|
+
import { ADVANCED_FACE, APPLICATION_CONTEXT, APPLICATION_PROTOCOL_DEFINITION, AXIS2_PLACEMENT_3D, CARTESIAN_POINT, COLOUR_RGB, CURVE_STYLE, DIRECTION, DRAUGHTING_PRE_DEFINED_CURVE_FONT, EDGE_CURVE, EDGE_LOOP, FACE_BOUND, FILL_AREA_STYLE_COLOUR, LINE, MANIFOLD_SURFACE_SHAPE_REPRESENTATION, MECHANICAL_DESIGN_GEOMETRIC_PRESENTATION_REPRESENTATION, OPEN_SHELL, ORIENTED_EDGE, PLANE, PRESENTATION_STYLE_ASSIGNMENT, PRODUCT, PRODUCT_CONTEXT, PRODUCT_DEFINITION, PRODUCT_DEFINITION_CONTEXT, PRODUCT_DEFINITION_FORMATION, PRODUCT_DEFINITION_SHAPE, SHAPE_DEFINITION_REPRESENTATION, SHELL_BASED_SURFACE_MODEL, STYLED_ITEM, SURFACE_SIDE_STYLE, SURFACE_STYLE_FILL_AREA, SURFACE_STYLE_USAGE, VECTOR, VERTEX_POINT, } from "../step-encoding.js";
|
|
4
4
|
export function stepPlane(p, mat, parentPos, parentRot, m) {
|
|
5
5
|
const half = vec2Scale(p.size, 0.5);
|
|
6
6
|
const pos = vec3TransRot(p.pos, parentPos, parentRot);
|
|
7
7
|
const rot = vec3RotCombine(parentRot, p.rot ?? vec3Zero);
|
|
8
8
|
const cart3tr = (x, y) => CARTESIAN_POINT(vec3TransRot(vec3(x, y, 0), pos, rot), m);
|
|
9
|
-
const v0 = VECTOR(DIRECTION(
|
|
9
|
+
const v0 = VECTOR(DIRECTION(vec3PosX, m), m);
|
|
10
10
|
const c0 = CARTESIAN_POINT(vec3Zero, m);
|
|
11
11
|
const [c1, c2] = [cart3tr(-half.x, -half.y), cart3tr(half.x, -half.y)];
|
|
12
12
|
const [c3, c4] = [cart3tr(half.x, half.y), cart3tr(-half.x, half.y)];
|
|
@@ -18,10 +18,14 @@ export function stepPlane(p, mat, parentPos, parentRot, m) {
|
|
|
18
18
|
ORIENTED_EDGE(EDGE_CURVE(v3, v4, l3, m), m),
|
|
19
19
|
ORIENTED_EDGE(EDGE_CURVE(v4, v1, l4, m), m),
|
|
20
20
|
];
|
|
21
|
-
|
|
21
|
+
APPLICATION_PROTOCOL_DEFINITION(m);
|
|
22
|
+
const applicationContext = APPLICATION_CONTEXT(m);
|
|
23
|
+
const normal = DIRECTION(vec3RotNormal(vec3PosZ, rot), m);
|
|
24
|
+
const up = DIRECTION(vec3PosZ, m);
|
|
22
25
|
const color = COLOUR_RGB(parseRgb(mat.normal), m);
|
|
23
|
-
const sbsm = SHELL_BASED_SURFACE_MODEL(OPEN_SHELL(ADVANCED_FACE(FACE_BOUND(EDGE_LOOP([oe1, oe2, oe3, oe4], m), "T", m), PLANE(AXIS2_PLACEMENT_3D(c0,
|
|
24
|
-
MANIFOLD_SURFACE_SHAPE_REPRESENTATION(AXIS2_PLACEMENT_3D(c0, DIRECTION(vec3PosZ, m), DIRECTION(vec3PosX, m), m), sbsm, m);
|
|
26
|
+
const sbsm = SHELL_BASED_SURFACE_MODEL(OPEN_SHELL(ADVANCED_FACE(FACE_BOUND(EDGE_LOOP([oe1, oe2, oe3, oe4], m), "T", m), PLANE(AXIS2_PLACEMENT_3D(c0, normal, up, m), m), m), m), m);
|
|
27
|
+
const mssr = MANIFOLD_SURFACE_SHAPE_REPRESENTATION(AXIS2_PLACEMENT_3D(c0, DIRECTION(vec3PosZ, m), DIRECTION(vec3PosX, m), m), sbsm, m);
|
|
25
28
|
MECHANICAL_DESIGN_GEOMETRIC_PRESENTATION_REPRESENTATION(STYLED_ITEM(PRESENTATION_STYLE_ASSIGNMENT(SURFACE_STYLE_USAGE(SURFACE_SIDE_STYLE(SURFACE_STYLE_FILL_AREA(FILL_AREA_STYLE_COLOUR(color, m), m), m), m), CURVE_STYLE(DRAUGHTING_PRE_DEFINED_CURVE_FONT("continuous", m), color, m), m), sbsm, m), m);
|
|
29
|
+
SHAPE_DEFINITION_REPRESENTATION(PRODUCT_DEFINITION_SHAPE(PRODUCT_DEFINITION(PRODUCT_DEFINITION_FORMATION(PRODUCT(PRODUCT_CONTEXT(applicationContext, m), "Plane", m), m), PRODUCT_DEFINITION_CONTEXT(applicationContext, m), m), m), mssr, m);
|
|
26
30
|
}
|
|
27
31
|
//# sourceMappingURL=step-plane.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"step-plane.js","sourceRoot":"","sources":["../../../../src/renderers/step/step-geometries/step-plane.ts"],"names":[],"mappings":"AAAA,OAAO,EAIL,SAAS,EACT,YAAY,EACZ,cAAc,EACd,QAAQ,EACR,IAAI,EACJ,QAAQ,EACR,QAAQ,
|
|
1
|
+
{"version":3,"file":"step-plane.js","sourceRoot":"","sources":["../../../../src/renderers/step/step-geometries/step-plane.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"step.d.ts","sourceRoot":"","sources":["../../../src/renderers/step/step.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,
|
|
1
|
+
{"version":3,"file":"step.d.ts","sourceRoot":"","sources":["../../../src/renderers/step/step.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAuF,MAAM,sBAAsB,CAAC;AAelI,eAAO,MAAM,MAAM,UAAW,KAAK,KAAG,MAkBrC,CAAC"}
|
|
@@ -1,15 +1,8 @@
|
|
|
1
1
|
import { vec3Zero, vec3TransRot, vec3RotCombine } from "../../abstract-3d.js";
|
|
2
2
|
import { GEOMETRIC_REPRESENTATION_CONTEXT_3D, LENGTH_UNIT, NAMED_UNIT, UNCERTAINTY_MEASURE_WITH_UNIT, GEOMETRIC_REPRESENTATION_CONTEXT_2D, HEADER, ENDSEC, } from "./step-encoding.js";
|
|
3
3
|
import { stepBox } from "./step-geometries/step-box.js";
|
|
4
|
+
import { stepCylinder } from "./step-geometries/step-cylinder.js";
|
|
4
5
|
import { stepPlane } from "./step-geometries/step-plane.js";
|
|
5
|
-
// export const toStep2 = (scene: A3D.Scene): string => {
|
|
6
|
-
// const start = performance.now();
|
|
7
|
-
// for (let i = 0; i < 100; i++) {
|
|
8
|
-
// toStep(scene);
|
|
9
|
-
// }
|
|
10
|
-
// console.log((performance.now() - start) / 100);
|
|
11
|
-
// return "";
|
|
12
|
-
// };
|
|
13
6
|
export const toStep = (scene) => {
|
|
14
7
|
const m = { refs: new Map([]), step: "" };
|
|
15
8
|
GEOMETRIC_REPRESENTATION_CONTEXT_3D(
|
|
@@ -33,6 +26,9 @@ function stepGroup(g, parentPos, parentRot, m) {
|
|
|
33
26
|
case "Plane":
|
|
34
27
|
stepPlane(mesh.geometry, mesh.material, pos, rot, m);
|
|
35
28
|
break;
|
|
29
|
+
case "Cylinder":
|
|
30
|
+
stepCylinder(mesh.geometry, mesh.material, pos, rot, m);
|
|
31
|
+
break;
|
|
36
32
|
default:
|
|
37
33
|
break;
|
|
38
34
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"step.js","sourceRoot":"","sources":["../../../src/renderers/step/step.ts"],"names":[],"mappings":"AAAA,OAAO,EAAS,QAAQ,EAAe,YAAY,EAAE,cAAc,
|
|
1
|
+
{"version":3,"file":"step.js","sourceRoot":"","sources":["../../../src/renderers/step/step.ts"],"names":[],"mappings":"AAAA,OAAO,EAAS,QAAQ,EAAe,YAAY,EAAE,cAAc,EAAkC,MAAM,sBAAsB,CAAC;AAClI,OAAO,EAEL,mCAAmC,EACnC,WAAW,EACX,UAAU,EACV,6BAA6B,EAC7B,mCAAmC,EACnC,MAAM,EACN,MAAM,GACP,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAE,OAAO,EAAE,MAAM,+BAA+B,CAAC;AACxD,OAAO,EAAE,YAAY,EAAE,MAAM,oCAAoC,CAAC;AAClE,OAAO,EAAE,SAAS,EAAE,MAAM,iCAAiC,CAAC;AAE5D,MAAM,CAAC,MAAM,MAAM,GAAG,CAAC,KAAY,EAAU,EAAE;IAE7C,MAAM,CAAC,GAAgB,EAAE,IAAI,EAAE,IAAI,GAAG,CAAiB,EAAE,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC;IACvE,mCAAmC;IACjC,IAAI;IACJ,WAAW,CAAC,CAAC,CAAC,EACd,UAAU,CAAC,wCAAwC,EAAE,CAAC,CAAC,EACvD,UAAU,CAAC,2CAA2C,EAAE,CAAC,CAAC,EAC1D,CAAC,CACF,CAAC;IACF,6BAA6B,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IACjD,mCAAmC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE;IAE1C,KAAK,MAAM,CAAC,IAAI,KAAK,CAAC,MAAM,EAAE,CAAC;QAC7B,SAAS,CAAC,CAAC,EAAE,KAAK,CAAC,iBAAiB,IAAI,QAAQ,EAAE,KAAK,CAAC,mBAAmB,IAAI,QAAQ,EAAE,CAAC,CAAC,CAAC;IAC9F,CAAC;IAED,OAAO,GAAG,MAAM,EAAE,GAAG,CAAC,CAAC,IAAI,GAAG,MAAM,EAAE,EAAE,CAAC;AAC3C,CAAC,CAAC;AAEF,SAAS,SAAS,CAAC,CAAQ,EAAE,SAAe,EAAE,SAAe,EAAE,CAAc;IAE3E,MAAM,GAAG,GAAG,YAAY,CAAC,CAAC,CAAC,GAAG,EAAE,SAAS,EAAE,SAAS,CAAC,CAAC;IACtD,MAAM,GAAG,GAAG,cAAc,CAAC,SAAS,EAAE,CAAC,CAAC,GAAG,IAAI,QAAQ,CAAC,CAAC;IACzD,KAAK,MAAM,IAAI,IAAI,CAAC,CAAC,MAAM,IAAI,EAAE,EAAE,CAAC;QAClC,QAAQ,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC;YAC3B,KAAK,KAAK;gBACR,OAAO,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,QAAQ,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC;gBACnD,MAAM;YACR,KAAK,OAAO;gBACV,SAAS,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,QAAQ,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC;gBACrD,MAAM;YACR,KAAK,UAAU;gBACb,YAAY,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,QAAQ,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC;gBACxD,MAAM;YACR;gBACE,MAAM;QACV,CAAC;IACH,CAAC;IAED,KAAK,MAAM,CAAC,IAAI,CAAC,CAAC,MAAM,IAAI,EAAE,EAAE,CAAC;QAC/B,SAAS,CAAC,CAAC,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC;IAC5B,CAAC;AACH,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "abstract-3d",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.5.0",
|
|
4
4
|
"description": "Abstract 3D",
|
|
5
5
|
"author": "Divid AB <info@divid.se>",
|
|
6
6
|
"repository": "https://github.com/dividab/abstract-visuals/tree/master/packages/abstract-3d",
|
|
@@ -33,5 +33,5 @@
|
|
|
33
33
|
"@types/three": "^0.173.0",
|
|
34
34
|
"react": "^19.0.0"
|
|
35
35
|
},
|
|
36
|
-
"gitHead": "
|
|
36
|
+
"gitHead": "c94aae72ce1dd8c2b6f1ee505afb2806f6e23809"
|
|
37
37
|
}
|
package/src/abstract-3d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { Euler, Quaternion, Vector3 } from "three";
|
|
1
|
+
import { Euler, Matrix4, Quaternion, Vector3 } from "three";
|
|
2
2
|
|
|
3
3
|
export type Scene = {
|
|
4
4
|
readonly size_deprecated: Vec3; // Move size calculation to every renderer??
|
|
@@ -406,6 +406,19 @@ export function vec3RotCombine(outer: Vec3, inner: Vec3): Vec3 {
|
|
|
406
406
|
return vec3(euler1.x, euler1.y, euler1.z);
|
|
407
407
|
}
|
|
408
408
|
|
|
409
|
+
export function vec3RotNormal(referenceNormal: Vec3, eulerRot: Vec3): Vec3 {
|
|
410
|
+
const rotationMatrix = new Matrix4();
|
|
411
|
+
const euler = new Euler();
|
|
412
|
+
euler.set(eulerRot.x, eulerRot.y, eulerRot.z);
|
|
413
|
+
rotationMatrix.makeRotationFromEuler(euler);
|
|
414
|
+
|
|
415
|
+
const normal = new Vector3();
|
|
416
|
+
normal.set(referenceNormal.x, referenceNormal.y, referenceNormal.z);
|
|
417
|
+
normal.applyMatrix4(rotationMatrix);
|
|
418
|
+
const normalized = normal.normalize();
|
|
419
|
+
return vec3(normalized.x, normalized.y, normalized.z);
|
|
420
|
+
}
|
|
421
|
+
|
|
409
422
|
export function vec3Rot(point: Vec3, origin: Vec3, rotation: Vec3): Vec3 {
|
|
410
423
|
euler1.set(rotation.x, rotation.y, rotation.z);
|
|
411
424
|
quaternion1.setFromEuler(euler1);
|
|
@@ -16,7 +16,7 @@ const mutate = (step: string, m: MutableStep): number => {
|
|
|
16
16
|
};
|
|
17
17
|
|
|
18
18
|
export const HEADER = (): string =>
|
|
19
|
-
`ISO-10303-21
|
|
19
|
+
`ISO-10303-21;
|
|
20
20
|
HEADER;
|
|
21
21
|
FILE_DESCRIPTION(('FreeCAD Model'),'2;1');
|
|
22
22
|
FILE_NAME('Open CASCADE Shape Model','2024-09-10T08:42:01',('Author'),(
|
|
@@ -52,16 +52,16 @@ export const VERTEX_POINT = (CARTESIAN_POINT: number, m: MutableStep): number =>
|
|
|
52
52
|
export const LINE = (CARTESIAN_POINT: number, VECTOR: number, m: MutableStep): number =>
|
|
53
53
|
mutate(`LINE('',#${CARTESIAN_POINT},#${VECTOR})`, m);
|
|
54
54
|
|
|
55
|
-
export const CIRCLE = (AXIS2_PLACEMENT_3D: number, m: MutableStep): number =>
|
|
56
|
-
mutate(`CIRCLE('',#${AXIS2_PLACEMENT_3D}
|
|
55
|
+
export const CIRCLE = (AXIS2_PLACEMENT_3D: number, radius: number, m: MutableStep): number =>
|
|
56
|
+
mutate(`CIRCLE('',#${AXIS2_PLACEMENT_3D},${radius})`, m);
|
|
57
57
|
|
|
58
58
|
export const VECTOR = (DIRECTION: number, m: MutableStep): number => mutate(`VECTOR('',#${DIRECTION},1.)`, m);
|
|
59
59
|
|
|
60
|
-
export const EDGE_CURVE = (VERTEX_POINT_FROM: number, VERTEX_POINT_TO: number, LINE: number, m: MutableStep): number =>
|
|
61
|
-
mutate(`EDGE_CURVE('',#${VERTEX_POINT_TO},#${VERTEX_POINT_FROM},#${LINE}
|
|
60
|
+
export const EDGE_CURVE = (VERTEX_POINT_FROM: number, VERTEX_POINT_TO: number, LINE: number, m: MutableStep, type: "T" | "F" = "F"): number =>
|
|
61
|
+
mutate(`EDGE_CURVE('',#${VERTEX_POINT_TO},#${VERTEX_POINT_FROM},#${LINE},.${type}.)`, m);
|
|
62
62
|
|
|
63
|
-
export const ORIENTED_EDGE = (EDGE_CURVE: number, m: MutableStep): number =>
|
|
64
|
-
mutate(`ORIENTED_EDGE('',*,*,#${EDGE_CURVE}
|
|
63
|
+
export const ORIENTED_EDGE = (EDGE_CURVE: number, m: MutableStep, type: "T" | "F" = "F"): number =>
|
|
64
|
+
mutate(`ORIENTED_EDGE('',*,*,#${EDGE_CURVE},.${type}.)`, m);
|
|
65
65
|
|
|
66
66
|
export const SURFACE_CURVE = (CIRCLE: number, PCURVE1: number, PCURVE2: number, m: MutableStep): number =>
|
|
67
67
|
mutate(`SURFACE_CURVE('',#${CIRCLE},(#${PCURVE1},#${PCURVE2}),.PCURVE_S1.)`, m);
|
|
@@ -94,8 +94,8 @@ export const PCURVE = (
|
|
|
94
94
|
m: MutableStep
|
|
95
95
|
): number => mutate(`PCURVE('',#${CYLINDRICAL_SURFACE_or_PLANE},#${DEFINITIONAL_REPRESENTATION})`, m);
|
|
96
96
|
|
|
97
|
-
export const CYLINDRICAL_SURFACE = (AXIS2_PLACEMENT_3D: number, m: MutableStep): number =>
|
|
98
|
-
mutate(`CYLINDRICAL_SURFACE('',#${AXIS2_PLACEMENT_3D}
|
|
97
|
+
export const CYLINDRICAL_SURFACE = (AXIS2_PLACEMENT_3D: number, radius: number, m: MutableStep): number =>
|
|
98
|
+
mutate(`CYLINDRICAL_SURFACE('',#${AXIS2_PLACEMENT_3D},${radius})`, m);
|
|
99
99
|
|
|
100
100
|
export const DEFINITIONAL_REPRESENTATION = (LINEorCircle: number, m: MutableStep): number =>
|
|
101
101
|
mutate(`DEFINITIONAL_REPRESENTATION('',(#${LINEorCircle}),#7)`, m);
|
|
@@ -206,3 +206,53 @@ export const UNCERTAINTY_MEASURE_WITH_UNIT = (LENGTH_UNIT: number, m: MutableSte
|
|
|
206
206
|
'distance_accuracy_value','confusion accuracy')`,
|
|
207
207
|
m
|
|
208
208
|
);
|
|
209
|
+
|
|
210
|
+
export const APPLICATION_PROTOCOL_DEFINITION = (m: MutableStep): number =>
|
|
211
|
+
mutate(`APPLICATION_PROTOCOL_DEFINITION('international standard','automotive_design',2000,#q2);`, m);
|
|
212
|
+
|
|
213
|
+
export const APPLICATION_CONTEXT = (m: MutableStep): number =>
|
|
214
|
+
mutate(`APPLICATION_CONTEXT('core data for automotive mechanical design processes');`, m);
|
|
215
|
+
|
|
216
|
+
|
|
217
|
+
export const SHAPE_DEFINITION_REPRESENTATION = (productDefinitionShape: number, manifoldSurfaceShapeRepr: number, m: MutableStep): number =>
|
|
218
|
+
mutate(
|
|
219
|
+
`SHAPE_DEFINITION_REPRESENTATION(#${productDefinitionShape}, #${manifoldSurfaceShapeRepr})`,
|
|
220
|
+
m
|
|
221
|
+
);
|
|
222
|
+
|
|
223
|
+
export const PRODUCT_DEFINITION_SHAPE = (productDefinition: number, m: MutableStep): number =>
|
|
224
|
+
mutate(
|
|
225
|
+
`PRODUCT_DEFINITION_SHAPE('','',#${productDefinition})`,
|
|
226
|
+
m
|
|
227
|
+
)
|
|
228
|
+
|
|
229
|
+
export const PRODUCT_DEFINITION = (productDefinitionFormation: number, productDefinitionContext: number, m: MutableStep): number =>
|
|
230
|
+
mutate(
|
|
231
|
+
`PRODUCT_DEFINITION('design', #${productDefinitionFormation},#${productDefinitionContext})`,
|
|
232
|
+
m
|
|
233
|
+
)
|
|
234
|
+
|
|
235
|
+
export const PRODUCT_DEFINITION_FORMATION = (product: number, m: MutableStep): number =>
|
|
236
|
+
mutate(
|
|
237
|
+
`PRODUCT_DEFINITION_FORMATION('','',#${product})`,
|
|
238
|
+
m
|
|
239
|
+
)
|
|
240
|
+
|
|
241
|
+
export const PRODUCT = (productContext: number, name: string, m: MutableStep): number =>
|
|
242
|
+
mutate(
|
|
243
|
+
`PRODUCT('${name}','${name}','',(#${productContext}))`,
|
|
244
|
+
m
|
|
245
|
+
)
|
|
246
|
+
|
|
247
|
+
export const PRODUCT_CONTEXT = (applicationContext: number, m: MutableStep): number =>
|
|
248
|
+
mutate(
|
|
249
|
+
`PRODUCT_CONTEXT('',#${applicationContext}, 'mechanical')`,
|
|
250
|
+
m
|
|
251
|
+
)
|
|
252
|
+
|
|
253
|
+
export const PRODUCT_DEFINITION_CONTEXT = (applicationContext: number, m: MutableStep): number =>
|
|
254
|
+
mutate(
|
|
255
|
+
`PRODUCT_DEFINITION_CONTEXT('part definition',#${applicationContext},'design')`,
|
|
256
|
+
m
|
|
257
|
+
)
|
|
258
|
+
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { Euler, Matrix4, Vector3 } from "three";
|
|
1
2
|
import {
|
|
2
3
|
Box,
|
|
3
4
|
Material,
|
|
@@ -13,11 +14,14 @@ import {
|
|
|
13
14
|
vec3NegX,
|
|
14
15
|
vec3NegY,
|
|
15
16
|
vec3NegZ,
|
|
17
|
+
vec3RotNormal,
|
|
16
18
|
} from "../../../abstract-3d.js";
|
|
17
19
|
import { parseRgb } from "../../shared.js";
|
|
18
20
|
import {
|
|
19
21
|
ADVANCED_BREP_SHAPE_REPRESENTATION,
|
|
20
22
|
ADVANCED_FACE,
|
|
23
|
+
APPLICATION_CONTEXT,
|
|
24
|
+
APPLICATION_PROTOCOL_DEFINITION,
|
|
21
25
|
AXIS2_PLACEMENT_3D,
|
|
22
26
|
CARTESIAN_POINT,
|
|
23
27
|
CLOSED_SHELL,
|
|
@@ -36,6 +40,13 @@ import {
|
|
|
36
40
|
ORIENTED_EDGE,
|
|
37
41
|
PLANE,
|
|
38
42
|
PRESENTATION_STYLE_ASSIGNMENT,
|
|
43
|
+
PRODUCT,
|
|
44
|
+
PRODUCT_CONTEXT,
|
|
45
|
+
PRODUCT_DEFINITION,
|
|
46
|
+
PRODUCT_DEFINITION_CONTEXT,
|
|
47
|
+
PRODUCT_DEFINITION_FORMATION,
|
|
48
|
+
PRODUCT_DEFINITION_SHAPE,
|
|
49
|
+
SHAPE_DEFINITION_REPRESENTATION,
|
|
39
50
|
STYLED_ITEM,
|
|
40
51
|
SURFACE_SIDE_STYLE,
|
|
41
52
|
SURFACE_STYLE_FILL_AREA,
|
|
@@ -50,7 +61,9 @@ export function stepBox(b: Box, mat: Material, parentPos: Vec3, parentRot: Vec3,
|
|
|
50
61
|
const rot = vec3RotCombine(parentRot, b.rot ?? vec3Zero);
|
|
51
62
|
const cart3tr = (x: number, y: number, z: number): number =>
|
|
52
63
|
CARTESIAN_POINT(vec3TransRot(vec3(x, y, z), pos, rot), m);
|
|
53
|
-
const v0 = VECTOR(DIRECTION(
|
|
64
|
+
const v0 = VECTOR(DIRECTION(vec3PosX, m), m);
|
|
65
|
+
const negNormal = DIRECTION(vec3NegZ, m);
|
|
66
|
+
const posNormal = DIRECTION(vec3PosZ, m);
|
|
54
67
|
const c0 = CARTESIAN_POINT(vec3Zero, m);
|
|
55
68
|
const [c1, c2] = [cart3tr(-half.x, -half.y, -half.z), cart3tr(half.x, -half.y, -half.z)];
|
|
56
69
|
const [c3, c4] = [cart3tr(half.x, half.y, -half.z), cart3tr(-half.x, half.y, -half.z)];
|
|
@@ -60,11 +73,14 @@ export function stepBox(b: Box, mat: Material, parentPos: Vec3, parentRot: Vec3,
|
|
|
60
73
|
const [v5, v6, v7, v8] = [VERTEX_POINT(c5, m), VERTEX_POINT(c6, m), VERTEX_POINT(c7, m), VERTEX_POINT(c8, m)];
|
|
61
74
|
const [l1, l2, l3, l4] = [LINE(c1, v0, m), LINE(c2, v0, m), LINE(c3, v0, m), LINE(c4, v0, m)];
|
|
62
75
|
const [l5, l6, l7, l8] = [LINE(c5, v0, m), LINE(c6, v0, m), LINE(c7, v0, m), LINE(c8, v0, m)];
|
|
63
|
-
const [d1, d2] = [DIRECTION(
|
|
64
|
-
const [d3, d4] = [DIRECTION(
|
|
65
|
-
const [d5, d6] = [DIRECTION(
|
|
76
|
+
const [d1, d2] = [DIRECTION(vec3RotNormal(vec3NegX, rot), m), DIRECTION(vec3RotNormal(vec3NegY, rot), m)];
|
|
77
|
+
const [d3, d4] = [DIRECTION(vec3RotNormal(vec3NegZ, rot), m), DIRECTION(vec3RotNormal(vec3PosX, rot), m)];
|
|
78
|
+
const [d5, d6] = [DIRECTION(vec3RotNormal(vec3PosY, rot), m), DIRECTION(vec3RotNormal(vec3PosZ, rot), m)];
|
|
66
79
|
const color = COLOUR_RGB(parseRgb(mat.normal), m);
|
|
67
80
|
|
|
81
|
+
APPLICATION_PROTOCOL_DEFINITION(m);
|
|
82
|
+
const applicationContext = APPLICATION_CONTEXT(m);
|
|
83
|
+
|
|
68
84
|
const msb = MANIFOLD_SOLID_BREP(
|
|
69
85
|
CLOSED_SHELL(
|
|
70
86
|
[
|
|
@@ -83,7 +99,7 @@ export function stepBox(b: Box, mat: Material, parentPos: Vec3, parentRot: Vec3,
|
|
|
83
99
|
"T",
|
|
84
100
|
m
|
|
85
101
|
),
|
|
86
|
-
PLANE(AXIS2_PLACEMENT_3D(c0, d3,
|
|
102
|
+
PLANE(AXIS2_PLACEMENT_3D(c0, d3, posNormal, m), m),
|
|
87
103
|
m
|
|
88
104
|
),
|
|
89
105
|
// Back
|
|
@@ -101,7 +117,7 @@ export function stepBox(b: Box, mat: Material, parentPos: Vec3, parentRot: Vec3,
|
|
|
101
117
|
"T",
|
|
102
118
|
m
|
|
103
119
|
),
|
|
104
|
-
PLANE(AXIS2_PLACEMENT_3D(c0, d6,
|
|
120
|
+
PLANE(AXIS2_PLACEMENT_3D(c0, d6, negNormal, m), m),
|
|
105
121
|
m
|
|
106
122
|
),
|
|
107
123
|
// Left
|
|
@@ -119,10 +135,10 @@ export function stepBox(b: Box, mat: Material, parentPos: Vec3, parentRot: Vec3,
|
|
|
119
135
|
"T",
|
|
120
136
|
m
|
|
121
137
|
),
|
|
122
|
-
PLANE(AXIS2_PLACEMENT_3D(c0, d4,
|
|
138
|
+
PLANE(AXIS2_PLACEMENT_3D(c0, d4, negNormal, m), m),
|
|
123
139
|
m
|
|
124
140
|
),
|
|
125
|
-
// Right
|
|
141
|
+
// Right ??? <<-----
|
|
126
142
|
ADVANCED_FACE(
|
|
127
143
|
FACE_BOUND(
|
|
128
144
|
EDGE_LOOP(
|
|
@@ -137,7 +153,7 @@ export function stepBox(b: Box, mat: Material, parentPos: Vec3, parentRot: Vec3,
|
|
|
137
153
|
"T",
|
|
138
154
|
m
|
|
139
155
|
),
|
|
140
|
-
PLANE(AXIS2_PLACEMENT_3D(c0, d1,
|
|
156
|
+
PLANE(AXIS2_PLACEMENT_3D(c0, d1, posNormal, m), m),
|
|
141
157
|
m
|
|
142
158
|
),
|
|
143
159
|
// Top
|
|
@@ -155,7 +171,7 @@ export function stepBox(b: Box, mat: Material, parentPos: Vec3, parentRot: Vec3,
|
|
|
155
171
|
"T",
|
|
156
172
|
m
|
|
157
173
|
),
|
|
158
|
-
PLANE(AXIS2_PLACEMENT_3D(c0, d2,
|
|
174
|
+
PLANE(AXIS2_PLACEMENT_3D(c0, d2, posNormal, m), m),
|
|
159
175
|
m
|
|
160
176
|
),
|
|
161
177
|
// Bottom
|
|
@@ -173,7 +189,7 @@ export function stepBox(b: Box, mat: Material, parentPos: Vec3, parentRot: Vec3,
|
|
|
173
189
|
"T",
|
|
174
190
|
m
|
|
175
191
|
),
|
|
176
|
-
PLANE(AXIS2_PLACEMENT_3D(c0, d5,
|
|
192
|
+
PLANE(AXIS2_PLACEMENT_3D(c0, d5, negNormal, m), m),
|
|
177
193
|
m
|
|
178
194
|
),
|
|
179
195
|
],
|
|
@@ -181,7 +197,7 @@ export function stepBox(b: Box, mat: Material, parentPos: Vec3, parentRot: Vec3,
|
|
|
181
197
|
),
|
|
182
198
|
m
|
|
183
199
|
);
|
|
184
|
-
ADVANCED_BREP_SHAPE_REPRESENTATION(AXIS2_PLACEMENT_3D(c0, DIRECTION(vec3PosZ, m), DIRECTION(vec3PosX, m), m), msb, m);
|
|
200
|
+
const absp = ADVANCED_BREP_SHAPE_REPRESENTATION(AXIS2_PLACEMENT_3D(c0, DIRECTION(vec3PosZ, m), DIRECTION(vec3PosX, m), m), msb, m);
|
|
185
201
|
MECHANICAL_DESIGN_GEOMETRIC_PRESENTATION_REPRESENTATION(
|
|
186
202
|
STYLED_ITEM(
|
|
187
203
|
PRESENTATION_STYLE_ASSIGNMENT(
|
|
@@ -194,4 +210,29 @@ export function stepBox(b: Box, mat: Material, parentPos: Vec3, parentRot: Vec3,
|
|
|
194
210
|
),
|
|
195
211
|
m
|
|
196
212
|
);
|
|
213
|
+
SHAPE_DEFINITION_REPRESENTATION(
|
|
214
|
+
PRODUCT_DEFINITION_SHAPE(
|
|
215
|
+
PRODUCT_DEFINITION(
|
|
216
|
+
PRODUCT_DEFINITION_FORMATION(
|
|
217
|
+
PRODUCT(
|
|
218
|
+
PRODUCT_CONTEXT(
|
|
219
|
+
applicationContext,
|
|
220
|
+
m
|
|
221
|
+
),
|
|
222
|
+
"Cube",
|
|
223
|
+
m
|
|
224
|
+
),
|
|
225
|
+
m
|
|
226
|
+
),
|
|
227
|
+
PRODUCT_DEFINITION_CONTEXT(
|
|
228
|
+
applicationContext,
|
|
229
|
+
m
|
|
230
|
+
),
|
|
231
|
+
m
|
|
232
|
+
),
|
|
233
|
+
m
|
|
234
|
+
),
|
|
235
|
+
absp,
|
|
236
|
+
m
|
|
237
|
+
);
|
|
197
238
|
}
|