Wings 3D Development Forum
[W.I.P.] Curve Tools plugin - Printable Version

+- Wings 3D Development Forum (https://www.wings3d.com/forum)
+-- Forum: Wings 3D (https://www.wings3d.com/forum/forumdisplay.php?fid=1)
+--- Forum: Design & Development (https://www.wings3d.com/forum/forumdisplay.php?fid=6)
+--- Thread: [W.I.P.] Curve Tools plugin (/showthread.php?tid=2580)

Pages: 1 2 3 4 5 6 7 8 9 10 11 12 13 14


RE: [W.I.P.] Curve Tool plugin - micheus - 11-23-2020

Interesting you version is creating a folder with this name: "2.2.6.2.gf0e56"
I also have the v2.2.6.1 installed and install my plugin, but the local user folder has the right folder name with the "plugins" folder inside of it.

Even the build I'm doing has the version id like: "2.2.6.1.68.g5487.dirty".

Anyway, the message:
Quote:Error loading module wpc_curves:
This BEAM file was compiled for a later version of the run-time system than 22.
can really be caused by me. I have the latest version of Erlang installed, but I should be using the 22 to build the plugin.
As I build the latest version in another PC, maybe I didn't set it properly to use the old one. I'm going to check. Thanks.

Again, the file was updated with the inclusion of some other fixes, for bugs I just found. Blush


RE: [W.I.P.] Curve Tool plugin - tkbd - 11-24-2020

micheus, Thank you for fix it!Biggrin,
and now I have the plugin test at continuous.

I'm enable understanding how to use this plugin little by little.
And I found 4 bugsBlush.

*Use "Convert To..." command and Wings3D crash.
Note: ONLY This error was got in previous version.(2020/11/22)
So ignore it if you already fixed this bug.

Code:
Dump written 2020-11-22_8-22
Version: 2.2.6.1
OS: macOS Mojave Version 10.14.6 (Build 18G6042)
GPU: Intel Inc. | Intel Iris OpenGL Engine
Window: {plugin,{curves,geom}}
Reason: undef

Short stack trace:
[{curve_misc,common_msg,1,[]},
{wpc_curves,raw_command,4,[{file,"wpc_curves.erl"},{line,866}]},
{wings_wm,handle_event,3,[{file,"wings_wm.erl"},{line,1030}]},
{wings_wm,send_event,2,[{file,"wings_wm.erl"},{line,996}]},
{wings_wm,do_dispatch,2,[{file,"wings_wm.erl"},{line,888}]},
{wings_wm,dispatch_event,1,[{file,"wings_wm.erl"},{line,797}]},
{wings_wm,get_and_dispatch,0,[{file,"wings_wm.erl"},{line,683}]},
{wings,init_part2,3,[{file,"wings.erl"},{line,108}]},
{proc_lib,init_p_do_apply,3,[{file,"proc_lib.erl"},{line,249}]}]

Long stack trace:
[{curve_misc,common_msg,[curve_required],[]},
{wpc_curves,raw_command,4,[{file,"wpc_curves.erl"},{line,866}]},
{wings_wm,handle_event,3,[{file,"wings_wm.erl"},{line,1030}]},
{wings_wm,send_event,2,[{file,"wings_wm.erl"},{line,996}]},
{wings_wm,do_dispatch,2,[{file,"wings_wm.erl"},{line,888}]},
{wings_wm,dispatch_event,1,[{file,"wings_wm.erl"},{line,797}]},
{wings_wm,get_and_dispatch,0,[{file,"wings_wm.erl"},{line,683}]},
{wings,init_part2,3,[{file,"wings.erl"},{line,108}]},
{proc_lib,init_p_do_apply,3,[{file,"proc_lib.erl"},{line,249}]}]



* Tried to rename a curve object in Curve Graph window.
( I was typing to something non-latin string for rename. )
A crash dialog appared, but a part of the strings were entered successfully.

Code:
Dump written 2020-11-24_7-14
Version: 2.2.6.1
OS: macOS Mojave Version 10.14.6 (Build 18G6042)
GPU: Intel Inc. | Intel Iris OpenGL Engine
Window: geom
Reason: function_clause

Short stack trace:
[{wings,command_1,2,[{file,"wings.erl"},{line,765}]},
{wings_develop,time_command,2,[{file,"wings_develop.erl"},{line,87}]},
{wings,raw_command,4,[{file,"wings.erl"},{line,641}]},
{wings_wm,handle_event,3,[{file,"wings_wm.erl"},{line,1030}]},
{wings_wm,send_event,2,[{file,"wings_wm.erl"},{line,996}]},
{wings_wm,do_dispatch,2,[{file,"wings_wm.erl"},{line,888}]},
{wings_wm,dispatch_event,1,[{file,"wings_wm.erl"},{line,797}]},
{wings_wm,get_and_dispatch,0,[{file,"wings_wm.erl"},{line,683}]},
{wings,init_part2,3,[{file,"wings.erl"},{line,108}]},
{proc_lib,init_p_do_apply,3,[{file,"proc_lib.erl"},{line,249}]}]

Long stack trace:
[{wings,command_1,
     [keep,
      {st,{1,
           {1,
            {we,1,0,"Linear1_polygon1",
                {array,6,10,undefined,
                    {{edge,0,1,0,1,2,1,1,2},
                     {edge,0,5,1,0,5,0,0,5},
                     {edge,1,2,0,1,3,0,0,3},
                     {edge,2,3,0,1,4,2,2,4},
                     {edge,3,4,0,1,5,3,3,5},
                     {edge,4,5,0,1,1,4,4,1},
                     undefined,undefined,undefined,undefined}},
                none,none,
                {2,{1,0,{0,0,nil,nil},nil}},
                {6,{3,{1,{0,nil,nil},{2,nil,nil}},{5,{4,nil,nil},nil}}},
                {array,6,10,undefined,
                    {0,0,2,3,4,1,undefined,undefined,undefined,undefined}},
                {array,6,10,undefined,
                    {{3.1951882563705594,0.7289760221312784,
                      1.0860839596190548},
                     {2.2376609206042195,0.7289760221312784,
                      -1.947123420708861},
                     {1.4754711227138262,0.7289760221312784,
                      -2.5310494698589068},
                     {-3.0935572162108813,0.6499273083133117,
                      -1.6235046519223353},
                     {-2.8768151656790706,0.5711513619447366,
                      0.3092990410527504},
                     {-2.702047464722031,0.7289760221312784,2.128791859620086},
                     undefined,undefined,undefined,undefined}},
                {1,{wings_shape,no_folder,nil,nil}},
                default,6,none,none,[],[]},
            nil,nil}},
          body,false,[],
          {0,nil},
          none,
          {1,
           {default,
               [{maps,[]},
                {opengl,
                    [{diffuse,{1.0,1.0,1.0,1.0}},
                     {emission,{0.0,0.0,0.0,1.0}},
                     {metallic,0.1},
                     {roughness,0.8},
                     {vertex_colors,set}]}],
               nil,nil}},
          [],undefined,false,2,none,none,
          {0,{}},
          {2,
           {wings_shape,
               {no_folder,[{no_folder,{open,{0,nil}}}]},
               nil,
               {wpc_curves,
                   {cst,
                       {1,
                        {1,
                         {curve,1,linear,"Linear1",
                             {array,30,100,undefined,
                                 {{undefined,undefined,...},10,{...},...}},
                             {array,6,10,undefined,{{segment,...},{...},...}},
                             6,true,false,minimum,
                             [{cp,...},{...}|...],
                             18.569762457376555,{...},...},
                         nil,nil}},
                       {1,
                        {1,
                         {object,1,sweep,"Sweep1",
                             #{curvature => {0.0,0.0},
                               curveid => -1,diameter => 0.2,
                               falloff => {100.0,100.0},
                               flip_nr => false,rotate => 0.0,
                               scale => {true,100.0,100.0},...},
                             #{fs =>
                                   [{0,[6,7|...]},
                                    {1,[7|...]},
                                    {2,[...]},
                                    {3,...},
                                    {...}|...],
                               he => [],
                               uv =>
                                   [[{0.479479272479666,0.5787034745320987},
                                     {0.48631603285735975,0.5787034745320987},
                                     {0.4869970434958127,...},
                                     {...}],
                                    [{0.48631603285735975,0.5787034745320987},
                                     {0.4931527932350535,...},
                                     {...}|...],
                                    [{0.4931527932350535,...},{...}|...],
                                    [{...}|...],
                                    [...]|...],
                               vs => {array,36,100,undefined,{...}}},
                             [1],
                             [],0},
                         nil,nil}},
                       body,
                       [{1,{2,{5,{0,nil,nil},nil}}}],
                       2,2,none,72,73,none,none,
                       {one,{1606,169639,486224}},
                       none,none,none,none,
                       {{...},...},
                       none,...},
                   nil,nil}}},
          {face,{move,normal}},
          none,
          [-0.8177777777777777,-2.568],
          {ignore,ignore},
          keep,
          {[{est,
                [{we,1,0,"Linear1_polygon1",
                     {array,6,10,undefined,
                         {{edge,0,1,0,1,...},
                          {edge,0,5,1,...},
                          {edge,1,2,...},
                          {edge,2,...},
                          {edge,...},
                          {...},...}},
                     none,none,undefined,
                     {6,{3,{1,{0,...},{...}},{5,{...},...}}},
                     undefined,
                     {array,6,10,undefined,{...}},
                     {1,{wings_shape,no_folder,...}},
                     default,6,none,none,...}],
                body,[],2,
                {1,
                 {default,
                     [{maps,[]},
                      {opengl,
                          [{diffuse,{1.0,1.0,...}},
                           {emission,{0.0,...}},
                           {metallic,0.1},
                           {roughness,...},
                           {...}]}],
                     nil,nil}},
                {2,
                 {wings_shape,
                     {no_folder,[{no_folder,{open,{0,...}}}]},
                     nil,
                     {wpc_curves,{cst,{1,{...}},{1,...},body,...},nil,nil}}},
                {select,body},
                undefined},
            {est,
                [{we,1,0,"Linear1_polygon1",
                     {array,6,10,undefined,
                         {{edge,0,1,0,...},
                          {edge,0,5,...},
                          {edge,1,...},
                          {edge,...},
                          {...},...}},
                     none,none,undefined,
                     {6,{3,{1,{...},...},{5,...}}},
                     undefined,
                     {array,6,10,undefined,...},
                     {1,{wings_shape,...}},
                     default,6,none,...}],
                body,[],2,
                {1,
                 {default,
                     [{maps,[]},
                      {opengl,
                          [{diffuse,{1.0,...}},
                           {emission,{...}},
                           {metallic,...},
                           {...}|...]}],
                     nil,nil}},
                {2,
                 {wings_shape,
                     {no_folder,[{no_folder,{open,{...}}}]},
                     nil,
                     {wpc_curves,{cst,{1,...},{...},...},nil,nil}}},
                {select,body},
                undefined},
            {est,
                [{we,1,0,"Linear1_polygon1",
                     {array,6,10,undefined,
                         {{edge,0,1,...},{edge,0,...},{edge,...},{...},...}},
                     none,none,undefined,
                     {6,{3,{1,...},{...}}},
                     undefined,
                     {array,6,10,...},
                     {1,{...}},
                     default,6,...}],
                body,[],2,
                {1,
                 {default,
                     [{maps,[]},
                      {opengl,[{diffuse,{...}},{emission,...},{...}|...]}],
                     nil,nil}},
                {2,
                 {wings_shape,
                     {no_folder,[{no_folder,{open,...}}]},
                     nil,
                     {wpc_curves,{cst,{...},...},nil,nil}}},
                {select,body},
                undefined},
            {est,
                [{we,1,0,"Linear1_polygon1",
                     {array,6,10,undefined,
                         {{edge,0,...},{edge,...},{...},...}},
                     none,none,undefined,
                     {6,{3,{...},...}},
                     undefined,
                     {array,6,...},
                     {1,...},
                     default,...}],
                face,[],2,
                {1,
                 {default,
                     [{maps,[]},{opengl,[{diffuse,...},{...}|...]}],
                     nil,nil}},
                {2,
                 {wings_shape,
                     {no_folder,[{no_folder,{...}}]},
                     nil,
                     {wpc_curves,{cst,...},nil,...}}},
                {select,deselect},
                undefined},
            {est,
                [{we,1,0,"Linear1_polygon1",
                     {array,6,10,undefined,{{edge,...},{...},...}},
                     none,none,undefined,
                     {6,{3,...}},
                     undefined,
                     {array,...},
                     {...},...}],
                face,[],2,
                {1,{default,[{maps,[]},{opengl,[{...}|...]}],nil,nil}},
                {2,
                 {wings_shape,
                     {no_folder,[{no_folder,...}]},
                     nil,
                     {wpc_curves,{...},...}}},
                {select,deselect},
                undefined},
            {est,
                [{we,1,0,"Linear1_polygon1",
                     {array,6,10,undefined,{{...},...}},
                     none,none,undefined,
                     {6,{...}},
                     undefined,{...},...}],
                face,[],2,
                {1,{default,[{maps,[]},{opengl,[...]}],nil,nil}},
                {2,{wings_shape,{no_folder,[{...}]},nil,{wpc_curves,...}}},
                {face,{move,normal}},
                undefined},
            {est,
                [{we,1,0,"Linear1_polygon1",
                     {array,6,10,undefined,{...}},
                     none,none,undefined,
                     {6,...},
                     undefined,...}],
                face,
                [{1,{1,{0,nil,nil}}}],
                2,
                {1,{default,[{maps,[]},{opengl,...}],nil,nil}},
                {2,{wings_shape,{no_folder,[...]},nil,{...}}},
                {select,deselect},
                undefined},
            {est,
                [{we,1,0,"Linear1_polygon1",
                     {array,6,10,undefined,...},
                     none,none,undefined,{...},...}],
                edge,[],2,
                {1,{default,[{maps,...},{...}],nil,nil}},
                {2,{wings_shape,{no_folder,...},nil,...}},
                {select,deselect},
                undefined},
            {est,
                [{we,1,0,"Linear1_polygon1",
                     {array,6,10,...},
                     none,none,undefined,...}],
                face,[],2,
                {1,{default,[{...}|...],nil,...}},
                {2,{wings_shape,{...},...}},
                {select,deselect},
                undefined},
            {est,
                [{we,1,0,"Linear1_polygon1",{array,6,...},none,none,...}],
                body,[],2,
                {1,{default,[...],...}},
                {2,{wings_shape,...}},
                {select,body},
                undefined},
            {est,[],body,[],1,
                {1,{default,...}},
                {2,{...}},
                {select,...},
                undefined},
            {est,[],edge,[],1,{1,{...}},{2,...},{...},...},
            {est,[],edge,[],1,{1,...},{...},...},
            {est,[],edge,[],1,{...},...},
            {est,[],edge,[],1,...},
            {est,[],edge,[],...},
            {est,[],edge,...},
            {est,[],...},
            {est,...},
            {...}|...],
           [{est,[],vertex,[],1,
                {1,
                 {default,
                     [{maps,[]},
                      {opengl,
                          [{diffuse,{1.0,...}},
                           {emission,{...}},
                           {metallic,...},
                           {...}|...]}],
                     nil,nil}},
                {2,
                 {wings_shape,
                     {no_folder,[{no_folder,{open,{...}}}]},
                     nil,
                     {wpc_curves,{cst,{1,...},{...},...},nil,nil}}},
                {select,{edge_loop,edge_ring}},
                undefined},
            {est,[],vertex,[],1,
                {1,
                 {default,
                     [{maps,[]},
                      {opengl,[{diffuse,{...}},{emission,...},{...}|...]}],
                     nil,nil}},
                {2,
                 {wings_shape,
                     {no_folder,[{no_folder,{open,...}}]},
                     nil,
                     {wpc_curves,{cst,{...},...},nil,nil}}},
                {select,{edge_loop,edge_ring}},
                undefined},
            {est,[],vertex,[],1,
                {1,
                 {default,
                     [{maps,[]},{opengl,[{diffuse,...},{...}|...]}],
                     nil,nil}},
                {2,
                 {wings_shape,
                     {no_folder,[{no_folder,{...}}]},
                     nil,
                     {wpc_curves,{cst,...},nil,...}}},
                {select,{edge_loop,edge_ring}},
                undefined},
            {est,[],body,[],1,
                {1,{default,[{maps,[]},{opengl,[{...}|...]}],nil,nil}},
                {2,
                 {wings_shape,
                     {no_folder,[{no_folder,...}]},
                     nil,
                     {wpc_curves,{...},...}}},
                {select,body},
                undefined},
            {est,[],body,[],1,
                {1,{default,[{maps,[]},{opengl,[...]}],nil,nil}},
                {2,{wings_shape,{no_folder,[{...}]},nil,{wpc_curves,...}}},
                {select,body},
                undefined},
            {est,[],body,[],1,
                {1,{default,[{maps,[]},{opengl,...}],nil,nil}},
                {2,{wings_shape,{no_folder,[...]},nil,{...}}},
                {select,body},
                undefined},
            {est,[],face,[],1,
                {1,{default,[{maps,...},{...}],nil,nil}},
                {2,{wings_shape,{no_folder,...},nil,...}},
                {select,deselect},
                undefined},
            {est,[],face,[],1,
                {1,{default,[{...}|...],nil,...}},
                {2,{wings_shape,{...},...}},
                {select,deselect},
                undefined},
            {est,[],vertex,[],1,
                {1,{default,[...],...}},
                {2,{wings_shape,...}},
                {select,vertex},
                undefined},
            {est,[],face,[],1,
                {1,{default,...}},
                {2,{...}},
                {select,...},
                undefined},
            {est,[],face,[],1,{1,{...}},{2,...},{...},...}]},
          true,[]}],
     [{file,"wings.erl"},{line,765}]},
{wings_develop,time_command,2,[{file,"wings_develop.erl"},{line,87}]},
{wings,raw_command,4,[{file,"wings.erl"},{line,641}]},
{wings_wm,handle_event,3,[{file,"wings_wm.erl"},{line,1030}]},
{wings_wm,send_event,2,[{file,"wings_wm.erl"},{line,996}]},
{wings_wm,do_dispatch,2,[{file,"wings_wm.erl"},{line,888}]},
{wings_wm,dispatch_event,1,[{file,"wings_wm.erl"},{line,797}]},
{wings_wm,get_and_dispatch,0,[{file,"wings_wm.erl"},{line,683}]},
{wings,init_part2,3,[{file,"wings.erl"},{line,108}]},
{proc_lib,init_p_do_apply,3,[{file,"proc_lib.erl"},{line,249}]}]

Argument #2:

OBJECT 1: "Linear1_polygon1"
=======================
   next_id=6

Face table
===========

0: edge=0
1: edge=0

Edge table
===========

0: vs=0 ve=1
  left: face=0 pred=2 succ=1
  right: face=1 pred=1 succ=2
1: vs=0 ve=5
  left: face=1 pred=5 succ=0
  right: face=0 pred=0 succ=5
2: vs=1 ve=2
  left: face=0 pred=3 succ=0
  right: face=1 pred=0 succ=3
3: vs=2 ve=3
  left: face=0 pred=4 succ=2
  right: face=1 pred=2 succ=4
4: vs=3 ve=4
  left: face=0 pred=5 succ=3
  right: face=1 pred=3 succ=5
5: vs=4 ve=5
  left: face=0 pred=1 succ=4
  right: face=1 pred=4 succ=1


*Dissolve with selected all point in a curve, and CurveTool geometry window is crash.
I tried to select and delete all the points that make up the curve in vertex selection mode.
Code:
Dump written 2020-11-24_7-39
Version: 2.2.6.1
OS: macOS Mojave Version 10.14.6 (Build 18G6042)
GPU: Intel Inc. | Intel Iris OpenGL Engine
Window: {plugin,{curves,geom}}
Reason: {case_clause,[]}

Stack trace:
[{curve_cmds,remove_from_stab,4,[{file,"curve_cmds.erl"},{[b]line,971[/b]}]},
{curve_cmds,'-dissolve_1/1-fun-1-',3,[{file,"curve_cmds.erl"},{line,909}]},
{curve_sel,fold_1,4,[{file,"curve_sel.erl"},{line,509}]},
{curve_cmds,dissolve_1,1,[{file,"curve_cmds.erl"},{line,939}]},
{curve_cmds,dissolve,1,[{file,"curve_cmds.erl"},{line,901}]},
{wpc_curves,raw_command,4,[{file,"wpc_curves.erl"},{line,866}]},
{wings_wm,handle_event,3,[{file,"wings_wm.erl"},{line,1030}]},
{wings_wm,send_event,2,[{file,"wings_wm.erl"},{line,996}]},
{wings_wm,do_dispatch,2,[{file,"wings_wm.erl"},{line,888}]},
{wings_wm,dispatch_event,1,[{file,"wings_wm.erl"},{line,797}]},
{wings_wm,get_and_dispatch,0,[{file,"wings_wm.erl"},{line,683}]},
{wings,init_part2,3,[{file,"wings.erl"},{line,108}]},
{proc_lib,init_p_do_apply,3,[{file,"proc_lib.erl"},{line,249}]}]
Almost the same log, but different only at the end of the stack.
It also occurred with another curve type with Line949.
Code:
[{curve_cmds,remove_from_stab,4,[{file,"curve_cmds.erl"},{[b]line,949[/b]}]},


*It is occuerd that trying move a curve point by Tweak move operation.
I pressed [F1]or[F2]or[F3] key and Drag a point,then Wings3D app were Crash absolutely.

Code:
Dump written 2020-11-24_12-34
Version: 2.2.6.1
Window: [wings,wings,<0.88.0>]
Reason: {case_clause,{st,{4,
                          {1,
                           {we,1,0,"sphere1",
                               {array,240,1000,undefined,{{...},...}},
                               none,none,
                               {128,{64,...}},
                               {0,nil},
                               {array,...},
                               {...},...},
                           nil,
                           {2,
                            {we,2,0,"Sweep3",
                                {array,198,...},
                                {array,...},
                                {...},...},
                            nil,
                            {3,{we,3,0,...},nil,{4,...}}}}},
                         body,false,[],
                         {0,nil},
                         none,
                         {1,
                          {default,[{maps,[]},{opengl,[{...}|...]}],nil,nil}},
                         [],undefined,false,5,none,none,
                         {0,{}},
                         {2,...},
                         {...},...}}

Stack trace:
[{wings_wm,handle_response,3,[{file,"wings_wm.erl"},{line,1056}]},
{wings_wm,send_event,2,[{file,"wings_wm.erl"},{line,996}]},
{wings_wm,do_dispatch,2,[{file,"wings_wm.erl"},{line,888}]},
{wings_wm,get_and_dispatch,0,[{file,"wings_wm.erl"},{line,683}]},
{wings,init_part2,3,[{file,"wings.erl"},{line,108}]},
{proc_lib,init_p_do_apply,3,[{file,"proc_lib.erl"},{line,249}]}]

Best regards!!


RE: [W.I.P.] Curve Tool plugin - micheus - 11-24-2020

Thanks for keep checking.

1) already fixed in the latest update
2) I will need to play with no latin fonts
3) fixed, but not updated yet
4) I cannot reproduce it. I tested with linear and bezier curves, constraining in every axis each time, then two and all three. Is there any detail missing? Maybe you can share the test file which this bug appears.

p.s. I confirmed the setup in the other PC was using the newer Erlang version. Blush


RE: [W.I.P.] Curve Tool plugin - tkbd - 11-24-2020

I see.
I checked to more detail for 2) & 4) bugs.
micheus Wrote:1) already fixed in the latest update
2) I will need to play with no latin fonts
3) fixed, but not updated yet
4) I cannot reproduce it. I tested with linear and bezier curves, constraining in every axis each time, then two and all three. Is there any detail missing? Maybe you can share the test file which this bug appears.


About 2) :
Just in case, I switched to English IME and renamed it.
Strangely, it also happened with English IME ( = U.S. ).
(Wings3D's UI:English, No 3D object, just create a curve,and rename it)

This is the log get at that time.
Code:
Dump written 2020-11-24_21-4
Version: 2.2.6.1
OS: macOS Mojave Version 10.14.6 (Build 18G6042)
GPU: Intel Inc. | Intel Iris OpenGL Engine
Window: geom
Reason: function_clause

Short stack trace:
[{wings,command_1,2,[{file,"wings.erl"},{line,765}]},
{wings_develop,time_command,2,[{file,"wings_develop.erl"},{line,87}]},
{wings,raw_command,4,[{file,"wings.erl"},{line,641}]},
{wings_wm,handle_event,3,[{file,"wings_wm.erl"},{line,1030}]},
{wings_wm,send_event,2,[{file,"wings_wm.erl"},{line,996}]},
{wings_wm,do_dispatch,2,[{file,"wings_wm.erl"},{line,888}]},
{wings_wm,dispatch_event,1,[{file,"wings_wm.erl"},{line,797}]},
{wings_wm,get_and_dispatch,0,[{file,"wings_wm.erl"},{line,683}]},
{wings,init_part2,3,[{file,"wings.erl"},{line,108}]},
{proc_lib,init_p_do_apply,3,[{file,"proc_lib.erl"},{line,249}]}]

Long stack trace:
[{wings,command_1,
     [keep,
      {st,{0,nil},
          body,false,[],
          {0,nil},
          none,
          {1,
           {default,
               [{maps,[]},
                {opengl,
                    [{diffuse,{1.0,1.0,1.0,1.0}},
                     {emission,{0.0,0.0,0.0,1.0}},
                     {metallic,0.1},
                     {roughness,0.8},
                     {vertex_colors,set}]}],
               nil,nil}},
          [],undefined,false,1,none,none,
          {0,{}},
          {2,
           {wings_shape,
               {no_folder,[{no_folder,{open,{0,nil}}}]},
               nil,
               {wpc_curves,
                   {cst,
                       {1,
                        {1,
                         {curve,1,linear,"Linear1",
                             {array,7,10,undefined,
                                 {{cv,{...},...},{cv,...},{...},...}},
                             {array,6,10,undefined,{{segment,...},{...},...}},
                             6,false,true,minimum,
                             [{cp,...},{...}|...],
                             3.5650949685953144,{...},...},
                         nil,nil}},
                       {0,nil},
                       body,
                       [{1,{1,{0,nil,nil}}}],
                       2,1,none,426,308,none,none,
                       {one,{1606,219450,18080}},
                       none,none,none,none,none,none,...},
                   nil,nil}}},
          ignore,none,none,
          {ignore,ignore},
          keep,
          {[{est,[],face,[],1,
                {1,
                 {default,
                     [{maps,[]},
                      {opengl,
                          [{diffuse,{1.0,1.0,...}},
                           {emission,{0.0,...}},
                           {metallic,0.1},
                           {roughness,...},
                           {...}]}],
                     nil,nil}},
                {2,
                 {wings_shape,
                     {no_folder,[{no_folder,{open,{0,...}}}]},
                     nil,
                     {wpc_curves,{cst,{1,{...}},{0,...},edge,...},nil,nil}}},
                empty_scene,undefined},
            {est,[],face,[],1,
                {1,
                 {default,
                     [{maps,[]},
                      {opengl,
                          [{diffuse,{1.0,...}},
                           {emission,{...}},
                           {metallic,...},
                           {...}|...]}],
                     nil,nil}},
                {2,
                 {wings_shape,
                     {no_folder,[{no_folder,{open,{...}}}]},
                     nil,
                     {wpc_curves,{cst,{1,...},{...},...},nil,nil}}},
                empty_scene,undefined}],
           [{est,[],face,[],1,
                {1,
                 {default,
                     [{maps,[]},
                      {opengl,
                          [{diffuse,{1.0,...}},
                           {emission,{...}},
                           {metallic,...},
                           {...}|...]}],
                     nil,nil}},
                {2,
                 {wings_shape,
                     {no_folder,[{no_folder,{open,{...}}}]},
                     nil,
                     {wpc_curves,{cst,{0,...},{...},...},nil,nil}}},
                empty_scene,undefined}]},
          true,[]}],
     [{file,"wings.erl"},{line,765}]},
{wings_develop,time_command,2,[{file,"wings_develop.erl"},{line,87}]},
{wings,raw_command,4,[{file,"wings.erl"},{line,641}]},
{wings_wm,handle_event,3,[{file,"wings_wm.erl"},{line,1030}]},
{wings_wm,send_event,2,[{file,"wings_wm.erl"},{line,996}]},
{wings_wm,do_dispatch,2,[{file,"wings_wm.erl"},{line,888}]},
{wings_wm,dispatch_event,1,[{file,"wings_wm.erl"},{line,797}]},
{wings_wm,get_and_dispatch,0,[{file,"wings_wm.erl"},{line,683}]},
{wings,init_part2,3,[{file,"wings.erl"},{line,108}]},
{proc_lib,init_p_do_apply,3,[{file,"proc_lib.erl"},{line,249}]}]

Argument #2:

About 4) :
micheus Wrote:I cannot reproduce it. I tested with linear and bezier curves, constraining in every axis each time, then two and all three. Is there any detail missing? Maybe you can share the test file which this bug appears.
I remembered the situation at that time.

How to reproduce.
Create a curve.
The situation where the Tweak option does not select anything.
Hold down the F1 key at first. (A 'X' character bold in Infomation verbose)
And ...Dragging curve a point or a segment while [F1] key Pressed.


Yes,This is not a formal Wings3D keystroke.
But I was inadvertently doing this mistake of keystroke Blush
There was also reproducibility.

As a comparative experiment, I did the same test for a 3D object in a normal Wings3D Geometry window,
but there was no problem.Smile


RE: [W.I.P.] Curve Tool plugin - micheus - 11-24-2020

tkbd, I will need to go deep into de code to discover why the bug 4 happens. So, by now, avoid to keep the F1/F2/F3 pressed while moving a vertex. Smile

The others were fixed.

Download here the latest update.


RE: [W.I.P.] Curve Tool plugin - tkbd - 11-25-2020

micheus,Thank you very much for your hard work.Biggrin
micheus Wrote:the bug 4 happens. So, by now, avoid to keep the F1/F2/F3 pressed while moving a vertex.
Got it!
----------
I Update CurveTool Sammary

Typical CurveTool workflow
(All works does through actived CurveToolGeomatry Window)
  1. Create a new curve(by some curve type) on CurveTool Geometry window.
  2. Tweaking path of the curve.
  3. Apply a effect (e.g. Body > Sweep : RMB) to the curve
  4. Tweaking the curve(again)
  5. Select the curve applied the effect, and Execute Body > Delete(Object) Command.
  6. New Sweeped object is created in Geometry window instead of the curve delete from CurveTool Geometry window.



RE: [W.I.P.] Curve Tool plugin - micheus - 12-08-2020

Thanks for the updates tkbd.

Currently, stylized hair is on the topic and I found some issues I can improve, but it's already possible to create something:
[Image: Stylized-Hair-evaluation1.png]


RE: [W.I.P.] Curve Tool plugin - micheus - 12-13-2020

A new update is available:
- more small bug fixes (curve twist mode, duplicate and rename on outliner);
- the make permanent wings3d object denomination was replaced by "Convert to mesh" in order to get closer the denomination used by other 3D apps;
- new body mode option - Twist;
- added option to access object's property in the context menu when one curve is select in body mode.

Twist command - it's also parametric - working like a non destructive deformer in other 3D apps
[Image: Object-Twist.png]


RE: [W.I.P.] Curve Tool plugin - tkbd - 12-19-2020

I'm trying various ways to use it.
I want to keep the editing by arranging the hairs in a circular.
That is to edit each part of the hair non-destructively.
Also, arranging them in a circular is convenient for quickly arranging the hair.
But Put On curve doesn't allow it.Sad
It requires a W3D Object that has lost its curve.



P.S
Thank you for update!!
Quote: added option to access object's property in the context menu when one curve is select in body mode.
This was one of the features I wanted. Biggrin


RE: [W.I.P.] Curve Tool plugin - micheus - 12-21-2020

Quote:That is to edit each part of the hair non-destructively.
Also, arranging them in a circular is convenient for quickly arranging the hair.
I don't intend to make an option like that available. That would to increase the complexity from my side.

Anyway, I can add some extra option to make some kind of array arrangement when copying.
In fact, I still need to implement a module that can help us to select and pick extra items as references - just like we have for Wings3D.


On the other hand, make one strand to be used as pattern/brush can be a better way to create hairs. Since I started to watch videos about curves in other apps - to get some ideas - that was a common approach.

This recent video by YanSculpts for Blender is the best example of how to create stylized hair by creating "brushes" to be used in the process:


It can be applied to the plugin. I just recommend to not use high resolution curves due to performance issues that can be experienced.
The plugin is not optimized, so basically all the used curve is re/computed each time it or a referenced one is updated - sometimes that would not be necessary.


Thanks for keep testing. I must make a new update this week before Christmas. Smile