# Basic Operations

### Partition

import geompy

import salome

gg = salome.ImportComponentGUI("GEOM")

# create vertex and vector

p0 = geompy.MakeVertex( 0., 0., 0.)

p200 = geompy.MakeVertex(200., 200., 200.)

pz = geompy.MakeVertex( 0., 0., 100.)

# create vector

vxyz = geompy.MakeVectorDXDYDZ(100., 100., 100.)

# create box with two points

box = geompy.MakeBoxTwoPnt(p0, p200)

# create plane

trimsize = 500.

plane = geompy.MakePlane(pz, vxyz, trimsize)

# create partition objects

partition1 = geompy.MakePartition([box], [plane])

partition2 = geompy.Partition([box], [plane])

partition3 = geompy.MakeHalfPartition(box, plane)

# add objects in study

id_box = geompy.addToStudy(box,"Box")

id_plane = geompy.addToStudy(plane,"Plane")

id_partition1 = geompy.addToStudy(partition1,"MakePartition")

id_partition2 = geompy.addToStudy(partition2,"Partition")

id_partition3 = geompy.addToStudy(partition3,"MakeHalfPartition")

# display partition objects and plane

gg.createAndDisplayGO(id_box)

gg.setDisplayMode(id_box,1)

gg.createAndDisplayGO(id_plane)

gg.setDisplayMode(id_plane,1)

gg.createAndDisplayGO(id_partition1)

gg.createAndDisplayGO(id_partition2)

gg.createAndDisplayGO(id_partition3)

### Archimede

import geompy

import salome

gg = salome.ImportComponentGUI("GEOM")

# create vertex and vector

p0 = geompy.MakeVertex( 0., 0., 0.)

p200 = geompy.MakeVertex(200., 200., 200.)

# create box with two points

box = geompy.MakeBoxTwoPnt(p0, p200)

# perform an Archimede operation on the given shape with given parameters

weight = 1000000.

waterdensity = 1.

meshingdeflection = 0.01

archimede = geompy.Archimede(box, weight, waterdensity, meshingdeflection)

# add objects in study

id_box = geompy.addToStudy(box,"Box")

id_archimede = geompy.addToStudy(archimede,"Archimede")

# display box and result of Archimede operation

gg.createAndDisplayGO(id_box)

gg.setDisplayMode(id_box,1)

gg.createAndDisplayGO(id_archimede)

gg.setDisplayMode(id_archimede,1)