# Define a hourglass solid

Hello, I must draw two targets similiar to hourglass

1. The first one is this one

modifing the code that @evc wrote me to define a meniscus, I wrote

``````G4double pHourRmax = 1.85*cm;
G4Orb* HourOrb1 =    new G4Orb("HourOrb1", pHourRmax);
G4Orb* HourOrb2 =    new G4Orb("HourOrb2", pHourRmax);
G4Tubs* HourTub =
new G4Tubs("HourTube",                    //its name
pRMin, pRMax, pDz, pSPhi, pDPhi);    //its size*/
G4ThreeVector positionHourOrb1(0,0,1.95*cm);
G4ThreeVector positionHourOrb2(0,0,-1.95*cm);
G4VSolid* HourTmp = new G4SubtractionSolid("HourTmp", HourTub, HourOrb1, &identity, positionHourOrb1);
G4VSolid* HourGlass = new G4SubtractionSolid("HourGlass", HourTmp, HourOrb1, &identity, positionHourOrb2);
``````

when I look the logical volume

but when I look the targets I get these ones

the lateral view isnâ€™t curve , but it is still linear. Is there a way to get a lateral surface somthing like

???

1. Iâ€™ve to build a second target like this one

ie. the lataeral surface must be curve in the up and down of it and linear at the centerâ€¦
is there a way to do it?

@evc maybe, are you able to help me to do this too?

1 Like

Make a `G4UnionSolid`, starting with your first shape, and joining it with a `G4Tubs`. The top and bottom flats of the cylinder be the flat portions of your shape (which you labelled â€śLinearâ€ť in your cross-section diagram).

1. It is an illusion, the surface is not flat, it is curved. Try to draw the lens as a wire frame, like in your first image.
2. Use G4Ellipsoid instead G4Orb, it has cuts in Z.

Thank you the both @mkelsey and @evc!