Skip to main content
14-Alexandrite
June 11, 2020
Solved

Does anyone know how to calculate drawing view height and width by view outline.

  • June 11, 2020
  • 1 reply
  • 2455 views

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

Best answer by syalagudri

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);

 

 

1 reply

17-Peridot
June 11, 2020

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

14-Alexandrite
June 11, 2020

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);

syalagudri14-AlexandriteAuthorAnswer
14-Alexandrite
June 24, 2020

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);