Page MenuHome

Convert to curve poor result
Closed, ArchivedPublic

Description

System Information
Operating system: Linux Mint 19
Graphics card: Nvidia 1070

Blender Version
Broken: 2.8
Worked: 2.79

Short description of error
Convert to curve fails.

Exact steps for others to reproduce the error
Load the file, use object -> convert to curve, only half of object succeed.

Details

Type
Bug

Event Timeline

Jacques Lucke (JacquesLucke) lowered the priority of this task from Needs Triage by Developer to Needs Information from User.Jan 25 2019, 1:29 PM

Can you try to create a simpler example that works in 2.79 but not in 2.8?
I noticed that converting Suzanne to seems to have a similar problem, but it works the same in both versions of Blender.

Both samples does work in 2.79 but not in 2.8
Basically i do slice geometry using

bpy.ops.mesh.bisect(
                        'INVOKE_DEFAULT',
                        plane_co=plane_co,
                        plane_no=plane_no,
                        use_fill=True,
                        clear_inner=True,
                        clear_outer=True)

and then convert result to curve.
Doing so never was a problem in 2.79, even on complex meshes as shown in file 1.

Jacques Lucke (JacquesLucke) raised the priority of this task from Needs Information from User to Needs Triage by Developer.Jan 25 2019, 4:05 PM

Maybe it helps when you don't use the use_fill option so that you don't have any faces left?

Ok,
removing faces does fix the issue, but it's a regression from 2.79

Sebastian Parborg (zeddb) lowered the priority of this task from Needs Triage by Developer to Needs Information from User.EditedJan 28 2019, 4:22 PM

Do you get the same problem with the 2.79 build from here? https://builder.blender.org/download/

I get the exact same result on both the latest 2.79 build and 2.8. So I'm guessing this it is not really 2.8 related. (So it's a regression for both)

Same geometry is failing on both 2.79c and 2.8 (using crtl+c and paste to move between apps)

However building geometry using bpy.ops.bisect() and then convert does succeed in both
2.79c and 2.79 d377cd5db19a
but fails in 2.8 690478027bd7 (i've to remove faces to make it work as in 2.79)

So looks like bisect output is not consistent across blender's versions.

How do i bisect the mesh in 2.79 to make it work?

In edit mode if i recall correctly

# plane co: coord of one point in bisect plane
# plane no: vector of bisect plane normal
bpy.ops.mesh.bisect(
                        'INVOKE_DEFAULT',
                        plane_co=plane_co,
                        plane_no=plane_no,
                        use_fill=True,
                        clear_inner=True,
                        clear_outer=True)

see in action:
https://youtu.be/AmPDyhwBA8w?t=31

Yes, but in the example files you have to slice it somewhere.

Or are you not bisecting the mesh in bug_to_curve.blend ?

The bug_to_curve.blend file is a result of bisect done through same code as seen in video, but under 2.8

There are many duplicate faces in this mesh causing curve conversion to fail in those cases.

Blender should never create duplicate faces, so the issue is likely a spesific tool or script.

While removing double faces on entering edit-mode is possible, it's going to slow things down so I'd rather first find out how the mesh was created.

Will check twice the mesh generation code - to ensure there is no dups as i do join() meshes together before bisect().
But as far as i can tell, exact same code was (is) working without any trouble under 2.79c and 2.79 lastest buildbot

The workaround for this issue in code is to remove all faces.

Philipp Oeser (lichtwerk) closed this task as Archived.Mar 19 2019, 9:39 AM
Philipp Oeser (lichtwerk) claimed this task.

More than a week without reply or activity. Due to the policy of the tracker archiving for until required info/data are provided.