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 15


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

Adding the flexibility of Tweak operations to give us more freedom to change the object's shape without a dialog:
Scale Uniform, Scale constrained to X and/or Y.

[Image: Screen-Recording-22-12-2020-19-35-47-x264.gif]

Playing with the twisted shape and after convert it to mesh I added some vertex colours. :-)
[Image: Object-Scaling-shape-section.png]


The plugin was updated. The previous link is still valid.


RE: [W.I.P.] Curve Tool plugin - oort - 12-23-2020

Micheus,
Thank you very much for all the work you are doing on this. It is looking very impressive. I hope to have time to play with it in 2021.

Thanks again,
oort


RE: [W.I.P.] Curve Tool plugin - micheus - 01-03-2021

Thanks oort

Here is my first "official" video about it. I hope it helps to understand the basic of create and edit curves:



RE: [W.I.P.] Curve Tool plugin - tkbd - 01-07-2021

Thanks for upload official video!!
I'm looking forward to the next continuation.Smile


RE: [W.I.P.] Curve Tool plugin - micheus - 01-23-2021

A new update is available.
Code:
- Fixed bèzier handle length for the first vertex control which has been truncated;
- Fixed the normal value for ribbon shape used in Sweep;
- Fixed the computation of the vectors (TNBs) and then was removed the need
  for re-compute the vectors to the 'Tangent' twist mode;
- Fixed close command when using CTRL+Click;
- Fixed wrong bèzier handle orientation when this kind of curve is closed;
- Fixed sweep object which was aligning the shape wrongly;
- Added drag and drop option on Outliner window to duplicate a dragged object
  using the curve where it was drop. It can be a single curve over the mouse
  pointer or multiple selected curves on Curve's geometry window;

Plugin updated: link


RE: [W.I.P.] Curve Tool plugin - tkbd - 01-24-2021

Thank you for update!

I tried and founded a crash.
How to recrate?
  1. Make Curve by Line.
  2. Change Curve Type to Bezier
  3. Wings3D crash.

FYI: I updated curve plug-in from zip file install(Newest version).
Error Dialog message is:
Now might be a good time to save your work and restart Wings3D
and it get a following log
Code:
Dump written 2021-1-24_22-53
Version: 2.2.6.1
OS: macOS Mojave Version 10.14.6 (Build 18G7016)
GPU: Intel Inc. | Intel Iris OpenGL Engine
Window: {plugin,{curves,geom}}
Reason: function_clause

Short stack trace:
[{e3d_vec,add,2,[{file,"e3d_vec.erl"},{line,53}]},
{ct_bezier,'-calc_curve/1-fun-0-',6,[{file,"ct_bezier.erl"},{line,34}]},
{array,sparse_foldl_3,7,[{file,"array.erl"},{line,1684}]},
{ct_bezier,calc_curve,1,[{file,"ct_bezier.erl"},{line,30}]},
{curve_math,calc_curve,1,[{file,"curve_math.erl"},{line,124}]},
{curve_cmds,'-convert_curve/2-fun-0-',3,
             [{file,"curve_cmds.erl"},{line,1074}]},
{curve_sel,map_1,5,[{file,"curve_sel.erl"},{line,514}]},
{curve_sel,map,2,[{file,"curve_sel.erl"},{line,119}]},
{curve_cmds,convert_curve,2,[{file,"curve_cmds.erl"},{line,1072}]},
{wpc_curves,raw_command,4,[{file,"wpc_curves.erl"},{line,867}]},
{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:
[{e3d_vec,add,
          [{-1.2808961366362963,0.593822418282195,0.8892948274755286},none],
          [{file,"e3d_vec.erl"},{line,53}]},
{ct_bezier,'-calc_curve/1-fun-0-',6,[{file,"ct_bezier.erl"},{line,34}]},
{array,sparse_foldl_3,7,[{file,"array.erl"},{line,1684}]},
{ct_bezier,calc_curve,1,[{file,"ct_bezier.erl"},{line,30}]},
{curve_math,calc_curve,1,[{file,"curve_math.erl"},{line,124}]},
{curve_cmds,'-convert_curve/2-fun-0-',3,
             [{file,"curve_cmds.erl"},{line,1074}]},
{curve_sel,map_1,5,[{file,"curve_sel.erl"},{line,514}]},
{curve_sel,map,2,[{file,"curve_sel.erl"},{line,119}]},
{curve_cmds,convert_curve,2,[{file,"curve_cmds.erl"},{line,1072}]},
{wpc_curves,raw_command,4,[{file,"wpc_curves.erl"},{line,867}]},
{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}]}]

------
tkbd


RE: [W.I.P.] Curve Tool plugin - micheus - 01-25-2021

Thanks for test and report it.
I already fixed the problem. The link was updated.


RE: [W.I.P.] Curve Tool plugin - tkbd - 01-29-2021

Hi! Smile
The Curve plugin also has the feature that create a curve(s) from a selected edge(s) of an object(s).
This feature is very convenient for create multiple curves with object surface snapping.BiggrinBiggrinBiggrin
It's simple ,quick and easy,Apply "convert to" command and choose a line type.

I tested it,and found some crashes.
How to reacrete it.
  1. Use "convert to" command , for create a curve from an object edge selection.
  2. Select the object body and the curve on curve plugin geometry window.
  3. Again,Use "convert to" command.
  4. Wings3d Crash(curve plugin geometry window is missing)

Note:
It occured ONLY the case when a curve generated from an edge!!
This crash doesn't occur on curve(s) created in the usual way.
For example, A Grid object and some curves create from the edge on the Grid.

Crash log is here.
Code:
Dump written 2021-1-30_8-40
Version: 2.2.6.1
OS: macOS Mojave Version 10.14.6 (Build 18G7016)
GPU: Intel Inc. | Intel Iris OpenGL Engine
Window: {plugin,{curves,geom}}
Reason: function_clause

Short stack trace:
[{curve_sel,map_1,5,[{file,"curve_sel.erl"},{line,512}]},
{curve_sel,map,2,[{file,"curve_sel.erl"},{line,119}]},
{curve_cmds,convert_curve,2,[{file,"curve_cmds.erl"},{line,1072}]},
{wpc_curves,raw_command,4,[{file,"wpc_curves.erl"},{line,867}]},
{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_sel,map_1,
     [#Fun<curve_cmds.54.106915862>,
      [{2,{1,{0,nil,nil}}}],
      [],
      {cst,
          {3,
           {1,
            {curve,1,nurbs,"Linear1",
                {array,5,10,undefined,
                    {{cv,{-1.0,0.1,0.0},
                         {ctrlp,{-1.0,0.0,0.0},0.5},
                         {ctrlp,{1.0,0.0,0.0},0.5},
                         nurbs,
                         {1.0,1.0,0.0},
                         1.0},
                     {cv,{-0.5,0.1,0.0},
                         {ctrlp,{-1.0,0.0,0.0},0.5},
                         none,corner,
                         {1.0,1.0,0.0},
                         1.0},
                     {cv,{0.0,0.1,0.0},
                         {ctrlp,{1.0,0.0,0.0},1.0},
                         {ctrlp,{-1.0,0.0,0.0},0.5},
                         corner,
                         {1.0,1.0,0.0},
                         1.0},
                     {cv,{0.0,0.1,0.5},
                         {ctrlp,
                             {0.7071067811865475,0.0,0.7071067811865475},
                             0.7071067811865476},
                         {ctrlp,{0.0,0.0,-1.0},0.5},
                         corner,
                         {1.0,1.0,0.0},
                         1.0},
                     {cv,{0.5,0.1,0.5},
                         {ctrlp,
                             {0.7071067811865475,0.0,0.7071067811865475},
                             0.7071067811865476},
                         {ctrlp,{-1.0,0.0,0.0},0.5},
                         corner,
                         {1.0,1.0,0.0},
                         1.0},
                     undefined,undefined,undefined,undefined,undefined}},
                {array,4,10,undefined,
                    {{segment,0,1},
                     {segment,1,2},
                     {segment,2,3},
                     {segment,3,4},
                     undefined,undefined,undefined,undefined,undefined,
                     undefined}},
                6,false,true,tangent,
                [{cp,{-1.0,0.1,0.0},
                     0.0,
                     {6.035001918489703e-4,2.89102826988864e-14,
                      -0.9999998178937427},
                     {0.9999998178937426,1.1577942288399038e-16,
                      6.035001918489702e-4},
                     {-1.3322676295501893e-16,1.0,2.89102075612391e-14}},
                 {cp,{-0.8801359953703705,0.10000000000000002,
                      7.233796296296297e-5},
                     0.11986402645761879,
                     {0.0025188836967441554,2.891045142943259e-14,
                      -0.9999968276074291},
                     {0.999996827607429,6.04048898119311e-17,
                      0.002518883696744155},
                     {-1.3322676295501893e-16,1.0,2.89102075612391e-14}},
                 {cp,{-0.7702546296296298,0.10000000000000002,
                      5.787037037037037e-4},
                     0.22974655893350332,
                     {0.008946648116488053,1.521591707801471e-14,
                      -0.9999599779428574},
                     {0.9999599779428573,-6.601474898902074e-17,
                      0.008946648116488052},
                     {-7.011934892369418e-17,1.0,1.5215898716441635e-14}},
                 {cp,{-0.669921875,0.1,0.001953125},
                     0.3300887269660369,
                     {0.021143308721553438,8.806376947389175e-16,
                      -0.9997764552620277},
                     {0.9997764552620277,-1.448668069267465e-16,
                      0.021143308721553438},
                     {1.2621482806264903e-16,1.0,8.835037964385562e-16}},
                 {cp,{-0.5787037037037037,0.09999999999999999,
                      0.0046296296296296285},
                     0.4213461565357595,
                     {0.0407654192301747,-1.3289498608657346e-14,
                      -0.9991687448048944},
                     {0.9991687448048944,0.0,0.0407654192301747},
                     {5.417519821407401e-16,1.0,-1.3278451643898551e-14}},
                 {cp,{-0.496166087962963,0.1,0.009042245370370367},
                     0.5040016414707691,
                     {0.06993901883730794,4.8019844680941475e-15,
                      -0.9975512686794974},
                     {0.9975512686794973,8.827341237421215e-17,
                      0.06993901883730792},
                     {-4.239033366750604e-16,1.0,4.784051942475684e-15}},
                 {cp,{-0.421875,0.1,0.015624999999999998},
                     0.5785838002571345,
                     {0.11132828538693379,4.225324576871482e-15,
                      -0.9937836851512534},
                     {0.9937836851512533,-9.797223030231444e-17,
                      0.11132828538693378},
                     {-3.730349362740523e-16,1.0,4.209965709378592e-15}},
                 {cp,{-0.3553964120370371,0.09999999999999999,
                      0.024811921296296287},
                     0.6456941733782381,
                     {0.1680811385619649,-1.000438492580594e-14,
                      -0.9857731639985507},
                     {0.9857731639985506,1.0893846164304924e-16,
                      0.16808113856196488},
                     {1.5741597969266176e-15,1.0,-9.880364682837279e-15}},
                 {cp,{-0.29629629629629634,0.10000000000000002,
                      0.037037037037037035},
                     0.7060454545199294,
                     {0.24342583378774083,8.08992339672232e-15,
                      -0.9699195139003768},
                     {0.9699195139003768,1.2098550163585668e-16,
                      0.24342583378774083},
                     {-2.0866425470617265e-15,1.0,7.817123571828261e-15}},
                 {cp,{-0.244140625,0.1,0.052734375},
                     0.7605121458779583,
                     {0.3395076921352739,-2.2495215973050015e-15,
                      -0.9406032782108407},
                     {0.9406032782108406,-1.3347003193232925e-16,
                      0.3395076921352738},
                     {8.892722354879305e-16,1.0,-2.0705932863206046e-15}},
                 {cp,{-0.19849537037037032,0.1,0.07233796296296299},
                     0.8101890009638568,
                     {0.4550577841940816,0.0,-0.8904619099345983},
                     {0.8904619099345983,0.0,0.4550577841940816},
                     {0.0,1.0,0.0}},
                 {cp,{-0.1589265046296296,0.1,0.09628182870370372},
                     0.856438366825665,
                     {0.5824484617281076,0.0,-0.8128676334007655},
                     {0.8128676334007655,0.0,0.5824484617281076},
                     {0.0,1.0,0.0}},
                 {cp,{-0.125,0.1,0.125},
                     0.9008876759202695,
                     {0.7038331911018929,-1.9956858201679207e-15,
                      -0.7103652856828847},
                     {0.7103652856828847,1.5664496694148627e-16,
                      0.7038331911018929},
                     {1.2933547725534111e-15,1.0,-1.5279178547293438e-15}},
                 {cp,{-0.09599247685185187,0.10000000000000002,
                      0.15863715277777776},
                     0.9453049523584519,
                     {0.7914264862155848,5.7917520452456275e-15,
                      -0.6112643592721998},
                     {0.6112643592721997,0.0,0.7914264862155846},
                     {-4.583745970200673e-15,1.0,3.5402916030005203e-15}},
                 {cp,{-0.07002314814814818,0.1,0.1961805555555555},
                     0.9909548496798639,
                     {0.835623850811847,-6.554947667328161e-15,
                      -0.5493020844256647},
                     {0.5493020844256647,-1.4926586908380337e-16,
                      0.835623850811847},
                     {5.5594626646642325e-15,1.0,-3.475916296645923e-15}},
                 {cp,{-0.04492187500000007,0.1,0.23632812499999992},
                     1.0383035692608034,
                     {-0.8456313850566626,3.3539462570136323e-14,
                      0.533767328156333},
                     {0.533767328156333,-1.438222111714064e-16,
                      0.8456313850566626},
                     {-2.843878978462697e-14,-1.0,...}},
                 {cp,{-0.01851851851851862,0.09999999999999999,
                      0.2777777777777776},
                     1.0874483650065028,
                     {-0.8273559558129121,-9.661628373058788e-15,
                      0.561677952550127},
                     {0.561677952550127,0.0,...},
                     {7.993605777301204e-15,...}},
                 {cp,{0.01135706018518504,0.1,0.31922743055555536},
                     1.1385426300298842,
                     {-0.7803285914066049,2.7239312162272765e-15,...},
                     {0.6253697221911083,...},
                     {...}},
                 {cp,{0.04687499999999979,0.1,0.3593749999999998},
                     1.1921462808475785,
                     {-0.7018594509076441,...},
                     {...},...},
                 {cp,{0.09020543981481452,0.1,...},
                     1.2494789426267052,{...},...},
                 {cp,{0.1435185185185181,...},1.3125165695479564,...},
                 {cp,{...},...},
                 {cp,...},
                 {...}|...],
                1.6789962282627842,
                {none,none},
                none,[],5,0},
            nil,
            {2,
             {curve,2,linear,"Linear2",
                 {array,4,10,undefined,
                     {{cv,{0.5,0.1,1.0},
                          {ctrlp,{0.0,0.0,-1.0},0.5},
                          {ctrlp,{0.0,0.0,1.0},0.5},
                          linear,
                          {1.0,1.0,0.0},
                          1.0},
                      {cv,{0.5,0.1,1.5},
                          {ctrlp,{0.0,0.0,-1.0},0.5},
                          none,corner,
                          {1.0,1.0,0.0},
                          1.0},
                      {cv,{0.5,0.1,2.0},
                          {ctrlp,{0.0,0.0,1.0},1.0},
                          {ctrlp,{0.0,0.0,-1.0},0.5},
                          corner,
                          {1.0,1.0,0.0},
                          1.0},
                      {cv,{1.0,0.1,2.0},
                          {ctrlp,
                              {0.7071067811865475,0.0,0.7071067811865475},
                              0.7071067811865476},
                          {ctrlp,{-1.0,0.0,0.0},0.5},
                          corner,
                          {1.0,1.0,0.0},
                          1.0},
                      undefined,undefined,undefined,undefined,undefined,
                      undefined}},
                 {array,3,10,undefined,
                     {{segment,0,1},
                      {segment,1,2},
                      {segment,2,3},
                      undefined,undefined,undefined,undefined,undefined,
                      undefined,undefined}},
                 6,false,true,tangent,
                 [{cp,{0.5,0.1,1.0},
                      0.0,
                      {-1.0,0.0,0.0},
                      {0.0,0.0,1.0},
                      {0.0,-1.0,0.0}},
                  {cp,{0.5,0.1,1.5},
                      0.5,
                      {-1.0,0.0,0.0},
                      {0.0,0.0,1.0},
                      {0.0,-1.0,0.0}},
                  {cp,{0.5,0.1,2.0},
                      1.0,
                      {-0.7071067811865475,0.0,0.7071067811865475},
                      {0.7071067811865475,0.0,0.7071067811865475},
                      {0.0,-1.0,0.0}},
                  {cp,{1.0,0.1,2.0},
                      1.5,
                      {0.0,0.0,1.0},
                      {1.0,0.0,0.0},
                      {0.0,-1.0,0.0}}],
                 1.5,
                 {none,none},
                 none,[],4,0},
             nil,
             {3,
              {curve,3,linear,"Linear3",
                  {array,3,10,undefined,
                      {{cv,{-1.0,0.1,1.0},
                           {ctrlp,{0.0,0.0,-1.0},0.5},
                           {ctrlp,{0.0,0.0,1.0},0.5},
                           linear,
                           {1.0,1.0,0.0},
                           1.0},
                       {cv,{-1.0,0.1,1.5},
                           {ctrlp,{0.0,0.0,-1.0},0.5},
                           none,corner,
                           {1.0,1.0,0.0},
                           1.0},
                       {cv,{-0.5,0.1,1.5},
                           {ctrlp,
                               {0.7071067811865475,0.0,0.7071067811865475},
                               0.7071067811865476},
                           {ctrlp,{-1.0,0.0,0.0},0.5},
                           corner,
                           {1.0,1.0,0.0},
                           1.0},
                       undefined,undefined,undefined,undefined,undefined,
                       undefined,undefined}},
                  {array,2,10,undefined,
                      {{segment,0,1},
                       {segment,1,2},
                       undefined,undefined,undefined,undefined,undefined,
                       undefined,undefined,undefined}},
                  6,false,true,tangent,
                  [{cp,{-1.0,0.1,1.0},
                       0.0,
                       {-1.0,0.0,0.0},
                       {0.0,0.0,1.0},
                       {0.0,-1.0,0.0}},
                   {cp,{-1.0,0.1,1.5},
                       0.5,
                       {-0.7071067811865475,0.0,0.7071067811865475},
                       {0.7071067811865475,0.0,0.7071067811865475},
                       {0.0,-1.0,0.0}},
                   {cp,{-0.5,0.1,1.5},
                       1.0,
                       {0.0,0.0,1.0},
                       {1.0,0.0,0.0},
                       {0.0,-1.0,0.0}}],
                  1.0,
                  {none,none},
                  none,[],3,0},
              nil,nil}}}},
          {0,nil},
          body,
          [{1,{1,{0,nil,nil}}},
           {2,{1,{0,nil,nil}}},
           {3,{1,{0,nil,nil}}},
           {2,{1,{0,nil,nil}}}],
          4,1,none,none,none,none,none,
          {one,{1611,963636,278027}},
          none,none,none,none,
          {{curve,body},{to_curve,linear}},
          none,none},
      [{3,
        {curve,3,linear,"Linear3",
            {array,3,10,undefined,
                {{cv,{-1.0,0.1,1.0},
                     {ctrlp,{0.0,0.0,-1.0},0.5},
                     {ctrlp,{0.0,0.0,1.0},0.5},
                     linear,
                     {1.0,1.0,0.0},
                     1.0},
                 {cv,{-1.0,0.1,1.5},
                     {ctrlp,{0.0,0.0,-1.0},0.5},
                     none,corner,
                     {1.0,1.0,0.0},
                     1.0},
                 {cv,{-0.5,0.1,1.5},
                     {ctrlp,
                         {0.7071067811865475,0.0,0.7071067811865475},
                         0.7071067811865476},
                     {ctrlp,{-1.0,0.0,0.0},0.5},
                     corner,
                     {1.0,1.0,0.0},
                     1.0},
                 undefined,undefined,undefined,undefined,undefined,undefined,
                 undefined}},
            {array,2,10,undefined,
                {{segment,0,1},
                 {segment,1,2},
                 undefined,undefined,undefined,undefined,undefined,undefined,
                 undefined,undefined}},
            6,false,true,tangent,
            [{cp,{-1.0,0.1,1.0},
                 0.0,
                 {-1.0,0.0,0.0},
                 {0.0,0.0,1.0},
                 {0.0,-1.0,0.0}},
             {cp,{-1.0,0.1,1.5},
                 0.5,
                 {-0.7071067811865475,0.0,0.7071067811865475},
                 {0.7071067811865475,0.0,0.7071067811865475},
                 {0.0,-1.0,0.0}},
             {cp,{-0.5,0.1,1.5},
                 1.0,
                 {0.0,0.0,1.0},
                 {1.0,0.0,0.0},
                 {0.0,-1.0,0.0}}],
            1.0,
            {none,none},
            none,[],3,0}},
       {2,
        {curve,2,linear,"Linear2",
            {array,4,10,undefined,
                {{cv,{0.5,0.1,1.0},
                     {ctrlp,{0.0,0.0,-1.0},0.5},
                     {ctrlp,{0.0,0.0,1.0},0.5},
                     linear,
                     {1.0,1.0,0.0},
                     1.0},
                 {cv,{0.5,0.1,1.5},
                     {ctrlp,{0.0,0.0,-1.0},0.5},
                     none,corner,
                     {1.0,1.0,0.0},
                     1.0},
                 {cv,{0.5,0.1,2.0},
                     {ctrlp,{0.0,0.0,1.0},1.0},
                     {ctrlp,{0.0,0.0,-1.0},0.5},
                     corner,
                     {1.0,1.0,0.0},
                     1.0},
                 {cv,{1.0,0.1,2.0},
                     {ctrlp,
                         {0.7071067811865475,0.0,0.7071067811865475},
                         0.7071067811865476},
                     {ctrlp,{-1.0,0.0,0.0},0.5},
                     corner,
                     {1.0,1.0,0.0},
                     1.0},
                 undefined,undefined,undefined,undefined,undefined,undefined}},
            {array,3,10,undefined,
                {{segment,0,1},
                 {segment,1,2},
                 {segment,2,3},
                 undefined,undefined,undefined,undefined,undefined,undefined,
                 undefined}},
            6,false,true,tangent,
            [{cp,{0.5,0.1,1.0},
                 0.0,
                 {-1.0,0.0,0.0},
                 {0.0,0.0,1.0},
                 {0.0,-1.0,0.0}},
             {cp,{0.5,0.1,1.5},
                 0.5,
                 {-1.0,0.0,0.0},
                 {0.0,0.0,1.0},
                 {0.0,-1.0,0.0}},
             {cp,{0.5,0.1,2.0},
                 1.0,
                 {-0.7071067811865475,0.0,0.7071067811865475},
                 {0.7071067811865475,0.0,0.7071067811865475},
                 {0.0,-1.0,0.0}},
             {cp,{1.0,0.1,2.0},
                 1.5,
                 {0.0,0.0,1.0},
                 {1.0,0.0,0.0},
                 {0.0,-1.0,0.0}}],
            1.5,
            {none,none},
            none,[],4,0}},
       {1,
        {curve,1,linear,"Linear1",
            {array,5,10,undefined,
                {{cv,{-1.0,0.1,0.0},
                     {ctrlp,{-1.0,0.0,0.0},0.5},
                     {ctrlp,{1.0,0.0,0.0},0.5},
                     linear,
                     {1.0,1.0,0.0},
                     1.0},
                 {cv,{-0.5,0.1,0.0},
                     {ctrlp,{-1.0,0.0,0.0},0.5},
                     none,corner,
                     {1.0,1.0,0.0},
                     1.0},
                 {cv,{0.0,0.1,0.0},
                     {ctrlp,{1.0,0.0,0.0},1.0},
                     {ctrlp,{-1.0,0.0,0.0},0.5},
                     corner,
                     {1.0,1.0,0.0},
                     1.0},
                 {cv,{0.0,0.1,0.5},
                     {ctrlp,
                         {0.7071067811865475,0.0,0.7071067811865475},
                         0.7071067811865476},
                     {ctrlp,{0.0,0.0,-1.0},0.5},
                     corner,
                     {1.0,1.0,0.0},
                     1.0},
                 {cv,{0.5,0.1,0.5},
                     {ctrlp,
                         {0.7071067811865475,0.0,0.7071067811865475},
                         0.7071067811865476},
                     {ctrlp,{-1.0,0.0,0.0},0.5},
                     corner,
                     {1.0,1.0,0.0},
                     1.0},
                 undefined,undefined,undefined,undefined,undefined}},
            {array,4,10,undefined,
                {{segment,0,1},
                 {segment,1,2},
                 {segment,2,3},
                 {segment,3,4},
                 undefined,undefined,undefined,undefined,undefined,undefined}},
            6,false,true,tangent,
            [{cp,{-1.0,0.1,0.0},
                 0.0,
                 {0.0,0.0,-1.0},
                 {1.0,0.0,0.0},
                 {0.0,1.0,0.0}},
             {cp,{-0.5,0.1,0.0},
                 0.5,
                 {0.0,0.0,-1.0},
                 {1.0,0.0,0.0},
                 {0.0,1.0,0.0}},
             {cp,{0.0,0.1,0.0},
                 1.0,
                 {0.7071067811865475,0.0,-0.7071067811865475},
                 {0.7071067811865475,0.0,0.7071067811865475},
                 {0.0,1.0,0.0}},
             {cp,{0.0,0.1,0.5},
                 1.5,
                 {0.7071067811865474,0.0,-0.7071067811865474},
                 {0.7071067811865475,0.0,0.7071067811865475},
                 {0.0,1.0,0.0}},
             {cp,{0.5,0.1,0.5},
                 2.0,
                 {0.0,0.0,1.0},
                 {1.0,0.0,0.0},
                 {0.0,-1.0,0.0}}],
            2.0,
            {none,none},
            none,[],5,0}}]],
     [{file,"curve_sel.erl"},{line,512}]},
{curve_sel,map,2,[{file,"curve_sel.erl"},{line,119}]},
{curve_cmds,convert_curve,2,[{file,"curve_cmds.erl"},{line,1072}]},
{wpc_curves,raw_command,4,[{file,"wpc_curves.erl"},{line,867}]},
{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}]}]



RE: [W.I.P.] Curve Tool plugin - micheus - 01-30-2021

Oh boy!

Quote:4. Wings3d Crash(curve plugin geometry window is missing)
That's why I use a separated Geometry window for Curve Tools. Smile

I can't reproduce the problem.
In fact, by analysing the log the #cst{} shows me there were a repeated object Id in the selection property:
Code:
...
          body,
          [{1,{1,{0,nil,nil}}},
           {2,{1,{0,nil,nil}}},
           {3,{1,{0,nil,nil}}},
           {2,{1,{0,nil,nil}}}],  <<====
         ...

That should not happen. So, I suspect you may have had used the Undo option in some point of the scene life before the crash. Rolleyes
Since Wings3D is managing the Undo/Redo and there is not explicit way to know when that just happened I do my best to keep the both states synchronised.

In this particular case I'm doing a workaround to prevent it to happen again.

---
No update yet. I just noticed sometimes the TNB vectors for linear curve is not correct. Undecided


RE: [W.I.P.] Curve Tool plugin - tkbd - 01-31-2021

micheus,Thanks for checked to my report.
Yes,it is.
The entire application does not crash, so we can rescue the data of working on. Smile

And,I was looking for a simple condition to reduce the error log size.
I tried this process by some times for inspection,but some cases that didn't occured the bug. Sad
I will report if a new clue would found.
--------
tkbd