Search Unity

  1. Megacity Metro Demo now available. Download now.
    Dismiss Notice
  2. Unity support for visionOS is now available. Learn more in our blog post.
    Dismiss Notice

TriLib - Model Loading Package

Discussion in 'Assets and Asset Store' started by rickomax, Jun 21, 2017.

  1. cmod

    cmod

    Joined:
    Mar 7, 2016
    Posts:
    2
    Hey. I've been using version 2.0.11 for a while now and it has been working fine with GLB import. I've tried updating to the newest version (2.0.17) and now the models that worked fine with .11 aren't importing correctly. I have a custom shader/material creator so the problem must be with the geometry, the only thing I'm loading with your asset. Here are the screenshots:
    Old version:
    image_2021-04-02_19-17-23.png
    New version:
    image_2021-04-02_19-23-45.png

    It seems like it has problems identifying hard and soft edges correctly. The weird thing is it renders one part of the building fine with the new version, but just one part, everything else is like on the screenshot. I'm using URP if that makes a difference somehow.
     
    Last edited: Apr 2, 2021
    tomekkie2 likes this.
  2. Rene_S

    Rene_S

    Joined:
    Aug 4, 2020
    Posts:
    2
    Hi,

    great product so far and the best model importer i found for Unity.

    But unfortunately i encountered a problem. We save our content to the device and obscure the names and file format to the user. So every file has a hashed name and no file extension.

    I use the LoadModelFromStream(stream,filename,fileextension,...) function where i can pass in the file format.

    In the Editor and on iOS it works without a problem but on Android i get a Exception on every Model i load.


    Code (CSharp):
    1. 2021.04.08 16:14:49.642 22160 22176 Error Unity An error occurred while loading your Model: System.ArgumentOutOfRangeException: Length cannot be less than zero.
    2. 2021.04.08 16:14:49.642 22160 22176 Error Unity Parameter name: length
    3. 2021.04.08 16:14:49.642 22160 22176 Error Unity   at System.String.Substring (System.Int32 startIndex, System.Int32 length) [0x00000] in <00000000000000000000000000000000>:0
    4. 2021.04.08 16:14:49.642 22160 22176 Error Unity   at TriLibCore.ReaderBase.PostProcessModel (TriLibCore.Interfaces.IRootModel model) [0x00000] in <00000000000000000000000000000000>:0
    5. 2021.04.08 16:14:49.642 22160 22176 Error Unity   at TriLibCore.Gltf.Reader.GltfReader.ReadStream (System.IO.Stream stream, TriLibCore.AssetLoaderContext assetLoaderContext, System.String filename, System.Action`2[T1,T2] onProgress) [0x00000] in <00000000000000000000000000000000>:0
    6. 2021.04.08 16:14:49.642 22160 22176 Error Unity   at TriLibCore.AssetLoader.LoadModel (TriLibCore.AssetLoaderContext assetLoaderContext) [0x00000] in <00000000000000000000000000000000>:0
    7. 2021.04.08 16:14:49.642 22160 22176 Error Unity   at System.Action`1[T].Invoke (T obj) [0x00000] in <00000000000000000000000000000000>:0
    8. 2021.04.08 16:14:49.642 22160 22176 Error Unity   at TriLibCore.General.ContextualizedAction`1[T].Invoke () [0x00000] in <00000000000000000000000000000000>:0
    9. 2021.04.08 16:14:49.642 22160 22176 Error Unity   at TriLibCore.Utils.ThreadUtils+<>c__DisplayC
    10.  
     
  3. tomekkie2

    tomekkie2

    Joined:
    Jul 6, 2012
    Posts:
    972
    Is this webgl demo scene with drag&drop functionalities and webgl plugins included somewhere inside asset?

    I can not see the drag&drop functionality in the later demo:
    https://ricardoreis.net/trilib/trilib2demo/modelviewer/
    Is the drag&drop functionality included in the latest version of the asset?
     
    Last edited: Apr 30, 2021
  4. Futahei

    Futahei

    Joined:
    Sep 14, 2017
    Posts:
    4
    Hello!
    I'm always using this very useful Asset.

    To enable colliders for the loaded models, I set
    GenerateColliders
    true.
    But it has no effect. Is there any problem?

    Code (CSharp):
    1. var assetLoaderOptions = AssetLoader.CreateDefaultLoaderOptions();
    2. var webRequest = AssetDownloader.CreateWebRequest(url);
    3. assetLoaderOptions.GenerateColliders = true;
    4. assetLoaderOptions.ConvexColliders = true;
    5. AssetDownloader.LoadModelFromUri(webRequest, OnLoad, OnMaterialsLoad, OnProgress, OnError, root, assetLoaderOptions, null, ext);
     
    Last edited: Apr 21, 2021
  5. tomekkie2

    tomekkie2

    Joined:
    Jul 6, 2012
    Posts:
    972
    Hi,
    I would like to import a number of .fbx, .obj and zipped obj files from local file system to WebGL player and then access these files in WebGL and upload them to web server.

    Or upload them to the server once the import to WebGL starts.

    How could I do that?
     
    Last edited: Apr 28, 2021
  6. Larsek

    Larsek

    Joined:
    Apr 10, 2019
    Posts:
    2
    Hi @rickomax!
    We've recently encountered an error in StandaloneFileBrowser.mm while building an iOS project with TriLib 2.0.12b on MacOS 11.2.3 with XCode 12.5 using Unity 2020.3.3f/4f:

    upload_2021-4-29_14-21-45.png

    Downgrading to XCode 12.4 fixed it for us. Would be much appreciated if you could take a look at this.

    Thanks!
     
    Last edited: Apr 29, 2021
  7. tomekkie2

    tomekkie2

    Joined:
    Jul 6, 2012
    Posts:
    972
    Hi,
    I have tried to upload a simple .fbx using this demo:
    https://ricardoreis.net/trilib/trilib2demo/modelviewer/

    But it works only on local files, it fails if I put here a remote file.
    I am getting a cross-origin error, so there is no way to test it on an arbitrary user file.

    Does loading from url work only on zip files?
    The message says zips are recommended, zip is also used in a wiki page url example:
    var webRequest = AssetDownloader.CreateWebRequest("[URL]https://ricardoreis.net/trilib/demos/avatars/003/003_visemes.zip[/URL]");


    Is this a right place to ask about the asset?
    I can't see any question here answered after 25th of March, which is more than month ago.
     
    Last edited: Apr 30, 2021
  8. tomekkie2

    tomekkie2

    Joined:
    Jul 6, 2012
    Posts:
    972
    Have you solved this problem?
    My fbx model also looks similar, when imported to the webdemo here:
    https://ricardoreis.net/trilib/trilib2demo/modelviewer/
    trilib.png
    The same kind of errors.
    I like the general look and approach of this asset, but I am not sure if I will have much use of it.
     
    Last edited: Apr 30, 2021
  9. Larsek

    Larsek

    Joined:
    Apr 10, 2019
    Posts:
    2
    Hi @rickomax,
    another problem we've encountered on iOS with TriLib 2.0.12b:
    Loading an FBX from file sometimes results in a model without any assigned textures - this occurs about 50% of the time, sometimes it gets loaded without a problem. The model is just completely magenta-colored. There is no exception when loading the model, the OnMaterialsLoad-callback is executed correctly, so I'm not sure what information could be of interest to solve this. Please let me know what additional info you might need.

    Thanks!
     
    tomekkie2 likes this.
  10. bx142536

    bx142536

    Joined:
    Nov 27, 2017
    Posts:
    1
    I have a 1G model to load, can Trilib 2 do this?
     
  11. maxOculavis

    maxOculavis

    Joined:
    Apr 27, 2018
    Posts:
    8
    Hello @rickomax , we love your Product, but since we also used AssImp before, we know it can reproduce the internal Objects/Group of an .obj-File as individual Unity GameObjects.
    Is there a possibility wo specify an option which will enable the same result ind Trilib2?
     
    Last edited: May 10, 2021
  12. unity_K_nDtRZtMCIVjg

    unity_K_nDtRZtMCIVjg

    Joined:
    Feb 4, 2021
    Posts:
    8
    Hi @rickomax.
    1. Does TriLib 1.9.0b - HotFix supports WebGL in Unity 2019.4.18 LTS? I have an error on startup, but it works fine in 2018.4 LTS.
    Code (CSharp):
    1. Invoking error handler due to
    2. Uncaught abort(-1) at Error
    3.     at jsStackTrace (webgl.wasm.framework.unityweb:8:15620)
    4.     at stackTrace [Object.stackTrace] (webgl.wasm.framework.unityweb:8:15791)
    5.     at Object.onAbort (http://localhost:60767/Build/UnityLoader.js:4:11199)
    6.     at abort (webgl.wasm.framework.unityweb:8:491160)
    7.     at __ZNSt3__212basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEE6__initEPKcj (webgl.wasm.framework.unityweb:8:51894)
    8.     at __GLOBAL__sub_I_DXFLoader_cpp (<anonymous>:wasm-function[41869]:0xcbacd2)
    9.     at blob:http://localhost:60767/71fc12d8-0a60-4c2a-9e34-c0d0c6b51515:8:407228
    10.     at func (webgl.wasm.framework.unityweb:8:42424)
    11.     at callRuntimeCallbacks (webgl.wasm.framework.unityweb:8:19395)
    12.     at ensureInitRuntime (webgl.wasm.framework.unityweb:8:19895)
    13.     at doRun (webgl.wasm.framework.unityweb:8:490476)
    14.     at run (webgl.wasm.framework.unityweb:8:490792)
    15.     at runCaller (webgl.wasm.framework.unityweb:8:489567)
    16.     at removeRunDependency [Object.removeRunDependency] (webgl.wasm.framework.unityweb:8:21724)
    17.     at blob:http://localhost:60767/71fc12d8-0a60-4c2a-9e34-c0d0c6b51515:8:496
    18.     at doCallback (webgl.wasm.framework.unityweb:8:98971)
    19.     at done (webgl.wasm.framework.unityweb:8:99109)
    20.     at reconcile [Object.reconcile] (webgl.wasm.framework.unityweb:8:81738)
    21.     at blob:http://localhost:60767/71fc12d8-0a60-4c2a-9e34-c0d0c6b51515:8:77723
    22.     at IDBRequest.<anonymous> (blob:http://localhost:60767/71fc12d8-0a60-4c2a-9e34-c0d0c6b51515:8:79552)

    2. If it does not supports Unity 2019.4 LTS will it support it anytime soon or I need to use TriLib 2 only?
    3. Reason shy I am not using TriLib 2 because lack of Collada support. When Collada DAE loading support will be added to TriLib 2?

    Thanks
     
  13. poprev-3d

    poprev-3d

    Joined:
    Apr 12, 2019
    Posts:
    71
    In 2.0.17b big GLBs with a lot of nice textures (> 40-50mb) don't load, anyone experiences the same issue?
     
  14. shubham-dtt

    shubham-dtt

    Joined:
    Nov 6, 2020
    Posts:
    2
    Thanks for the wonderful asset!!

    I have got a basic question about interrupting the loading process... The loading of model from file/path/uri works great and the callback event are helpful to track the progress of loading process. However, I can't seem to find a way to stop the loading process after the AssetLoader.LoadModel has been issued!

    Imagine if loading a file is taking long time and user just wants to quit the process or load another model... I don't want to keep the thread running in background until it's finished.

    Any ideas on how to go about it?

    Thanks :)
     
  15. mchung123

    mchung123

    Joined:
    Jul 4, 2017
    Posts:
    38
    Hey do you support just importing .anim files at run time? I am looking for a way to load an .anim at runtime thanks!
     
  16. digiholic

    digiholic

    Joined:
    Nov 23, 2013
    Posts:
    14
    I have a series of large GLTF binary files with embedded textures. In 2.0.11 they loaded properly, but had no embedded textures. I updated to 2.0.17b to try to fix the texture importing, but now attempting to load them locks up the program, often times crashing it outright. It looks like a lot of OperationCanceledExceptions in the UniversalRPMaterialMapper:
    upload_2021-5-18_16-47-9.png

    In terms of updating, I just re-generated the asset loader options and URPMaterialMapper assets. Do I need to change anything in code to get it to function?
     
  17. rickomax

    rickomax

    Joined:
    Jun 11, 2013
    Posts:
    683
    Hi.
    Does this issue persist in the 2.1.0 version?
     
  18. rickomax

    rickomax

    Joined:
    Jun 11, 2013
    Posts:
    683
    Hi!

    Could you send me a model file for testing?
    contato@ricardoreis.net
     
  19. rickomax

    rickomax

    Joined:
    Jun 11, 2013
    Posts:
    683
    Hi!

    Drag and drop have not been implemented in TriLib 2.0 yet.
    You can only use the file-picker at the moment or roll your own JS code.
     
    tomekkie2 likes this.
  20. rickomax

    rickomax

    Joined:
    Jun 11, 2013
    Posts:
    683
    Hi!
    Collider issues have been fixed in the 2.1.0 update.
     
  21. rickomax

    rickomax

    Joined:
    Jun 11, 2013
    Posts:
    683
    Hi!
    Generally magenta-colored textures are related to the Material Mapper assigned to your TriLib settings.
    If you go to "Project Settings->TriLib" area, you can select the right Material Mapper depending on your rendering pipeline.
     
  22. rickomax

    rickomax

    Joined:
    Jun 11, 2013
    Posts:
    683
    Hi!
    If it is an FBX file, I guess the cost to load it will be pretty high since TriLib has to do many internal conversions on this format.
    gLTF2 models with this size may load, but it is not guaranteed also.
    Loading a model in runtime requires a lot of CPU power and memory.
     
  23. rickomax

    rickomax

    Joined:
    Jun 11, 2013
    Posts:
    683
    Hi!

    I would upload them using your server-side code first, then download them using AssetDownloader later.

    If you need to upload the models after loading in Unity explicitly, that would require some custom code. If you need this type of custom work, please e-mail me at:
    contato@ricardoreis.net
     
    tomekkie2 likes this.
  24. rickomax

    rickomax

    Joined:
    Jun 11, 2013
    Posts:
    683
    Hi!

    This cross-origin error can be fixed if you first upload the file to your web server and then load it with TriLib.
    Besides that, the server where the file is located could have this restriction disabled.
    That is what I used to do in TriLib 1x demo.
     
    tomekkie2 likes this.
  25. rickomax

    rickomax

    Joined:
    Jun 11, 2013
    Posts:
    683
    tomekkie2 likes this.
  26. rickomax

    rickomax

    Joined:
    Jun 11, 2013
    Posts:
    683
    Hi!
    I will add this feature to the next TriLib 2 update.
     
  27. rickomax

    rickomax

    Joined:
    Jun 11, 2013
    Posts:
    683
    Hi!

    TriLib 1.9 lacks WebGL support due to internal library conflicts. Unity uses many libraries in WebGL as statically compiled code, and TriLib also uses these libraries. If I use the library versions Unity is using, it will cause runtime errors, and if I place the internal TriLib libraries, it will cause compilation (collision) errors.

    I had some code that did some renaming in internal TriLib libraries and managed it to work, but that was a huge workaround, and with a lot of chances to break, so I decided to drop TriLib 1.9 WebGL support al all.

    Regarding TriLib 2.0, I'm already working in the DAE importer, but that should take a while until I have it ready.
     
  28. rickomax

    rickomax

    Joined:
    Jun 11, 2013
    Posts:
    683
    Hi!

    The 2.1.0 version loads textures linearly, so you should not experience these crashes anymore.
     
    poprev-3d likes this.
  29. rickomax

    rickomax

    Joined:
    Jun 11, 2013
    Posts:
    683
    Hi!

    You can set a loading timeout (in seconds) using the AssetLoaderOptions.Timeout field.
     
  30. rickomax

    rickomax

    Joined:
    Jun 11, 2013
    Posts:
    683
    Hi!

    It can't load .anim files, but I could check their structure and see if I can parse them.
     
  31. rickomax

    rickomax

    Joined:
    Jun 11, 2013
    Posts:
    683
    Hi!
    Could you test the 2.1.0 version?
     
  32. tomekkie2

    tomekkie2

    Joined:
    Jul 6, 2012
    Posts:
    972
    I have managed to import to Unity and upload to server at the same time using ajax and notify unity from javascript when the server upload is completed.

    Uploading and then downloading from server took much (multiple times) longer, while simultaneous import and upload doesn't take any longer than the file picker.
     
    Last edited: May 23, 2021
  33. unity_K_nDtRZtMCIVjg

    unity_K_nDtRZtMCIVjg

    Joined:
    Feb 4, 2021
    Posts:
    8
    Thanks. Then I will wait for DAE support. Do you have any rough estimation when it will be ready?
     
  34. digiholic

    digiholic

    Joined:
    Nov 23, 2013
    Posts:
    14
    I have run the 2.1.0 build and it seems to run way better, although it's still unable to load the largest GLTF file, but I'm still investigating if there's anything I can do to fix that.

    Another problem though, is that there seems to be an arbitrary number of extra materials being added to the object after I load them. I'm doing some code after loading to split the materials off into separate objects, and I'm not sure where these other materials are coming from and it's throwing off my count. I'm assuming that it has something to do with the material/texture mapper, but I'm not sure how I could at least get these materials to be a consistent number.

    upload_2021-5-25_15-29-17.png

    EDIT: Upon further investigation, the "old" materials are being added by my code (it errors out before they get split off into other objects), so the issue seems to be that the materials slowly trickle in after the mesh is finished loading.

    EDIT again: Okay, I think I've figured this out, it's turning the old ones into two, a normal and alpha material. This is all done slowly over time after the onLoad callback is already done. I think I just need to take my OnLoad and move it into OnMaterialsLoad instead.
     
    Last edited: May 25, 2021
  35. imaginationrabbit

    imaginationrabbit

    Joined:
    Sep 23, 2013
    Posts:
    349
    Hello- I upgraded from 1.x to 2.0

    How do I return the loaded gameObject with 2.0 like I was doing in 1.x like this?

    Code (CSharp):
    1.  
    2. var myGameObject = assetLoader.LoadFromFile(i, assetLoaderOptions, null);
    3. myGameObject.name = fileName;
    4. var custom = myGameObject.AddComponent<CustomProp>();
    Is there a way to do this with 2.0? I'm trying to get it out of AssetLoaderContext but no luck so far. I know OnLoadProp gives us the gameObject but I don't want to have to restructure all my code to use that.

    Since its Async I thought we could use it with Coroutines...waitUntilDone etc but that doesn't seem to work either.

    Thank you.
     
    Last edited: May 27, 2021
  36. digiholic

    digiholic

    Joined:
    Nov 23, 2013
    Posts:
    14
    The AssetLoaderContext has a RootGameObject property that gets you what would have been returned by the non-async versions.

    upload_2021-5-27_11-21-53.png
    https://ricardoreis.net/trilibwiki/index.php?title=Migrating_from_TriLib_1_to_TriLib_2
     
    imaginationrabbit likes this.
  37. rickomax

    rickomax

    Joined:
    Jun 11, 2013
    Posts:
    683
    Yes.
    Regarding the slowdown, I'm preparing an update to accelerate things further.
    Regarding the second material, you can change the "AlphaMaterialMode" field to change this behavior (please read the enum description)
     
  38. rickomax

    rickomax

    Joined:
    Jun 11, 2013
    Posts:
    683
    You could do something like:
    Code (CSharp):
    1. private GameObject _loadedGameObject;
    2. private Exception _exception;
    3.  
    4. private void Start() {
    5.     StartCoroutine(LoadFile());
    6. }
    7.  
    8. private IEnumerator LoadFile() {
    9.     _loadedGameObject = null;
    10.     _exception = null;
    11.     var assetLoaderOptions = AssetLoader.CreateDefaultLoaderOptions();
    12.     AssetLoader.LoadModelFromFile("path_to_my_model.fbx", null, OnMaterialsLoad, null, OnError, null, assetLoaderOptions);
    13.     while (_loadedGameObject = null) {
    14.         yield return null;
    15.     }
    16.     if (_exception == null && _loadedGameObject != null) {
    17.         //do whatever you want with the _loadedGameObject
    18.     } else {
    19.         Debug.LogError("Model not loaded");
    20.         Debug.LogError(_exception);
    21.     }
    22. }
    23.  
    24. private void OnMaterialsLoad(AssetLoaderContext assetLoaderContext) {
    25.     _lo_loadedGameObjectaded = assetLoaderContext.RootGameObject;
    26. }
    27.  
    28. private void OnError(IContextualizedError error) {
    29.     _exception = error.GetInnerException();
    30. }
     
    imaginationrabbit likes this.
  39. imaginationrabbit

    imaginationrabbit

    Joined:
    Sep 23, 2013
    Posts:
    349
    Thank you!
     
  40. digiholic

    digiholic

    Joined:
    Nov 23, 2013
    Posts:
    14
    Yep, I figured it out a bit after posting. Disabling that also stopped my bigger meshes from throwing errors, so I think the issue was that Unity itself literally could not handle the number of materials I was putting on it. I should probably fix that on my end.
     
  41. acquariusoft

    acquariusoft

    Joined:
    Nov 1, 2017
    Posts:
    4
    i have a strange problem,
    if i create an object and set its position to 0,0 it's all ok, if I load an stl file and I set localposition to 0,0 it is shown on another position.
    if I see the inspector the two objects have a position on 0,0

    upload_2021-6-1_11-22-5.png

    how can I solve this problem?

    Edit: same problem if I load the stl in the editor without code by dragging the file into the hierarchy

    Thanks!!
     

    Attached Files:

    Last edited: Jun 1, 2021
  42. imaginationrabbit

    imaginationrabbit

    Joined:
    Sep 23, 2013
    Posts:
    349
    Any tips on how to get a standard Daz model fully working with the AvatarLoader?

    The model comes in with its textures etc but animation will not work.

    I've got it working with Mixamo and MakeHuman characters but with the Daz models it just imports frozen in T-pose models that are impossible to animate etc.

    I added the Daz bone names to the "MixamoAndBipedNameHumanoidAvatarMapper" and am using it but still no luck getting it working. I added the MakeHuman bone names there and got that working but for some reason the Daz models will not work with the Animator.

    Here is a link to the Daz fbx I'm trying to get working
     
  43. Bocci

    Bocci

    Joined:
    Sep 7, 2013
    Posts:
    15
    I want to import an OBJ with trilib2 but I have an issue with the smoothing angle.
    The option AssetLoaderOptions.SmoothingAngle is not taken into account. Below you can see 2 images

    Smoothing angle = 0
    upload_2021-6-2_16-21-40.png

    Smoothing angle = 90
    upload_2021-6-2_16-22-10.png

    This is the model in Blender:
    upload_2021-6-2_16-22-48.png

    I also tried with the AssetViewer sample scene and it has the same behavior.

    Do you have any suggestions on how to improve it?
    Thanks
     
  44. rickomax

    rickomax

    Joined:
    Jun 11, 2013
    Posts:
    683
    H
    Hi!

    To enable normals generation, your model should not have any normal when exported, or you can disable the normal importing by disabling the "AssetLoaderOptions.ImportNormals" field.
     
  45. rickomax

    rickomax

    Joined:
    Jun 11, 2013
    Posts:
    683
    I will check it out.
     
    acquariusoft likes this.
  46. Bocci

    Bocci

    Joined:
    Sep 7, 2013
    Posts:
    15
    Thanks for the quick reply!

    I already tried that option but it makes no difference.
    I also tried to get the mesh and RecalculateNormals(), but it makes no difference.

    Do you have any other suggestion? I'm running out of ideas :(

    Btw I sent you the model through email if you want to take a look
     
  47. imaginationrabbit

    imaginationrabbit

    Joined:
    Sep 23, 2013
    Posts:
    349
    Still trying to get a Daz model working with animation using the Avatar Loader-

    I'm getting these warnings when loading the fbx

    Code (CSharp):
    1. Cannot find object with id:944986736
    2. UnityEngine.Debug:Log(Object)
    3. TriLibCore.Fbx.FBXProcessor:ProcessConnections(FBXNode)
    4. TriLibCore.Fbx.FBXProcessor:Process(FBXNode, Boolean)
    5. TriLibCore.Fbx.Reader.FbxReader:ParseBinary(Stream)
    I've included the bone names and root bone names to the definition files for the Daz skeleton-

    Any tips on what those warnings mean? Thanks.

    EDIT- have made more progress. Now I can get the character in with animations working but the arms are wrapped around the back of the model. This is probably because the shoulder joints are mapped incorrectly or something eh?

    Got it working- just had to enforce T pose on the settings
     
    Last edited: Jun 3, 2021
  48. acquariusoft

    acquariusoft

    Joined:
    Nov 1, 2017
    Posts:
    4
    Hi, do you have some news? it's a very important problem for me :/
     
  49. rickomax

    rickomax

    Joined:
    Jun 11, 2013
    Posts:
    683
    I will check it out then. It may take some time as my backlog is full.
     
  50. rickomax

    rickomax

    Joined:
    Jun 11, 2013
    Posts:
    683
    Hi!

    I'm sorry about the delay and I'm happy you could figure it out.
    Again, sorry for the delay (backlog is full)