For all issues regarding the Forums use, please, refer to the Forum Rules.

Our Solutions

Need professional assistance?
Consider our:

Support Offerings


Need to speed up your development?
Have a look at our:

Samples & Tools


Need some functionality extending standard OCCT capabilities?
Check out our:

Adv. Components

Related pages

Add wire to face which is not a hole

Paul Jimenez's picture

I've searched the forums for this specific question, and the answer so far seems to be that the wire I want to add (which doesn't define a hole) must have opposite orientation to that of the outer wire.

Well, I've been experimenting with it, and it doesn't really matter if it's forward or reversed, it makes the whole face "unfilled".

I think it's important to say that the wires I want to add that do NOT define holes are open wires. All closed wires I add are holes. The problem could be in it.

Is there a way to add these open wires to a face without making it invisible?

Thanks in advance.

Bearloga's picture

Such wires must have orientation External or Internal.

Paul Jimenez's picture

I tried with orientation Internal, and it "worked". The only problem is that the first and last vertices are drawn for the open wire as yellow pluses (+).

If that's the only way to get it working, I guess I'll have to disable the drawing of vertices... somehow... if possible.

I'll look further into it tomorrow, but if you have any ideas, they'll be welcomed.


Lodyzhensky's picture

Dear Paul Jimenez.

If the wire W produces hole-face but you want to have growth-face:
Try to make other wire W1 that consists of same edges as W but the edges have opposite orientations (in terms of TopAbs::Reverse(...)).

Paul Jimenez's picture


I just tried that in DRAW, but it didn't seem to work. Probably I did something wrong. Things is, it's not convenient in my case to have an extra wire. It seems I'll have to use an internal one :(

Thanks for the help.

Bearloga's picture

I think a valid brep face can have only one wire that has counter-clock wise orientation (it is the face's external boundary). All other wires (if they do not have internal or external orientation) must have clock-wise direction of the contour and be located inside the main wire in 2d space domain of the face.

Lodyzhensky's picture

The DRAW script below produces hole-face from growth-face (f1) without any problems in software.

box b 10 10 10
explo b f
don b_6
mksurf s1 b_6

explo b_6 e
orientation b_6_1 F
orientation b_6_2 F
orientation b_6_3 R
orientation b_6_4 R

shape w1 W
add b_6_1 w1
add b_6_2 w1
add b_6_3 w1
add b_6_4 w1

mkface f1 s1
add w1 f1

Bearloga's picture

No problems only before you start real usage of such face.
The following draw command will report errors in this face:

checkshape f1

On Shape faulty_1 :

Faulty shapes in variables faulty_1 to faulty_1

Lodyzhensky's picture

Dear Bearloga.

I've explain how to make hole-face from growth-face and vice versa, but nothing more.

Especially for you:
The face f1 is pure hole-face and checkshape will always send errors for the faces like that. Please have a look the code of the class BRepCheck_Analyzer for details.

Any questions are welcomed.

Paul Jimenez's picture


I've been trying different things, and it seems that having such a shape will give me only problems. OpenCascade is very strict about shapes, so I better try to make my own flexible enough to avoid problems. I just wanted to have "simplified" shapes without unnecessary edges/wires, faces "internal" to shells and many other bizarre things, but such shapes are marked as invalid by OCC.

I'll just start thinking about other ways to achieve what I want while keeping OCC happy.

Thanks for the help.

Contact us

Attention: DO NOT use this form for all kind of request for the removal of your personal data. Please follow this link for such cases.