← All ideas
  • Published 9 Sep 2024

Drawing curves

there have been a lot of 'Why the F**K would anyone do that' moments in blender, one that always puzzled me especially is the new draw curve tool, to have to add a curve to delete the curve to draw the curve makes little sense. So i decided to solve the problem as no one else is......... lol.

this script is installed in the same way as every other python script in blender is. once installed the script 'SHIFT A' can be used as usual to add a curve to the work space, in the menu is an extra item labelled 'Draw Curve', selecting this allows the user access to the curve drawing tools, the user is automatically taken to 'Edit Mode'. let me know what you think

heres the script, install it the way you would any addon and press 'SHIFT A' to add a curve and use the 'Draw Curve' choose the tool you want to use, freehand, constrained and start drawing.

bl_info = { "name": "Draw Curve Tool", "blender": (2, 80, 0), "category": "Object", }

import bpy

class OBJECT_OT_add_draw_curve(bpy.types.Operator): bl_idname = "object.add_draw_curve" bl_label = "Draw Curve" bl_options = {'REGISTER', 'UNDO'} bl_icon = 'CURVE_BEZCURVE' # Example icon

def execute(self, context):
    # Add a Bezier curve in Object mode
    bpy.ops.object.mode_set(mode='OBJECT')
    bpy.ops.curve.primitive_bezier_curve_add()

    # Switch to Edit mode
    bpy.ops.object.mode_set(mode='EDIT')

    # Select all control points
    bpy.ops.curve.select_all(action='SELECT')

    # Delete the handles
    bpy.ops.curve.delete(type='VERT')

    # Switch back to Object mode to avoid the empty stroke error
    bpy.ops.object.mode_set(mode='OBJECT')

    # Activate the Draw Curve tool
    bpy.ops.wm.tool_set_by_id(name="builtin.draw")

    # Switch back to Edit mode to start drawing
    bpy.ops.object.mode_set(mode='EDIT')

    return {'FINISHED'}

def menu_func(self, context): self.layout.operator(OBJECT_OT_add_draw_curve.bl_idname, icon='CURVE_BEZCURVE')

def register(): bpy.utils.register_class(OBJECT_OT_add_draw_curve) bpy.types.VIEW3D_MT_curve_add.prepend(menu_func)

def unregister(): bpy.utils.unregister_class(OBJECT_OT_add_draw_curve) bpy.types.VIEW3D_MT_curve_add.remove(menu_func)

if name == " main ": register()

genuinely hope this lets people not even thinking about drawing curves.

0%

Development Status: Open

Upvote 0 Downvote 1
mack7963
9 Sep 2024

8 Comments

Bujus_Krachus

For easier access you could publish it as an extension on extensions.blender.org/

1
mack7963 Author

I can only dream of being intelligent enough to even remotely comprehend what i just read, i'll leave the rest to those who know what they are doing :)

Lauloque

Without the attitude it could be a proposal. Though to be honest it would make more sense to just give an "add empty curve" option just as we already have for Grease Pencil. The addon Extra Curve also gives you a solo point entry.

mack7963 Author

I'm afraid you're going to need to walk me through where you THINK the attitude is.

Lauloque

Blender is a large project run by a relatively small dev team that deeply cares about the software but can't be everywhere at once. Like any software, it's bound to have some shortcomings, especially given those constraints. But that's exactly why it's incredible that Blender is free, open-source, and highly customizable. The developers even go out of their way to gather input from the community, whether that's feedback, addons, or even code contributions. This open dialogue is rare in an industry dominated by closed-source, subscription-based software, where user input is often limited to bug reports, and plugins are hoarded or sold to recoup costs.

Why post proposals on RCS? Because Blender relies on its community to help it grow. But for this process to work, feedback has to be respectful and constructive so it leads to progress.

Phrases like " Why the F**K would anyone do that " don’t help, they just come across as aggressive and disrespectful, especially when framed as " there have been a lot of " as if Blender is filled with nonsense. It makes it sound like the devs and community don’t know what they’re doing and/or don't care, which is unfair.

Saying " I decided to solve the problem as no one else is... lol " dismisses the work others have done, implying you’re the only one capable or willing to fix things. The "lol" just adds a layer of unnecessary sarcasm.

Turning it into a problem with how the reader interprets your words (" THINK ") really seals the deal. If it’s not your responsibility that someone took it as attitude, let’s compare it to similar proposals like these:

These are proposals that are very close to your subject. And the community met them with upvotes, comments, suggestions, even addons that offer great alternatives or inspiration for in-house development.

Clearly, others care about these issues too. But notice how their proposals are written: no sarcasm, no insults, just pointing out problems and suggesting solutions. Compare that to your post, it reads more like "Blender is full of nonsense, and only I care enough to fix this one thing, so here's a script." What kind of response do you expect from that?

If you genuinely want to contribute to Blender’s development, channel that energy into making clear, respectful, and constructive proposals.

mack7963 Author

One thing you forgot to take into account when writing so many paragraphs of drivel was whether or not the target of your unhinged rant actually give a F**k about what you think, spoiler alert.........he doesn't, maybe you should take yourself less seriously, because after this and your petty downvoting of something YOU took offense to, because YOU presumed wrongly, i doubt many with any sort of common sense will either. use it or don't but don't try and tone police me, you aren't important enough.

WickedInsignia

It's never too late to cool off and treat people here with more respect. This is very degrading and will not win you any support. Those who are "important enough" will almost certainly have no patience for it and are more interested in fostering a productive community rather than tolerating strangers with a high level of self-importance.

mack7963 Author

and this is directed at who precisely?