LinetypeManager API
Less than 1 minute
LinetypeManager API
LinetypeManager registers, resolves, and applies linetype definitions.
Import
const { LinetypeManager, LinetypeDefinition, LinetypeParser,
SimpleLinetypeElement, ShapeLinetypeElement,
LinetypeElementType, RotationMode } = vjmapext;Access via mapcadLayer.linetypeManager.
LinetypeManager methods
register(definition)
Register a linetype.
| Parameter | Type | Description |
|---|---|---|
| definition | LinetypeDefinition | Definition |
mapcadLayer.linetypeManager.register({
name: 'MY_DASH',
description: '自定义虚线',
elements: [
{ type: LinetypeElementType.Simple, length: 10 },
{ type: LinetypeElementType.Simple, length: -5 },
]
});get(name)
| Parameter | Type | Description |
|---|---|---|
| name | string | Linetype name |
| Returns | LinetypeDefinition | undefined | Definition or undefined |
getAll()
All registered definitions.
getNames()
All registered names.
Types
LinetypeDefinition
interface LinetypeDefinition {
name: string;
description: string;
elements: (SimpleLinetypeElement | ShapeLinetypeElement)[];
}SimpleLinetypeElement
Positive = dash, negative = gap, zero = dot.
interface SimpleLinetypeElement {
type: LinetypeElementType.Simple;
length: number;
}ShapeLinetypeElement
Complex linetype with embedded shape.
interface ShapeLinetypeElement {
type: LinetypeElementType.Shape;
shapeName: string;
shapeScale: number;
shapeRotation: number;
rotationMode: RotationMode;
}Enums
enum LinetypeElementType {
Simple,
Shape
}
enum RotationMode {
Absolute, // world-relative
Relative // segment-relative
}LinetypeParser
Parses AutoCAD PAT-style strings.
parse(patString)
| Parameter | Type | Description |
|---|---|---|
| patString | string | PAT definition |
| Returns | LinetypeDefinition | Parsed definition |
const { LinetypeParser } = vjmapext;
const def = LinetypeParser.parse('*FENCE,Fence ---- X ---- X ----\nA,.25,-.1,[BOX,ltypeshp.shx,x=-.1,s=.1],-.1,1');
mapcadLayer.linetypeManager.register(def);Tessellation
tessellateLinetype(def, start, end, scale)
Apply a linetype along a segment; returns drawable polylines.
| Parameter | Type | Description |
|---|---|---|
| def | LinetypeDefinition | Definition |
| start | Point2D | Start |
| end | Point2D | End |
| scale | number | Scale |
| Returns | Point2D[][] | Segmented coordinates |
tessellateSegment(def, start, end, scale)
Similar helper for a single segment.
Shape library
getShape(name)
Registered shape definition.
addShape(name, def)
Register a shape for ShapeLinetypeElement.
getShapeNames()
All shape names.
Built-in linetypes
| Name | Description |
|---|---|
CONTINUOUS | Solid |
DASHED | Dashed |
DOTTED | Dotted |
DASHDOT | Dash dot |
CENTER | Centerline |
PHANTOM | Phantom |
HIDDEN | Hidden |
BORDER | Border |
DIVIDE | Divide |