Canvas
d.canvas(inputs, options?): FeatureHandle<'canvas'>
One feature of the timeline, in the create category. Its name follows
the app's (Canvas1, then Canvas2, …); options.name gives it
another, options.id its ID and options.index its place in the timeline. Inputs the
table calls optional keep the default it names, so a call with none of them still makes
a valid feature.
Inputs
| Input | Type | Required or default | What it does |
|---|---|---|---|
plane |
GeomRef | GeomRef[] (plane, face) |
default XY plane |
The plane the image lies on: an origin plane, a construction plane or a flat face. |
image |
string (an attachment ID) |
required | The picture: an attachment of this design with an image/* media type (PNG, JPEG or WebP). |
x |
string | number | ParameterHandle |
default 0 |
The image's centre along the plane frame's X; a length. |
y |
string | number | ParameterHandle |
default 0 |
The image's centre along the plane frame's Y; a length. |
width |
string | number | ParameterHandle |
default 100 mm |
The image's width; a length, the height follows its aspect. |
rotation |
string | number | ParameterHandle |
default 0 deg |
Turns the image about the plane's normal, right-handed, from the frame's X; an angle. |
opacity |
string | number | ParameterHandle |
optional | How opaque it is drawn, 0.05 to 1. Default 0.5. |
flip |
boolean |
default false |
Mirrors the image left to right. |
Faces
This feature makes no face of its own, so handle.face(role) has no role to take.
Its result keeps the names of the bodies it worked on, so a reference to one of those
still resolves.
Example
import { Design, type LineHandle } from '@extrudo/api';
const d = Design.create({ name: 'My part' });
// Two solids to point faces, edges and bodies at.
const plate = d.box({ length: '40 mm', width: '20 mm', height: '10 mm' });
const shaft = d.cylinder({ diameter: '20 mm', height: '20 mm' });
// A sketch with two closed profiles, a hole and a guide line beside them.
let guide!: LineHandle;
const s = d.sketch(d.origin.xy, (k) => {
k.rectangle([0, 0], [40, 20]);
k.circle([10, 10], '3 mm');
k.rectangle([50, 0], [60, 10]);
guide = k.line([-5, 30], [45, 30]);
});
const profile = s.profileAt([1, 1]);
const sections = s.profiles();
const line = guide.ref();
const face = plate.face('side:front');
const edge = plate.edge([plate.faceName('side:front'), plate.faceName('side:right')]);
const vertex = plate.vertex([plate.faceName('side:front'), plate.faceName('side:right')]);
const corner = plate.vertex([plate.faceName('side:front'), plate.faceName('side:left')]);
const body = plate.body();
const step = 'att-part.step'; // an attachment of the design
const plan = 'att-plan.png';
// Canvas.
d.canvas({ image: plan, plane: d.origin.xy, width: '60 mm' });
See also
- Features by category
- Sketches —
d.sketch(plane, build)and its builder - References — every helper that builds a reference