Show messages: All
1-2
3-11
From: stefano (LIGHTWAVE)
Hi Michael thanks for this.
Re anchor point..
Been doing a lot of tests with your pdf export
and external software. The anchor point for the
notes text id likely place on LHS of the viewport and we’d try to make it positioned LHS of an A4 pdf, I’d likely have to move it depending on what’s selected and show it once when creating visual output.
Fundamentally It’s something I’d likely print once to pdf so feel the ideal functionality is lto also hide it on 1st activation…
From: Michael Gibson
Hi stefano, I would need an x,y,z coordinate location for the text anchor point to be able to do the 2nd script.
- Michael
From: stefano (LIGHTWAVE)
Hi Michael,
Let's keep it simple, 0,0,0 will be fine.
Please could i request the dim-text block "object" (named NOTES)
it is hidden on activation? BR Stefano
From: Michael Gibson
Hi Stefano,
re:
> 2. NOTES-CLIP-DIM
> Copies file/notes to the clipboard and
> creates a dim/text object.
> creates object name: "Notes"
> Result shown on the .3DM
Here is a script that will do this sequence. The text object that is created is hidden.
script: moi.copyTextToClipboard( moi.geometryDatabase.notes ); var factory = moi.command.createFactory( 'annotationtext' ); factory.setInput( 0, moi.vectorMath.createTopFrame() ); factory.setInput( 1, moi.geometryDatabase.notes ); factory.setInput( 2, 0 ); factory.update(); var objs = factory.getCreatedObjects(); objs.setProperty( 'hidden', true ); objs.setProperty( 'name', 'Notes' ); factory.commit();
- Michael
From: stefano (LIGHTWAVE)
Hi Michael thanks for this I’m reading the script and some seems understandable and some not so much…
just wondering / curious what part is relating to xyz position or where the text object is positioned…
From: Michael Gibson
Hi stefano, yeah it can be hard to read ones that have been condensed to one line for shortcut key pasting.
Here it's separated out:
moi.copyTextToClipboard( moi.geometryDatabase.notes );
var factory = moi.command.createFactory( 'annotationtext' );
factory.setInput( 0, moi.vectorMath.createTopFrame() ); <<<<<<<<<<<<<<<<
factory.setInput( 1, moi.geometryDatabase.notes );
factory.setInput( 2, 0 ); factory.update(); // Index of annotation property preset to use, 0 = "Default" preset values used.
var objs = factory.getCreatedObjects();
objs.setProperty( 'hidden', true );
objs.setProperty( 'name', 'Notes' );
factory.commit();
The line marked with <<<<<< is the one that sets the position.
moi.vectorMath.createTopFrame() will generate a coordinate frame object (made up of an origin point, and vectors for x,y,z axis directions) with world aligned x,y,z axes and origin at 0,0,0 by default.
If you wanted it to go at x=10, y=5 you could do it like this:
var frame = moi.vectorMath.createTopFrame();
frame.origin.x = 10;
frame.origin.y = 5;
factory.setInput( 0, frame );
- Michael
From: stefano (LIGHTWAVE)
Hi Michael the code looks very compact / efficient
So I think when you say
moi.vectorMath.createTopFrame() );
That means xyz = 0 and that expression = default position.
But if I wanted it to be less efficient with the code or longhand and see where to change xyz the values by code, I guess it is:
var frame = moi.vectorMath.createTopFrame();
frame.origin.x = 0;
frame.origin.y = 0;
factory.setInput( 0, frame );.
[where’s the z though ? is it in the empty () after Top Frame or is it in the set input ( 0, frame );
or can we have -
var frame = moi.vectorMath.createTopFrame();
frame.origin.x = 0;
frame.origin.y = 0;
frame.origin.z = 0;
factory.setInput( 0, frame );.
From: Michael Gibson
Hi stefano, yes that last one should work:
var frame = moi.vectorMath.createTopFrame();
frame.origin.x = 0;
frame.origin.y = 0;
frame.origin.z = 0;
factory.setInput( 0, frame );
- Michael
From: stefano (LIGHTWAVE)
Thanks again Michael. I’ve just moved my level of coding upwards from zx81, y0; Moi.factory.setitlikeapun);
Show messages: All
1-2
3-11