@mlightcad/data-model 1.10.2 → 1.10.4
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/dist/data-model.cjs +11 -8
- package/lib/acis/AcDbAcisDecode.d.ts +23 -0
- package/lib/acis/AcDbAcisDecode.d.ts.map +1 -0
- package/lib/acis/AcDbAcisDecode.js +95 -0
- package/lib/acis/AcDbAcisDecode.js.map +1 -0
- package/lib/acis/AcDbAcisEntities.d.ts +41 -0
- package/lib/acis/AcDbAcisEntities.d.ts.map +1 -0
- package/lib/acis/AcDbAcisEntities.js +116 -0
- package/lib/acis/AcDbAcisEntities.js.map +1 -0
- package/lib/acis/AcDbAcisGeometry.d.ts +264 -0
- package/lib/acis/AcDbAcisGeometry.d.ts.map +1 -0
- package/lib/acis/AcDbAcisGeometry.js +409 -0
- package/lib/acis/AcDbAcisGeometry.js.map +1 -0
- package/lib/acis/AcDbAcisSab.d.ts +101 -0
- package/lib/acis/AcDbAcisSab.d.ts.map +1 -0
- package/lib/acis/AcDbAcisSab.js +250 -0
- package/lib/acis/AcDbAcisSab.js.map +1 -0
- package/lib/acis/AcDbAcisSatWireframe.d.ts +13 -0
- package/lib/acis/AcDbAcisSatWireframe.d.ts.map +1 -0
- package/lib/acis/AcDbAcisSatWireframe.js +142 -0
- package/lib/acis/AcDbAcisSatWireframe.js.map +1 -0
- package/lib/acis/AcDbAcisWireframe.d.ts +20 -0
- package/lib/acis/AcDbAcisWireframe.d.ts.map +1 -0
- package/lib/acis/AcDbAcisWireframe.js +133 -0
- package/lib/acis/AcDbAcisWireframe.js.map +1 -0
- package/lib/acis/index.d.ts +15 -0
- package/lib/acis/index.d.ts.map +1 -0
- package/lib/acis/index.js +12 -0
- package/lib/acis/index.js.map +1 -0
- package/lib/converter/AcDbFontNameCollector.d.ts +6 -0
- package/lib/converter/AcDbFontNameCollector.d.ts.map +1 -1
- package/lib/converter/AcDbFontNameCollector.js +101 -37
- package/lib/converter/AcDbFontNameCollector.js.map +1 -1
- package/lib/entity/AcDb3dSolid.d.ts +92 -0
- package/lib/entity/AcDb3dSolid.d.ts.map +1 -0
- package/lib/entity/AcDb3dSolid.js +328 -0
- package/lib/entity/AcDb3dSolid.js.map +1 -0
- package/lib/entity/AcDbFcf.d.ts +144 -0
- package/lib/entity/AcDbFcf.d.ts.map +1 -0
- package/lib/entity/AcDbFcf.js +717 -0
- package/lib/entity/AcDbFcf.js.map +1 -0
- package/lib/entity/AcDbTextExtentsHelpers.d.ts +12 -0
- package/lib/entity/AcDbTextExtentsHelpers.d.ts.map +1 -1
- package/lib/entity/AcDbTextExtentsHelpers.js +34 -0
- package/lib/entity/AcDbTextExtentsHelpers.js.map +1 -1
- package/lib/entity/index.d.ts +2 -0
- package/lib/entity/index.d.ts.map +1 -1
- package/lib/entity/index.js +2 -0
- package/lib/entity/index.js.map +1 -1
- package/lib/index.d.ts +1 -1
- package/lib/index.d.ts.map +1 -1
- package/lib/index.js +1 -1
- package/lib/index.js.map +1 -1
- package/package.json +4 -4
|
@@ -0,0 +1,328 @@
|
|
|
1
|
+
var __extends = (this && this.__extends) || (function () {
|
|
2
|
+
var extendStatics = function (d, b) {
|
|
3
|
+
extendStatics = Object.setPrototypeOf ||
|
|
4
|
+
({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
|
|
5
|
+
function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
|
|
6
|
+
return extendStatics(d, b);
|
|
7
|
+
};
|
|
8
|
+
return function (d, b) {
|
|
9
|
+
if (typeof b !== "function" && b !== null)
|
|
10
|
+
throw new TypeError("Class extends value " + String(b) + " is not a constructor or null");
|
|
11
|
+
extendStatics(d, b);
|
|
12
|
+
function __() { this.constructor = d; }
|
|
13
|
+
d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
|
|
14
|
+
};
|
|
15
|
+
})();
|
|
16
|
+
var __values = (this && this.__values) || function(o) {
|
|
17
|
+
var s = typeof Symbol === "function" && Symbol.iterator, m = s && o[s], i = 0;
|
|
18
|
+
if (m) return m.call(o);
|
|
19
|
+
if (o && typeof o.length === "number") return {
|
|
20
|
+
next: function () {
|
|
21
|
+
if (o && i >= o.length) o = void 0;
|
|
22
|
+
return { value: o && o[i++], done: !o };
|
|
23
|
+
}
|
|
24
|
+
};
|
|
25
|
+
throw new TypeError(s ? "Object is not iterable." : "Symbol.iterator is not defined.");
|
|
26
|
+
};
|
|
27
|
+
import { AcGeBox3d, AcGePoint3d } from '@mlightcad/geometry-engine';
|
|
28
|
+
import { acDbAcisWireframeSegmentsFromSab, acDbAcisWireframeSegmentsFromSatText } from '../acis';
|
|
29
|
+
import { AcDbEntity } from './AcDbEntity';
|
|
30
|
+
/**
|
|
31
|
+
* Matches classic SAT `point` records (`point $-1 x y z`) and ASM-style records
|
|
32
|
+
* with additional pointer fields (`point $-1 -1 $-1 x y z`).
|
|
33
|
+
*/
|
|
34
|
+
var ACIS_POINT_RECORD = /\bpoint\s+(?:\$-?\d+\s+){1,4}([-\d.eE+]+)\s+([-\d.eE+]+)\s+([-\d.eE+]+)/g;
|
|
35
|
+
/** Splits SAT text into individual `#`-delimited entity records. */
|
|
36
|
+
function splitAcisRecords(acisData) {
|
|
37
|
+
return acisData
|
|
38
|
+
.split('#')
|
|
39
|
+
.map(function (record) { return record.trim(); })
|
|
40
|
+
.filter(function (record) { return record.length > 0; });
|
|
41
|
+
}
|
|
42
|
+
/**
|
|
43
|
+
* Reads numeric tokens from one SAT record, skipping pointer and sentinel tokens.
|
|
44
|
+
*
|
|
45
|
+
* @param record - One SAT entity record line.
|
|
46
|
+
* @param skip - Number of leading tokens to skip before scanning (default 1).
|
|
47
|
+
*/
|
|
48
|
+
function readNumericTokens(record, skip) {
|
|
49
|
+
if (skip === void 0) { skip = 1; }
|
|
50
|
+
var parts = record.split(/\s+/);
|
|
51
|
+
var values = [];
|
|
52
|
+
for (var i = skip; i < parts.length; i++) {
|
|
53
|
+
var token = parts[i];
|
|
54
|
+
if (token.startsWith('$') || token === 'I' || token === 'F') {
|
|
55
|
+
continue;
|
|
56
|
+
}
|
|
57
|
+
var value = Number.parseFloat(token);
|
|
58
|
+
if (Number.isFinite(value)) {
|
|
59
|
+
values.push(value);
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
return values;
|
|
63
|
+
}
|
|
64
|
+
/**
|
|
65
|
+
* Extracts every vertex position referenced by `point` records in an ACIS
|
|
66
|
+
* SAT text stream.
|
|
67
|
+
*
|
|
68
|
+
* @param acisData - Raw ACIS SAT text (the concatenated group 1/3 lines of a
|
|
69
|
+
* DXF `3DSOLID`/`REGION`/`BODY` entity).
|
|
70
|
+
* @returns Every point found, in file order. Empty when `acisData` doesn't
|
|
71
|
+
* contain any recognizable `point` records.
|
|
72
|
+
*/
|
|
73
|
+
function extractAcisPointCloud(acisData) {
|
|
74
|
+
var e_1, _a, e_2, _b;
|
|
75
|
+
var points = [];
|
|
76
|
+
try {
|
|
77
|
+
for (var _c = __values(acisData.matchAll(ACIS_POINT_RECORD)), _d = _c.next(); !_d.done; _d = _c.next()) {
|
|
78
|
+
var match = _d.value;
|
|
79
|
+
var x = Number.parseFloat(match[1]);
|
|
80
|
+
var y = Number.parseFloat(match[2]);
|
|
81
|
+
var z = Number.parseFloat(match[3]);
|
|
82
|
+
if (Number.isFinite(x) && Number.isFinite(y) && Number.isFinite(z)) {
|
|
83
|
+
points.push(new AcGePoint3d(x, y, z));
|
|
84
|
+
}
|
|
85
|
+
}
|
|
86
|
+
}
|
|
87
|
+
catch (e_1_1) { e_1 = { error: e_1_1 }; }
|
|
88
|
+
finally {
|
|
89
|
+
try {
|
|
90
|
+
if (_d && !_d.done && (_a = _c.return)) _a.call(_c);
|
|
91
|
+
}
|
|
92
|
+
finally { if (e_1) throw e_1.error; }
|
|
93
|
+
}
|
|
94
|
+
if (points.length > 0) {
|
|
95
|
+
return points;
|
|
96
|
+
}
|
|
97
|
+
try {
|
|
98
|
+
for (var _e = __values(splitAcisRecords(acisData)), _f = _e.next(); !_f.done; _f = _e.next()) {
|
|
99
|
+
var record = _f.value;
|
|
100
|
+
if (!record.startsWith('point ')) {
|
|
101
|
+
continue;
|
|
102
|
+
}
|
|
103
|
+
var values = readNumericTokens(record);
|
|
104
|
+
if (values.length >= 3) {
|
|
105
|
+
var x = values[values.length - 3];
|
|
106
|
+
var y = values[values.length - 2];
|
|
107
|
+
var z = values[values.length - 1];
|
|
108
|
+
points.push(new AcGePoint3d(x, y, z));
|
|
109
|
+
}
|
|
110
|
+
}
|
|
111
|
+
}
|
|
112
|
+
catch (e_2_1) { e_2 = { error: e_2_1 }; }
|
|
113
|
+
finally {
|
|
114
|
+
try {
|
|
115
|
+
if (_f && !_f.done && (_b = _e.return)) _b.call(_e);
|
|
116
|
+
}
|
|
117
|
+
finally { if (e_2) throw e_2.error; }
|
|
118
|
+
}
|
|
119
|
+
return points;
|
|
120
|
+
}
|
|
121
|
+
/** Collects unique segment endpoints from a wireframe buffer (`[x,y,z,...]`). */
|
|
122
|
+
function pointsFromWireframe(wireframe) {
|
|
123
|
+
var points = [];
|
|
124
|
+
for (var i = 0; i < wireframe.length; i += 3) {
|
|
125
|
+
var x = wireframe[i];
|
|
126
|
+
var y = wireframe[i + 1];
|
|
127
|
+
var z = wireframe[i + 2];
|
|
128
|
+
points.push(new AcGePoint3d(x, y, z));
|
|
129
|
+
}
|
|
130
|
+
return points;
|
|
131
|
+
}
|
|
132
|
+
/**
|
|
133
|
+
* Normalizes constructor input into SAB bytes, SAT text, and version fields.
|
|
134
|
+
*
|
|
135
|
+
* @param input - Raw SAT string or {@link AcDb3dSolidOptions}.
|
|
136
|
+
* @param version - DXF group 70 version used when `input` is a string.
|
|
137
|
+
*/
|
|
138
|
+
function resolveSolidPayload(input, version) {
|
|
139
|
+
var _a, _b, _c;
|
|
140
|
+
if (typeof input === 'string') {
|
|
141
|
+
return { satText: input, version: version };
|
|
142
|
+
}
|
|
143
|
+
return {
|
|
144
|
+
sabBytes: input.sabBytes,
|
|
145
|
+
satText: (_b = (_a = input.satText) !== null && _a !== void 0 ? _a : input.acisData) !== null && _b !== void 0 ? _b : '',
|
|
146
|
+
version: (_c = input.version) !== null && _c !== void 0 ? _c : version,
|
|
147
|
+
};
|
|
148
|
+
}
|
|
149
|
+
/**
|
|
150
|
+
* Represents a 3D solid (ACIS/ASM B-rep) entity, such as those created by
|
|
151
|
+
* AutoCAD's BOX, WEDGE, EXTRUDE, or boolean solid-modeling commands.
|
|
152
|
+
*
|
|
153
|
+
* Full B-rep tessellation is not yet supported. When binary SAB or SAT text is
|
|
154
|
+
* available, this entity renders a best-effort wireframe derived from decoded
|
|
155
|
+
* edges and curves; otherwise it falls back to a bounding-box wireframe built
|
|
156
|
+
* from embedded `point` records in the SAT stream.
|
|
157
|
+
*/
|
|
158
|
+
var AcDb3dSolid = /** @class */ (function (_super) {
|
|
159
|
+
__extends(AcDb3dSolid, _super);
|
|
160
|
+
function AcDb3dSolid(acisDataOrOptions, version) {
|
|
161
|
+
var _a;
|
|
162
|
+
var _this = _super.call(this) || this;
|
|
163
|
+
var payload = resolveSolidPayload(acisDataOrOptions, version);
|
|
164
|
+
_this._acisData = payload.satText;
|
|
165
|
+
_this._version = payload.version;
|
|
166
|
+
var wireframe = new Float32Array(0);
|
|
167
|
+
if (payload.sabBytes && payload.sabBytes.length > 0) {
|
|
168
|
+
wireframe = (_a = acDbAcisWireframeSegmentsFromSab(payload.sabBytes)) !== null && _a !== void 0 ? _a : new Float32Array(0);
|
|
169
|
+
}
|
|
170
|
+
if (wireframe.length === 0 && payload.satText) {
|
|
171
|
+
wireframe = acDbAcisWireframeSegmentsFromSatText(payload.satText);
|
|
172
|
+
}
|
|
173
|
+
_this._wireframe = wireframe;
|
|
174
|
+
if (wireframe.length > 0) {
|
|
175
|
+
_this._points = pointsFromWireframe(wireframe);
|
|
176
|
+
}
|
|
177
|
+
else {
|
|
178
|
+
_this._points = extractAcisPointCloud(payload.satText);
|
|
179
|
+
}
|
|
180
|
+
return _this;
|
|
181
|
+
}
|
|
182
|
+
Object.defineProperty(AcDb3dSolid.prototype, "dxfTypeName", {
|
|
183
|
+
get: function () {
|
|
184
|
+
return '3DSOLID';
|
|
185
|
+
},
|
|
186
|
+
enumerable: false,
|
|
187
|
+
configurable: true
|
|
188
|
+
});
|
|
189
|
+
Object.defineProperty(AcDb3dSolid.prototype, "acisData", {
|
|
190
|
+
/**
|
|
191
|
+
* Raw ACIS SAT text for this solid, preserved for future full B-rep parsing.
|
|
192
|
+
*/
|
|
193
|
+
get: function () {
|
|
194
|
+
return this._acisData;
|
|
195
|
+
},
|
|
196
|
+
enumerable: false,
|
|
197
|
+
configurable: true
|
|
198
|
+
});
|
|
199
|
+
Object.defineProperty(AcDb3dSolid.prototype, "version", {
|
|
200
|
+
/** DXF group 70 ACIS version number, when present. */
|
|
201
|
+
get: function () {
|
|
202
|
+
return this._version;
|
|
203
|
+
},
|
|
204
|
+
enumerable: false,
|
|
205
|
+
configurable: true
|
|
206
|
+
});
|
|
207
|
+
Object.defineProperty(AcDb3dSolid.prototype, "hasRenderableGeometry", {
|
|
208
|
+
/**
|
|
209
|
+
* Whether wireframe segments or fallback point data could be extracted from
|
|
210
|
+
* the supplied SAB/SAT payload.
|
|
211
|
+
*/
|
|
212
|
+
get: function () {
|
|
213
|
+
return this._wireframe.length > 0 || this._points.length > 0;
|
|
214
|
+
},
|
|
215
|
+
enumerable: false,
|
|
216
|
+
configurable: true
|
|
217
|
+
});
|
|
218
|
+
Object.defineProperty(AcDb3dSolid.prototype, "geometricExtents", {
|
|
219
|
+
/** @inheritdoc */
|
|
220
|
+
get: function () {
|
|
221
|
+
if (this._points.length === 0) {
|
|
222
|
+
return new AcGeBox3d(new AcGePoint3d(0, 0, 0), new AcGePoint3d(0, 0, 0));
|
|
223
|
+
}
|
|
224
|
+
return new AcGeBox3d().setFromPoints(this._points);
|
|
225
|
+
},
|
|
226
|
+
enumerable: false,
|
|
227
|
+
configurable: true
|
|
228
|
+
});
|
|
229
|
+
/**
|
|
230
|
+
* Transforms the extracted wireframe and point cloud by the specified matrix.
|
|
231
|
+
*
|
|
232
|
+
* {@link acisData} itself is left untouched since it isn't fully parsed.
|
|
233
|
+
*
|
|
234
|
+
* @param matrix - 4×4 transformation matrix.
|
|
235
|
+
* @returns This instance (for chaining).
|
|
236
|
+
*/
|
|
237
|
+
AcDb3dSolid.prototype.transformBy = function (matrix) {
|
|
238
|
+
this._points.forEach(function (point) { return point.applyMatrix4(matrix); });
|
|
239
|
+
if (this._wireframe.length > 0) {
|
|
240
|
+
var transformed = new Float32Array(this._wireframe.length);
|
|
241
|
+
for (var i = 0; i < this._wireframe.length; i += 3) {
|
|
242
|
+
var point = new AcGePoint3d(this._wireframe[i], this._wireframe[i + 1], this._wireframe[i + 2]);
|
|
243
|
+
point.applyMatrix4(matrix);
|
|
244
|
+
transformed[i] = point.x;
|
|
245
|
+
transformed[i + 1] = point.y;
|
|
246
|
+
transformed[i + 2] = point.z;
|
|
247
|
+
}
|
|
248
|
+
this._wireframe = transformed;
|
|
249
|
+
}
|
|
250
|
+
return this;
|
|
251
|
+
};
|
|
252
|
+
/**
|
|
253
|
+
* Draws decoded wireframe segments when available; otherwise draws a bounding
|
|
254
|
+
* box around extracted `point` records.
|
|
255
|
+
*
|
|
256
|
+
* @param renderer - The renderer to use for drawing.
|
|
257
|
+
* @returns The rendered wireframe entity, or `undefined` when no geometry
|
|
258
|
+
* could be extracted.
|
|
259
|
+
*/
|
|
260
|
+
AcDb3dSolid.prototype.subWorldDraw = function (renderer) {
|
|
261
|
+
if (this._wireframe.length >= 6) {
|
|
262
|
+
var vertexCount = this._wireframe.length / 3;
|
|
263
|
+
var indices_1 = new Uint16Array(vertexCount);
|
|
264
|
+
for (var i = 0; i < vertexCount; i++) {
|
|
265
|
+
indices_1[i] = i;
|
|
266
|
+
}
|
|
267
|
+
return renderer.lineSegments(this._wireframe, 3, indices_1);
|
|
268
|
+
}
|
|
269
|
+
if (this._points.length === 0) {
|
|
270
|
+
return undefined;
|
|
271
|
+
}
|
|
272
|
+
var box = this.geometricExtents;
|
|
273
|
+
var min = box.min;
|
|
274
|
+
var max = box.max;
|
|
275
|
+
var corners = [
|
|
276
|
+
new AcGePoint3d(min.x, min.y, min.z),
|
|
277
|
+
new AcGePoint3d(max.x, min.y, min.z),
|
|
278
|
+
new AcGePoint3d(max.x, max.y, min.z),
|
|
279
|
+
new AcGePoint3d(min.x, max.y, min.z),
|
|
280
|
+
new AcGePoint3d(min.x, min.y, max.z),
|
|
281
|
+
new AcGePoint3d(max.x, min.y, max.z),
|
|
282
|
+
new AcGePoint3d(max.x, max.y, max.z),
|
|
283
|
+
new AcGePoint3d(min.x, max.y, max.z)
|
|
284
|
+
];
|
|
285
|
+
var buffer = new Float32Array(corners.length * 3);
|
|
286
|
+
corners.forEach(function (corner, i) {
|
|
287
|
+
buffer[i * 3] = corner.x;
|
|
288
|
+
buffer[i * 3 + 1] = corner.y;
|
|
289
|
+
buffer[i * 3 + 2] = corner.z;
|
|
290
|
+
});
|
|
291
|
+
var indices = new Uint16Array([
|
|
292
|
+
0, 1, 1, 2, 2, 3, 3, 0,
|
|
293
|
+
4, 5, 5, 6, 6, 7, 7, 4,
|
|
294
|
+
0, 4, 1, 5, 2, 6, 3, 7
|
|
295
|
+
]);
|
|
296
|
+
return renderer.lineSegments(buffer, 3, indices);
|
|
297
|
+
};
|
|
298
|
+
/**
|
|
299
|
+
* Writes DXF fields for this object.
|
|
300
|
+
*
|
|
301
|
+
* @param filer - DXF output writer.
|
|
302
|
+
* @returns The instance (for chaining).
|
|
303
|
+
*/
|
|
304
|
+
AcDb3dSolid.prototype.dxfOutFields = function (filer) {
|
|
305
|
+
_super.prototype.dxfOutFields.call(this, filer);
|
|
306
|
+
filer.writeSubclassMarker('AcDb3dSolid');
|
|
307
|
+
if (this._version != null) {
|
|
308
|
+
filer.writeInt16(70, this._version);
|
|
309
|
+
}
|
|
310
|
+
var maxChunkLength = 255;
|
|
311
|
+
var lines = this._acisData.split('\n');
|
|
312
|
+
for (var i = 0; i < lines.length; i++) {
|
|
313
|
+
var isLast = i === lines.length - 1;
|
|
314
|
+
var line = lines[i];
|
|
315
|
+
while (line.length > maxChunkLength) {
|
|
316
|
+
filer.writeString(3, line.slice(0, maxChunkLength));
|
|
317
|
+
line = line.slice(maxChunkLength);
|
|
318
|
+
}
|
|
319
|
+
filer.writeString(isLast ? 1 : 3, line);
|
|
320
|
+
}
|
|
321
|
+
return this;
|
|
322
|
+
};
|
|
323
|
+
/** The entity type name */
|
|
324
|
+
AcDb3dSolid.typeName = '3dSolid';
|
|
325
|
+
return AcDb3dSolid;
|
|
326
|
+
}(AcDbEntity));
|
|
327
|
+
export { AcDb3dSolid };
|
|
328
|
+
//# sourceMappingURL=AcDb3dSolid.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"AcDb3dSolid.js","sourceRoot":"","sources":["../../src/entity/AcDb3dSolid.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,144 @@
|
|
|
1
|
+
import { AcGeBox3d, AcGeMatrix3d, AcGePoint3d, AcGePoint3dLike, AcGeVector3d, AcGeVector3dLike } from '@mlightcad/geometry-engine';
|
|
2
|
+
import { AcGiEntity, AcGiRenderer } from '@mlightcad/graphic-interface';
|
|
3
|
+
import { AcDbDxfFiler } from '../base/AcDbDxfFiler';
|
|
4
|
+
import { AcDbOsnapMode } from '../misc/AcDbOsnapMode';
|
|
5
|
+
import { AcDbEntity } from './AcDbEntity';
|
|
6
|
+
import { AcDbEntityProperties } from './AcDbEntityProperties';
|
|
7
|
+
/**
|
|
8
|
+
* Represents a feature control frame (FCF) entity in AutoCAD.
|
|
9
|
+
*
|
|
10
|
+
* Feature control frames are used for geometric dimensioning and tolerancing
|
|
11
|
+
* (GD&T). They are created by the TOLERANCE command and controlled by dimension
|
|
12
|
+
* styles, mirroring {@link https://help.autodesk.com/view/OARX/2023/ENU/?guid=OARX-RefGuide-AcDbFcf AcDbFcf}
|
|
13
|
+
* in ObjectARX.
|
|
14
|
+
*
|
|
15
|
+
* @example
|
|
16
|
+
* ```typescript
|
|
17
|
+
* const fcf = new AcDbFcf();
|
|
18
|
+
* fcf.location = new AcGePoint3d(10, 20, 0);
|
|
19
|
+
* fcf.text = '{\\Fgdt.shx|b0|i0|c134|p6;j}|0.05|A|';
|
|
20
|
+
* fcf.dimensionStyle = 'Standard';
|
|
21
|
+
* ```
|
|
22
|
+
*/
|
|
23
|
+
export declare class AcDbFcf extends AcDbEntity {
|
|
24
|
+
/** The entity type name */
|
|
25
|
+
static typeName: string;
|
|
26
|
+
get dxfTypeName(): string;
|
|
27
|
+
/**
|
|
28
|
+
* The insertion point of the feature control frame in WCS coordinates.
|
|
29
|
+
*
|
|
30
|
+
* This is the center of the left edge for the first row in the entity-local
|
|
31
|
+
* frame. Geometry uses +localX along {@link direction}; when direction points
|
|
32
|
+
* left (e.g. leader on the right), this insertion point coincides with the
|
|
33
|
+
* right-edge center in WCS.
|
|
34
|
+
*/
|
|
35
|
+
private _location;
|
|
36
|
+
/** The encoded tolerance text string (symbol and format codes). */
|
|
37
|
+
private _text;
|
|
38
|
+
/** The dimension style name applied to this feature control frame. */
|
|
39
|
+
private _dimensionStyle;
|
|
40
|
+
/** The plane normal vector in WCS coordinates. */
|
|
41
|
+
private _normal;
|
|
42
|
+
/** The X-axis direction vector for the feature control frame in WCS coordinates. */
|
|
43
|
+
private _direction;
|
|
44
|
+
/**
|
|
45
|
+
* Creates a new feature control frame entity at the origin with default orientation.
|
|
46
|
+
*/
|
|
47
|
+
constructor();
|
|
48
|
+
/**
|
|
49
|
+
* Gets the insertion point of this feature control frame.
|
|
50
|
+
*
|
|
51
|
+
* Mirrors `AcDbFcf::location()` in ObjectARX.
|
|
52
|
+
*/
|
|
53
|
+
get location(): AcGePoint3d;
|
|
54
|
+
/**
|
|
55
|
+
* Sets the insertion point of this feature control frame.
|
|
56
|
+
*
|
|
57
|
+
* Mirrors `AcDbFcf::setLocation()` in ObjectARX.
|
|
58
|
+
*/
|
|
59
|
+
set location(value: AcGePoint3dLike);
|
|
60
|
+
/**
|
|
61
|
+
* Gets the encoded tolerance text string.
|
|
62
|
+
*
|
|
63
|
+
* Mirrors `AcDbFcf::text()` in ObjectARX.
|
|
64
|
+
*/
|
|
65
|
+
get text(): string;
|
|
66
|
+
/**
|
|
67
|
+
* Sets the encoded tolerance text string.
|
|
68
|
+
*
|
|
69
|
+
* Mirrors `AcDbFcf::setText()` in ObjectARX.
|
|
70
|
+
*/
|
|
71
|
+
set text(value: string);
|
|
72
|
+
/**
|
|
73
|
+
* Gets the dimension style name applied to this feature control frame.
|
|
74
|
+
*/
|
|
75
|
+
get dimensionStyle(): string;
|
|
76
|
+
/**
|
|
77
|
+
* Sets the dimension style name applied to this feature control frame.
|
|
78
|
+
*/
|
|
79
|
+
set dimensionStyle(value: string);
|
|
80
|
+
/**
|
|
81
|
+
* Gets the plane normal vector in WCS coordinates.
|
|
82
|
+
*
|
|
83
|
+
* Mirrors `AcDbFcf::normal()` in ObjectARX.
|
|
84
|
+
*/
|
|
85
|
+
get normal(): AcGeVector3d;
|
|
86
|
+
/**
|
|
87
|
+
* Sets the plane normal vector in WCS coordinates.
|
|
88
|
+
*/
|
|
89
|
+
set normal(value: AcGeVector3dLike);
|
|
90
|
+
/**
|
|
91
|
+
* Gets the X-axis direction vector in WCS coordinates.
|
|
92
|
+
*
|
|
93
|
+
* Mirrors `AcDbFcf::direction()` in ObjectARX.
|
|
94
|
+
*/
|
|
95
|
+
get direction(): AcGeVector3d;
|
|
96
|
+
/**
|
|
97
|
+
* Sets the X-axis direction vector in WCS coordinates.
|
|
98
|
+
*/
|
|
99
|
+
set direction(value: AcGeVector3dLike);
|
|
100
|
+
/**
|
|
101
|
+
* Sets the plane normal and X-axis direction for this feature control frame.
|
|
102
|
+
*
|
|
103
|
+
* Mirrors `AcDbFcf::setOrientation()` in ObjectARX.
|
|
104
|
+
*/
|
|
105
|
+
setOrientation(normal: AcGeVector3dLike, direction: AcGeVector3dLike): this;
|
|
106
|
+
/**
|
|
107
|
+
* Returns the consecutive distinct corner points of the feature control frame.
|
|
108
|
+
*
|
|
109
|
+
* Mirrors `AcDbFcf::getBoundingPoints()` in ObjectARX.
|
|
110
|
+
*/
|
|
111
|
+
getBoundingPoints(): AcGePoint3d[];
|
|
112
|
+
/**
|
|
113
|
+
* Returns the closed bounding polyline of the feature control frame.
|
|
114
|
+
*
|
|
115
|
+
* Mirrors `AcDbFcf::getBoundingPolyline()` in ObjectARX.
|
|
116
|
+
*/
|
|
117
|
+
getBoundingPolyline(): AcGePoint3d[];
|
|
118
|
+
get geometricExtents(): AcGeBox3d;
|
|
119
|
+
subGetGripPoints(): AcGePoint3d[];
|
|
120
|
+
/** @inheritdoc */
|
|
121
|
+
subMoveGripPointsAt(indices: number[], offset: AcGeVector3dLike): this;
|
|
122
|
+
subGetOsnapPoints(osnapMode: AcDbOsnapMode, _pickPoint: AcGePoint3dLike, _lastPoint: AcGePoint3dLike, snapPoints: AcGePoint3dLike[]): void;
|
|
123
|
+
transformBy(matrix: AcGeMatrix3d): this;
|
|
124
|
+
get properties(): AcDbEntityProperties;
|
|
125
|
+
subWorldDraw(renderer: AcGiRenderer, delay?: boolean): AcGiEntity | undefined;
|
|
126
|
+
dxfOutFields(filer: AcDbDxfFiler): this;
|
|
127
|
+
/**
|
|
128
|
+
* Gets the rendered text height derived from the associated dimension style.
|
|
129
|
+
*/
|
|
130
|
+
get textHeight(): number;
|
|
131
|
+
private drawToleranceText;
|
|
132
|
+
private collectFrameLineSegments;
|
|
133
|
+
private toFrameWcs;
|
|
134
|
+
private resolveFrameLayout;
|
|
135
|
+
private parseToleranceFrame;
|
|
136
|
+
private splitToleranceRows;
|
|
137
|
+
private splitToleranceTokens;
|
|
138
|
+
private parsePipeSeparatedCells;
|
|
139
|
+
private resolveLocalBasis;
|
|
140
|
+
private resolveDimensionStyle;
|
|
141
|
+
private tryGetDatabase;
|
|
142
|
+
private getTextStyle;
|
|
143
|
+
}
|
|
144
|
+
//# sourceMappingURL=AcDbFcf.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"AcDbFcf.d.ts","sourceRoot":"","sources":["../../src/entity/AcDbFcf.ts"],"names":[],"mappings":"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"}
|