Jump to content
3DCoat Forums

kritskiy

Member
  • Posts

    71
  • Joined

  • Last visited

Posts posted by kritskiy

  1. On 3/1/2024 at 7:12 PM, digman said:

    If you have not tried this.. if it allows you to click on the 2023 version and go update. It will load the other page and 2024 will be available to purchase.

    Do you mean that I have to buy an upgrade from 2022 to 2023 first and then buy another upgrade for 2024..?

    sales@pilgway.com have never wrote me back (been 2 weeks)

     

    Carlosan, 

    Do you mean I should select this "Upgrade to 2023" in the Upgrade menu but 2024 will be available to download / use too?

  2. Hi,

    I've sent this question to sales@3dcoat.com 3 days ago but didn't get an answer, maybe someone here can help. We have a 1 floating permanent 3DC 2022 Enterprise license that has expired in January and we want to get another year of updates. When we click Upgrade the only option we're getting is 3DC 2023, not 2024. How do we get the 2024 upgrade?

    Thanks,
    Serguei

     

    image.png.5868f2f177293599003217f488148c6d.png

  3. Thank you for fixing the scripts!

    I have a small issue though: every time I run any boolean command I see this message in the bottom of the screen:

    3D-COAT_2021.B54(GL64)-06-14-10-25-49.png.da452c9d5c56d0f516f78056442a07ae.png

     

    The code is super simple:

    void main(){
      Vox vox;
      vox.subtractFrom('target');
      // the same message if I use cmd("$SubtractFrom_target");
    };

     

    The commands run fine though. The log is empty.

    Also when I copy the commands to clipboard it gives two options cmd() and ui() but ui() doesn't seem to work? I tried to use it to clone an object (ui("$CloneVoxTree");) to see the difference and got this error message:

    3D-COAT_2021.B54(GL64)-06-14-10-27-16.png.351ebb0a83d1a5fc2d0a1225dd15d5e6.png

  4. 19 hours ago, Andrew Shpagin said:

    30.05.21 B50

    - Scripts are working correctly with the VoxTree RMB menu.

    Thank you for the fix! Unfortunately not everything is working: for example I was subtracting with this command in 4.9:

    cmd("$SubtractFrom_VolumeName")

    but nothing happens when I use it in the 2021.

    I also decided to randomly try Vox.subtractFrom('VolumeName'); — and surprisingly this worked in v4.9.72, but not in the 2021.b50

    Vox is a very interesting class but I can't find full documentation on it: does it exist somewhere?

  5. I didn't touch smart materials and all that but for the moment this sounds like something doable. with a simple script. could you please write step by step what you're trying to achieve? Like command1, command2, etc: it's always difficult to understand someone else's workflow :)

  6. I guess a solution would be to have a specific pattern for a material name in the volume name and check against it: something like Volume_mat_Mat_Name, a regex would look for mat_*, something like (?<=_mat_)(.*), but I'm not sure AngelScript in 3DC supports regex

    • Like 1
  7. 12 minutes ago, Carlosan said:

    Hi

    Thx for sharing it

    Using 4.9.33

    When i use script twice or more over the same mesh, suffix was added but previously is not deleted.

    suffix.jpg

    I think you've changed an object shader between the runs?

    It only checks a name against the current shader, so if you have an object Volume with a shader Cartoon_Orange, after adding a suffix you'll get Volume_Cartoon_Orange. Next time you run the script, it'll check if there's Cartoon_Orange in the Volume_Cartoon_Orange, and if there is, it won't change it. But if you change the shader to Cartoon_Blue, the script will check if there's Cartoon_Blue in Volume_Cartoon_Orange: it's not there, so the suffix will be added to the whole thing: Volume_Cartoon_Orange_Cartoon_Blue.

    • Thanks 1
  8. Update.

    Rename children will now adds _inst_ to instanced volumes (only if the had inst in their names already)

    Another script, Add Material Name as Suffix will add a shader name to an object as name suggests

    add_material_as_suffix.cpp

    rename_children.cpp

    Note that currently there's a bug where scripts will work on an object under a cursor. Make sure you hover your cursor over nothing before running them.

    • Like 1
  9. My meshes are keep getting destroyed :( this happens quite often, I think it started on a stable 4.8.X and still continues (the video is from 4.8.30). Never had these issues on 4.7. I don't know the exact steps to reproduce, but this happens mostly after undoing something.

    Here I noticed some holes, run to voxel / remesh with different outcomes.

     

    Here after an undo the mesh has covered with holes. For this one I'm attaching a scene

    image.png.04402b120bcacaf365da740bede6cad5.png

    12_001.3b

    • Like 1
  10. Ok here's another version. This is fun!

    1) if a layer has children, children will get parent name + counter

    2) if a layer has no children and its parent is Root all layers will be renamed to volume_001, volume_002, etc

    3) if a layer has no children but has a different layer as a parent, parent layer will be selected and children will be renamed the same as in 1)

    // globals
    int count;
    int padding = 3; // how many symbols in the counter (with padding = 3, 1 will become 001, 2 - 002, etc)
    string original_name;
    
    void main() {
        count = 0; // resetting counter
        original_name = GetCurVolume(); // current layer
    
        Vox v;
        string global_name = "volume";
    
    
        // if current layer has children, start renaming them
        if (v.count() > 0) {
          v.forEach("rename");}
        else {
          // if there're no children, selecting the parent layer
          v.parent();
    
          //and getting its name
          string parent_name = GetCurVolume();
    
          // if parent name is the same as the original name we're at Root, globally renaming everything
          if (parent_name == original_name) {
            original_name = global_name;
            v.forRootEach("rename");
          } else {
            // if parent has a different name, renaming all its children
            original_name = parent_name;
            v.forEach("rename");
          }
        }
    }
    
    void rename() {
      count++;
      Vox child;
      RenameCurVolume(original_name + "_" + formatInt(count,"0",padding));
      child.forEach("rename");
    }

    There's an interesting... thing. I assigned this script to Shift+1 and it went CRAZY starting renaming both parent layer and children with huge counters. I wonder what's happening there?

    image.png.efbc5529cc2b4c26ce170893166e0db7.png

  11. Hi, I'm having a very unstable behaviour when I try to call for Subtract from a script. For instance something simple like this

    void main(){
      cmd("$SubtractFrom_delta");
    };

    that's supposed to subtract the active layer from a layer 'delta' but in my case it completely removes a different layer ('charlie') in the attached video. In new scenes it works like it should but it's like with time a scene degrades or something and this one and similar scripts start to act on completely random layers. Does anyone have any ideas about what's happening?

  12. On 12/17/2019 at 10:23 AM, Fess1001 said:

    2)Странное явление, и уже давно, Quick Access shortcuts не всегда сохраняются правильно, и пре перезапуске/переустановки 3д коата начинают разделять свою команду с каким-то дугим shortcut. Не всегда те же самые, но очень часто мои любимые комманды в воксельном режиме "move", "carve", "vox hide", "cut", таким образом ломаются, и их надо переустанавливать..

    ДА. И это адски бесит. Видел топик, что эта ошибка была исправлена в 4.9.9, но у меня она появляется до сих пор в 4.9.17 :(

  13. Sorry for posting a lot, but Edit button disapears after several hours, so... Anyway, this will also rename all the nested children:

    int count = 0;
    string original_name = "";
    
    void main() {
        count = 0;
        original_name = GetCurVolume();
        Vox v;
        v.forEach("rename");
    }
    
    void rename() {
      count++;
      Vox v;
      RenameCurVolume(original_name + "_" + formatInt(count,"0",3));
      v.forEach("rename");
    }

    image.png.b7dfca83d3d37cc6abf0f70d2e65b8af.png

     

    P.S. I wonder if it's possible to pass values to forEach? don't want to put contaminate the global scope...

  14. ...a follow up. This will only rename child layers of the current layer, no need to hide any other layer:

    void main() {
        Vox  v;
        string x = GetCurVolume();
        for ( int i = 0; i < v.count(); ++i ) {
            v.at( i ).rename( x + "_" + formatInt(i, '0', 3) ).parent();
        }
    }

    I'm not sure why you were selecting the root object in your code, I think it's more clear this way or am I missing something?

×
×
  • Create New...