Community Tip - Want the oppurtunity to discuss enhancements to PTC products? Join a working group! X
I can get drawing view outline using API "ProDrawingViewOutlineGet". I want to know how to get view height and width using this outline ?
Thanks,
Suresh
Solved! Go to Solution.
Following is the right code:
Transform3D sheetTransp = drawing.GetSheetTransform(sheetNumber);
Outline3D outline = view.GetOutline();
Point3D point1 = Point3D.create();
point1.set(0, outline.get(0).get(0));
point1.set(1, outline.get(0).get(1));
point1.set(2, outline.get(0).get(2));
Point3D point2 = Point3D.create();
point2.set(0, outline.get(1).get(0));
point2.set(1, outline.get(1).get(1));
point2.set(2, outline.get(1).get(2));
Point3D point11 = sheetTransp.TransformPoint(point1);
Point3D point21 = sheetTransp.TransformPoint(point2);
double width = point21.get(0) - point11.get(0);
double height = point21.get(1) - point11.get(1);
In CREOSON (Open Source Creo Automation) - you can simply run :
drawing : view_bound_box
and you will get this back:
{
"status": {
"error": false
},
"data": {
"xmin": 5,
"xmax": 30,
"ymin": 12.5,
"ymax": 15
}
}
Then it is just a bit of simple math to get the size.
You might look at the source for how that works as a way to help.
Dave
Thanks. It was simple math solution with sample Jlink code:
view.SetDisplay(display);
Outline3D outline = view.GetOutline();
this.height = outline.get(0).get(1) - outline.get(0).get(0);
this.width = outline.get(1).get(1) - outline.get(1).get(0);
Following is the right code:
Transform3D sheetTransp = drawing.GetSheetTransform(sheetNumber);
Outline3D outline = view.GetOutline();
Point3D point1 = Point3D.create();
point1.set(0, outline.get(0).get(0));
point1.set(1, outline.get(0).get(1));
point1.set(2, outline.get(0).get(2));
Point3D point2 = Point3D.create();
point2.set(0, outline.get(1).get(0));
point2.set(1, outline.get(1).get(1));
point2.set(2, outline.get(1).get(2));
Point3D point11 = sheetTransp.TransformPoint(point1);
Point3D point21 = sheetTransp.TransformPoint(point2);
double width = point21.get(0) - point11.get(0);
double height = point21.get(1) - point11.get(1);