In VBA programing, I encountered the solid subtract problem, and was suggested to post out at here. I attached the dgn file and example photos again:
Subtract_Problem.zip
Link to Original Post (Microstation Programming Forum)
Assuming the goal is to subtract the green slab from the blue extrusion (I changed the colors for clarity), modify the green slab so that it clearly extends past the blue extrusion instead of clipping through it like it's doing now. Look at the area identified by the red circle in View 1 below, View 2 is zoomed in view.
HTH
-B
Brien Bastings said:Look at the area identified by the red circle
Yes, that solid's location and rotation are generated by Program. So the reason for the failure is due to "Geometry", or "Solids Working Area" in this case?
It's a geometry issue. The individual solids are fine, it's just the way they intersect that makes creating a valid solid by subtraction an issue. Solid modeling kernels are very precise and work to a high degree of accuracy in order to produce valid manifold solids.
As reminded by Jon Summers from the programming forum, I re-upload the dwg files at this forum and thanks for the Brien Bastings' kindly analysis.
SaveAsDWG.zip
The solid in the DWG is pretty much garbage; it has a small void and essentially a zero-thickness face.
The boolean subtraction failing in MicroStation is possibly to prevent the both of these anomalies, but lets also apply some reasonable, real-world logic to the discussion. Would you expect to see a piece of steel like that from a fabricator? Of course not, so you should follow Brien's first piece of advice to adjust the cutting-solid (even with a sacrificial duplicate), in order to create the correct clean cut.