Cancel
Showing results for 
Search instead for 
Did you mean: 

Point cloud visualization in Tecnomatix Plant Simulation 3D

Siemens Valued Contributor Siemens Valued Contributor
Siemens Valued Contributor

Plant Simulation can be used in many ways, one of its strength is its ability to handle unlimited table size. Where products like MS Word and Excel reach their limits Plant Simulation can handle large quantities of data. A large point cloud like this factory scan can easily exceed the 3 million lines of a table in the PLY format each with the x,y,z coordinate and the r,g,b color value.

 

Point_clouds in Plant Simulation.png

 

To demonstrate the factory layout point cloud in Plant Simulation 3D I have written a short parser which reads the tablefile point by point and creates spheres at the designated 3D position and in the desired color.

 

Of course the point cloud can also be combined with Plant Simulation material flow simulation objects, textures of a layout file and other geometries coming from .jt or vrml.

 

Point_clouds in Plant Simulation10_cuboid_on_layou_and_jt.png

 

is

            n,o:integer;

            x,y,z,r,b,g:real;

do

            n:=PLY_Data2.ydim;

            for local i := 1 to n loop

                        x:=PLY_Data2[1,i];

                        y:=PLY_Data2[2,i];

                        z:=PLY_Data2[3,i];

                        r:=PLY_Data2[4,i];

                        g:=PLY_Data2[5,i];

                        b:=PLY_Data2[6,i];

                        o:=_3D.createSphere(makeArray(x,y,z),0.1);

                        _3D.setGraphicMaterial(makeArray(o), makeRGBValue(r,g,b), makeRGBValue(20,20,20), makeRGBValue(20,20,20), makeRGBValue(10,10,10), 0, 0);          

            next;

end;

Comments
Experimenter
Experimenter

Hi!
Congratulations on the code!

I tried to use the code, but it is not applying color, and is giving error in the _3D.setGraphicMaterial (makeArray (o), makeRGBValue (r, g, b), makeRGBValue (20,20,20), makeRGBValue (20,20 , 20), makeRGBValue (10,10,10), 0,0);

Need to set up anything else?

Contributors