Can fme creat a hemisphere like this below? Thanks a lot.
This post is closed to further activity.
It may be an old question, an answered question, an implemented idea, or a notification-only post.
Please check post dates before relying on any information in a question or answer.
For follow-up or related questions, please post a new question or idea.
If there is a genuine update to be made, please contact us and request that the post is reopened.
HI @liujisheng, assuming you are using FME 2018, this is a possible way.
Create the center point (x, y, z) of desired hemisphere.
Bufferer (Buffer Type: Solid): Transform the point to a solid = approximate sphere. You can control accuracy (smoothness) of the sphere through the Edge Resolution parameter.
GeometryPartExtractor (Geometyr XQuery: This part | Geometry Type | = | IFMEFace): Decompose the solid into individual faces.
BoundsExtractor: Calculate bounds of each face.
Tester: Filter out faces whose zmax is equal to or less than z of the center point.
Aggregator: Aggregate the remnant faces.
GeometryCoercer (Geometry Type: fme_composite_surface): Transform the aggregate into a composite surface = approximate hemisphere.
Note that the resulting shape would not be geometrically equal to your example, as you can see in this screenshot. If you want to create exact same shape, you might need to write a script with geometrical algorithm and FME Objects API.
HI @liujisheng, assuming you are using FME 2018, this is a possible way.
Create the center point (x, y, z) of desired hemisphere.
Bufferer (Buffer Type: Solid): Transform the point to a solid = approximate sphere. You can control accuracy (smoothness) of the sphere through the Edge Resolution parameter.
GeometryPartExtractor (Geometyr XQuery: This part | Geometry Type | = | IFMEFace): Decompose the solid into individual faces.
BoundsExtractor: Calculate bounds of each face.
Tester: Filter out faces whose zmax is equal to or less than z of the center point.
Aggregator: Aggregate the remnant faces.
GeometryCoercer (Geometry Type: fme_composite_surface): Transform the aggregate into a composite surface = approximate hemisphere.
Note that the resulting shape would not be geometrically equal to your example, as you can see in this screenshot. If you want to create exact same shape, you might need to write a script with geometrical algorithm and FME Objects API.