Curve Remove doubles #53367

Closed
opened 5 years ago by crantisz · 25 comments
Collaborator

Curve remove doubles addon for Blender 3D

Adds comand "Remove Dobles" for curves in Blender 3D

Sometimes in exported curves in Blender, you can note bugs: some of the curve may not be traced, or artifacts on the extruded wall:

Снимок экрана от 2017-11-21 11-04-35.png

This is becouse of nearby points of Bezier curve. Of course, you can manually delete these points, restore the guides, but there is a faster and more efficient way: add-on "Curve Remove Doubles".

The addon glues nearby points on a single Bézier curve. In fact it is an analogue of the usual Remove Doubles on a mesh, but it is for a curve. But unlike the mesh one, it does not connect the points from different parts of the curves, even if they are on the ends of the two curves. To glue such points, you must first connect them with F-button.

https://github.com/crantisz/blender-curve-remove-doubles-addon

How to use

Fixing curves

Let we have a curve with troubles:

Снимок экрана от 2017-11-21 11-04-35.png

Select all poins, than press W -> Remove Doubles:

Снимок экрана от 2017-11-21 11-04-44.png

Look at result:

Снимок экрана от 2017-11-21 11-04-49.png

Connecting two curves with preservation of guides

Let we have some curves to connecting

Снимок экрана от 2017-11-21 11-04-55.png

First, make segment with F-button. Next W -> Remove Doubles:

Снимок экрана от 2017-11-21 11-05-00.png

If the points don't stuck together - probably they are further than the established limit, press F6 and increase the limit until they are stuck together:

Снимок экрана от 2017-11-21 11-05-04.png

Look at result:

Снимок экрана от 2017-11-21 11-05-09.png

**Curve remove doubles addon for Blender 3D** Adds comand "Remove Dobles" for curves in Blender 3D Sometimes in exported curves in Blender, you can note bugs: some of the curve may not be traced, or artifacts on the extruded wall: ![Снимок экрана от 2017-11-21 11-04-35.png](https://archive.blender.org/developer/F1166069/Снимок_экрана_от_2017-11-21_11-04-35.png) This is becouse of nearby points of Bezier curve. Of course, you can manually delete these points, restore the guides, but there is a faster and more efficient way: add-on "Curve Remove Doubles". The addon glues nearby points on a single Bézier curve. In fact it is an analogue of the usual Remove Doubles on a mesh, but it is for a curve. But unlike the mesh one, it does not connect the points from different parts of the curves, even if they are on the ends of the two curves. To glue such points, you must first connect them with F-button. https://github.com/crantisz/blender-curve-remove-doubles-addon How to use Fixing curves Let we have a curve with troubles: ![Снимок экрана от 2017-11-21 11-04-35.png](https://archive.blender.org/developer/F1166074/Снимок_экрана_от_2017-11-21_11-04-35.png) Select all poins, than press W -> Remove Doubles: ![Снимок экрана от 2017-11-21 11-04-44.png](https://archive.blender.org/developer/F1166076/Снимок_экрана_от_2017-11-21_11-04-44.png) Look at result: ![Снимок экрана от 2017-11-21 11-04-49.png](https://archive.blender.org/developer/F1166079/Снимок_экрана_от_2017-11-21_11-04-49.png) Connecting two curves with preservation of guides Let we have some curves to connecting ![Снимок экрана от 2017-11-21 11-04-55.png](https://archive.blender.org/developer/F1166081/Снимок_экрана_от_2017-11-21_11-04-55.png) First, make segment with F-button. Next W -> Remove Doubles: ![Снимок экрана от 2017-11-21 11-05-00.png](https://archive.blender.org/developer/F1166083/Снимок_экрана_от_2017-11-21_11-05-00.png) If the points don't stuck together - probably they are further than the established limit, press F6 and increase the limit until they are stuck together: ![Снимок экрана от 2017-11-21 11-05-04.png](https://archive.blender.org/developer/F1166086/Снимок_экрана_от_2017-11-21_11-05-04.png) Look at result: ![Снимок экрана от 2017-11-21 11-05-09.png](https://archive.blender.org/developer/F1166088/Снимок_экрана_от_2017-11-21_11-05-09.png)
Poster
Collaborator

Changed status to: 'Open'

Changed status to: 'Open'
Poster
Collaborator

Added subscriber: @crantisz

Added subscriber: @crantisz
Owner

Added subscriber: @ideasman42

Added subscriber: @ideasman42
Owner

Seems like useful functionality, are you able to port this is Blender's C code?

Some tools as add-ons are fine but this seems like it would fit better as a built-in operation.

Seems like useful functionality, are you able to port this is Blender's C code? Some tools as add-ons are fine but this seems like it would fit better as a built-in operation.

Added subscriber: @SteffenD

Added subscriber: @SteffenD
Collaborator

Added subscriber: @cwolf3d

Added subscriber: @cwolf3d
Collaborator

Added subscriber: @BrendonMurphy

Added subscriber: @BrendonMurphy
Collaborator

could this be ported to 2.8 or made into a quick hack for c code?

could this be ported to 2.8 or made into a quick hack for c code?
Poster
Collaborator

In #53367#620907, @BrendonMurphy wrote:
could this be ported to 2.8 or made into a quick hack for c code?

you can grab 2.8 version it on my github: https://github.com/crantisz/blender-curve-remove-doubles-addon/releases

> In #53367#620907, @BrendonMurphy wrote: > could this be ported to 2.8 or made into a quick hack for c code? you can grab 2.8 version it on my github: https://github.com/crantisz/blender-curve-remove-doubles-addon/releases
Collaborator

@crantisz
hi again, It seems this is very useful, the issue is how to fit it in and make best use of the addon. Would it work to merge it into the simplify curves addon? Both seem related given they work to optimize/clean up curves?
What do you think? Would you be happy with this?

@crantisz hi again, It seems this is very useful, the issue is how to fit it in and make best use of the addon. Would it work to merge it into the simplify curves addon? Both seem related given they work to optimize/clean up curves? What do you think? Would you be happy with this?
Collaborator

I added this addon to curve_tools. https://developer.blender.org/diffusion/BAC/browse/master/curve_tools/
But I would like to see it in the main assembly.

And ideally, I would like to see in the main assembly a combine from this add-on

P.S. I can do this. Waiting for an order.

I added this addon to curve_tools. https://developer.blender.org/diffusion/BAC/browse/master/curve_tools/ But I would like to see it in the main assembly. And ideally, I would like to see in the main assembly a combine from this add-on + https://github.com/Lichtso/curve_cad + https://developer.blender.org/diffusion/BAC/browse/master/curve_tools + some of the functions from https://developer.blender.org/diffusion/BA/browse/master/add_curve_extra_objects/add_curve_simple.py P.S. I can do this. Waiting for an order.
Collaborator

hi, @cwolf3d you would need permissions off https://github.com/Lichtso/curve_cad
I've kept curve tools around for years because it holds some good functionality, it was great to see your activity there.
I think it would be good to start a new task about curve tools so we can work out how to proceed.
I think for now we could add curve remove doubles to simplify curves in release and work out how to proceed with curve tools in the new task.
something like this in the bl_info might work:

    "location": "Add Curve > Simplify Curves/ Curve Edit Context Menu",
    "description": "Simplify F-Curves/ 3d View: Simplify/Removed Doubles",

Thanks again.

hi, @cwolf3d you would need permissions off https://github.com/Lichtso/curve_cad I've kept curve tools around for years because it holds some good functionality, it was great to see your activity there. I think it would be good to start a new task about curve tools so we can work out how to proceed. I think for now we could add curve remove doubles to simplify curves in release and work out how to proceed with curve tools in the new task. something like this in the bl_info might work: ``` "location": "Add Curve > Simplify Curves/ Curve Edit Context Menu", "description": "Simplify F-Curves/ 3d View: Simplify/Removed Doubles", ``` Thanks again.
cwolf3d was assigned by BrendonMurphy 4 years ago
Poster
Collaborator

In #53367#694432, @BrendonMurphy wrote:
@crantisz
hi again, It seems this is very useful, the issue is how to fit it in and make best use of the addon. Would it work to merge it into the simplify curves addon? Both seem related given they work to optimize/clean up curves?
What do you think? Would you be happy with this?

It would be nice, I think

> In #53367#694432, @BrendonMurphy wrote: > @crantisz > hi again, It seems this is very useful, the issue is how to fit it in and make best use of the addon. Would it work to merge it into the simplify curves addon? Both seem related given they work to optimize/clean up curves? > What do you think? Would you be happy with this? It would be nice, I think
Collaborator

hi again, i'm having some trouble here.
Add a bezier curve, duplicate it in place
Run your addon.
No points are removed.
Adjusting the parameters makes both curves a straight line and removes no doubles.
I would have expected the addon to simply remove/merge the double points as they are overlaying.
I could be misunderstanding what's expected from the addon but felt it's needed to raise this point.
Tested in nightly build from here: https://builder.blender.org/download/

hi again, i'm having some trouble here. Add a bezier curve, duplicate it in place Run your addon. No points are removed. Adjusting the parameters makes both curves a straight line and removes no doubles. I would have expected the addon to simply remove/merge the double points as they are overlaying. I could be misunderstanding what's expected from the addon but felt it's needed to raise this point. Tested in nightly build from here: https://builder.blender.org/download/
Poster
Collaborator

@BrendonMurphy read the description:

The addon glues nearby points on a single Bézier curve. In fact it is an analogue of the usual Remove Doubles on a mesh, but it is for a curve. But unlike the mesh one, it does not connect the points from different parts of the curves, even if they are on the ends of the two curves. To glue such points, you must first connect them with F-button.

Merging points from two different curves looks impossible, because it may require points, connected with more than 2 points, that doesn't supports by Bezier

@BrendonMurphy read the description: > The addon glues nearby points on a single Bézier curve. In fact it is an analogue of the usual Remove Doubles on a mesh, but it is for a curve. But unlike the mesh one, it does not connect the points from different parts of the curves, even if they are on the ends of the two curves. To glue such points, you must first connect them with F-button. Merging points from two different curves looks impossible, because it may require points, connected with more than 2 points, that doesn't supports by Bezier
Poster
Collaborator

The typical situation, than it very useful is clearing imported vectors:

Peek 2019-06-10 10-22.gif

The typical situation, than it very useful is clearing imported vectors: ![Peek 2019-06-10 10-22.gif](https://archive.blender.org/developer/F7097234/Peek_2019-06-10_10-22.gif)
Collaborator

thanks for reply, I wonder if Curve Clean Up would be a better name? I was concerned that users may confuse what the addon does with the way mesh remove doubles works.
Let me know. It only took me a few min to add to curve simplify addon, I will be moving the addon forward shortly.

thanks for reply, I wonder if Curve Clean Up would be a better name? I was concerned that users may confuse what the addon does with the way mesh remove doubles works. Let me know. It only took me a few min to add to curve simplify addon, I will be moving the addon forward shortly.
Collaborator

As for me, the work of this addon is similar to the work of the remove doubles mesh. The name Remove Doubles here fits best. Well, you can also call "Merge nearby vertices" or "Merge vertices by distance"

As for me, the work of this addon is similar to the work of the remove doubles mesh. The name Remove Doubles here fits best. Well, you can also call "Merge nearby vertices" or "Merge vertices by distance"
Poster
Collaborator

Actually,remove doubles renamed tomerge by distance, so Merge vertices by distance will be better

Actually,**remove doubles** renamed to**merge by distance**, so **Merge vertices by distance** will be better
Collaborator

Raising Priority,
We can merge this easily with Simplify Curves for 2.8 release.
curve_simplify.py
@crantisz I changed name to merge by distance and it works really well. I also did some better tests and it's really a great tool. Thank You.
@cwolf3d I've made a few adjustments here to the bl info It's ok? Probably needs some clean up too.
Simplify curves seems to be bugging out? error in main with to many positional arguments? Can this be confirmed?
Next issue would be location in the menus. Although simplify curves has a long standing appearance in the add curve menu, It really does not not belong there. I would think both could be in the context menu as 2 entries prepended,
They could also be appended into the edit mode Curve menu.
At a later stage or if time permits, simplify curves also needs an operator menu, it would be nice to add some options such as edit/object mode, remove or keep original object.
Let me know what you think.

Raising Priority, We can merge this easily with Simplify Curves for 2.8 release. [curve_simplify.py](https://archive.blender.org/developer/F7099697/curve_simplify.py) @crantisz I changed name to merge by distance and it works really well. I also did some better tests and it's really a great tool. Thank You. @cwolf3d I've made a few adjustments here to the bl info It's ok? Probably needs some clean up too. Simplify curves seems to be bugging out? error in main with to many positional arguments? Can this be confirmed? Next issue would be location in the menus. Although simplify curves has a long standing appearance in the add curve menu, It really does not not belong there. I would think both could be in the context menu as 2 entries prepended, They could also be appended into the edit mode Curve menu. At a later stage or if time permits, simplify curves also needs an operator menu, it would be nice to add some options such as edit/object mode, remove or keep original object. Let me know what you think.
Collaborator

@BrendonMurphy All your comments about Simplify Curves are absolutely correct.

@BrendonMurphy All your comments about Simplify Curves are absolutely correct.
Poster
Collaborator

@BrendonMurphy Can you change autor from crantisz to Michael Soluyanov?

@BrendonMurphy Can you change autor from crantisz to Michael Soluyanov?
Collaborator

I got permission from Lichtso https://github.com/Lichtso/curve_cad.
At the weekend I will work on a large addon for working with curves (+curve_cad +curve_remove_doubles +curve_tools +some of the functions from add_curve_simple).
I will change autor from crantisz to Michael Soluyanov.

I got permission from Lichtso https://github.com/Lichtso/curve_cad. At the weekend I will work on a large addon for working with curves (+curve_cad +curve_remove_doubles +curve_tools +some of the functions from add_curve_simple). I will change autor from crantisz to Michael Soluyanov.
Collaborator

Changed status from 'Open' to: 'Resolved'

Changed status from 'Open' to: 'Resolved'
BrendonMurphy closed this issue 4 years ago
Collaborator

@crantisz Added your name.
@cwolf3d great news, I will make a new task shortly.
Closing this task as resolved.

@crantisz Added your name. @cwolf3d great news, I will make a new task shortly. Closing this task as resolved.
Sign in to join this conversation.
No Label
good first issue
legacy module/Animation & Rigging
legacy module/Core
legacy module/Eevee & Viewport
legacy module/Grease Pencil
legacy module/Modeling
legacy module/Nodes & Physics
legacy module/Pipeline, Assets & IO
legacy module/Platforms, Builds, Tests & Devices
legacy module/Python API
legacy module/Rendering & Cycles
legacy module/Sculpt, Paint & Texture
legacy module/User Interface
legacy module/VFX & Video
legacy project/2.81
legacy project/2.82
legacy project/2.83
legacy project/2.90
legacy project/2.92
legacy project/2.93
legacy project/3.0
legacy project/3.1
legacy project/3.2
legacy project/3.4
legacy project/Add-ons (BF-Blender)
legacy project/Add-ons (Community)
legacy project/Alembic
legacy project/Animation & Rigging
legacy project/Asset Browser
legacy project/Automated Testing
legacy project/BF Blender: 2.8
legacy project/BF Blender: After Release
legacy project/BF Blender: Next
legacy project/BF Blender: Regressions
legacy project/BF Blender: Unconfirmed
legacy project/Blender 2.70
legacy project/Blender Cloud
legacy project/Code Quest
legacy project/Collada
legacy project/Compositing
legacy project/Core
legacy project/Cycles
legacy project/Datablocks and Libraries
legacy project/Dependency Graph
legacy project/Documentation
legacy project/EEVEE & Viewport
legacy project/Freestyle
legacy project/Game Data Conversion
legacy project/Game Engine
legacy project/Game Physics
legacy project/Game Python
legacy project/Game UI
legacy project/Geometry Nodes
legacy project/Good First Issue
legacy project/Grease Pencil
legacy project/Images & Movies
legacy project/Import/Export
legacy project/Infrastructure: Blender Buildbot
legacy project/Infrastructure: Blender Web Assets
legacy project/Infrastructure: Websites
legacy project/Modeling
legacy project/Modifiers
legacy project/Motion Tracking
legacy project/Nodes
legacy project/Nodes & Physics
legacy project/OpenGL Error
legacy project/Overrides
legacy project/Papercut
legacy project/Physics
legacy project/Pillar
legacy project/Pipeline, Assets & I/O
legacy project/Platform: Linux
legacy project/Platform: macOS
legacy project/Platforms, Builds, Tests & Devices
legacy project/Platform: Windows
legacy project/Python API
legacy project/Render & Cycles
legacy project/Render Pipeline
legacy project/Sculpt, Paint & Texture
legacy project/Straightforward Issue
legacy project/Text Editor
legacy project/Tracker Curfew
legacy project/Translations
legacy project/USD
legacy project/User Interface
legacy project/UV Editing
legacy project/VFX & Video
legacy project/Video Sequencer
legacy project/Virtual Reality
papercut
Priority › High
Priority › Low
Priority › Normal
Priority › Unbreak Now!
Status › Archived
Status › Confirmed
Status › Duplicate
Status › Needs Information from Developers
Status › Needs Information from User
Status › Needs Triage
Status › Resolved
straightforward issue
Type › Bug
Type › Design
Type › Known Issue
Type › Patch
Type › Report
Type › To Do
No Milestone
No project
No Assignees
5 Participants
Notifications
Due Date

No due date set.

Dependencies

No dependencies set.

Reference: blender/blender-addons#53367
Loading…
There is no content yet.