Welcome, Guest
You have to register before you can post on our site.

Username
  

Password
  





Search Forums

(Advanced Search)

Forum Statistics
» Members: 5,332
» Latest member: David Reid
» Forum threads: 6,192
» Forum posts: 51,855

Full Statistics

Online Users
There are currently 235 online users.
» 1 Member(s) | 229 Guest(s)
Baidu, Bing, Facebook, Google, Yandex, Orion Pobursky

Latest Threads
Reasons for hold
Forum: Help
Last Post: Peter Blomberg
1 hour ago
» Replies: 2
» Views: 148
Plate Special Round 4 x 4...
Forum: Part Requests
Last Post: tom alphin
1 hour ago
» Replies: 0
» Views: 30
Toucan 80513
Forum: Parts Tracker Discussion
Last Post: Magnus Forsberg
9 hours ago
» Replies: 2
» Views: 189
filter for inactive autho...
Forum: Parts Tracker Discussion
Last Post: Rene Rechthaler
Yesterday, 16:36
» Replies: 1
» Views: 295
30mm vs 30.4mm Wheels & T...
Forum: General LDraw.org Discussion
Last Post: tom alphin
Yesterday, 15:09
» Replies: 8
» Views: 799
Pirate Themed Parts
Forum: Part Requests
Last Post: Peter Grass
2025-09-21, 20:49
» Replies: 34
» Views: 20,701
2003 Pattern
Forum: Parts Authoring
Last Post: Lisa Winter
2025-09-21, 11:37
» Replies: 2
» Views: 930
2025 LEGO Education Scien...
Forum: Part Requests
Last Post: tom alphin
2025-09-21, 6:35
» Replies: 2
» Views: 525
Part Request - 51008pb01 ...
Forum: Part Requests
Last Post: Stefano
2025-09-20, 11:29
» Replies: 3
» Views: 3,192
reviewing obsoleted parts
Forum: Parts Tracker Discussion
Last Post: Peter Blomberg
2025-09-20, 10:32
» Replies: 2
» Views: 888

 
  Error when taking part into LDCad
Posted by: Lasse Alexandersson - 2023-11-15, 18:18 - Forum: Help - Replies (2)

I am trying to use the part 75974.dat Technic Pneumatic Airtank (Complete) in LDCad.
I get the message: 
Missing LDraw file dependencies for the current model
C:\%USER%\AppData\Local\LPub3D Software\LPub3d\libraries\complete.zip\ldraw\p\axl2hole.dat

I have downloaded a new complete.zip file an I can see that the axl2hole.dat file is in it.

I can still work with it in LDCad, but when it comes to LPub3D, it crashes.

Everything was OK some weeks ago with an older version of complete.zip, LDCad and Lpub3D.

Lasse

Print this item

  MLCad.ini 2023-05 update now available
Posted by: Willy Tschager - 2023-11-12, 15:47 - Forum: LDraw.org Announcements - No Replies

Hi folks,

I just updated the MLCad.ini file accordingly to the latest LDraw.org parts update 2023-05. The .ini file defines (among other things) the parts available in MLCad's, LEOCad's and Bricksmith's minifigure generator.

Download the file from my website: http://www.holly-wood.it/mlcad/mlcad_ini-en.html

Bye, w.

Print this item

Thumbs Up Part Request: Rubeus Hagrid Arms (37779 & 37783)
Posted by: Matthew Coleman - 2023-11-11, 20:46 - Forum: Part Requests - Replies (13)

I've just noticed today that the giant minifigure arms for Rubeus Hagrid (and also Doctor Eggman) are not on LDraw yet.



[Image: 3777937783c01.png]


BrickLink Entries

37779 - Large Arm, Left with Technic Pin: https://www.bricklink.com/v2/catalog/catalogitem.page?P=37779#T=C

37783 - Large Arm, Right with Technic Pin: https://www.bricklink.com/v2/catalog/cat...=37783#T=C



These elements could really be useful on BrickLink Studio. Thank you for reading.

Print this item

  Creator 2007
Posted by: Takeshi Takahashi - 2023-11-11, 16:52 - Forum: Official Models - Replies (15)

Creator sets released in 2007

4915 Mini Construction (2007)


.mpd   4915 - Mini Construction.mpd (Size: 5.1 KB / Downloads: 3)
   

OMR compliant
Missing items: none

Originally uploaded by Ken, corrected colours and rearranged submodels

Print this item

Thumbs Up Part Request - 973pb2526 - E.T. Torso
Posted by: Zoltán Tibor - 2023-11-09, 13:48 - Forum: Part Requests - Replies (2)

Hi! Smile

I would like to request these torso below.:

https://www.bricklink.com/v2/catalog/cat...#T=C&C=150

Can someone make me?

Thank you very much! Smile

Print this item

  Colors are gone (in MLCad)
Posted by: Kuperus - 2023-11-07, 10:45 - Forum: Help - Replies (7)

Hi everyone,

Since I updated to the latest version all the colorschemes are gone. I can't for example not lionger choose Dark Blue as a color. Does anyone know how to fix that?

Kind regards,

Tymen

Print this item

  Super Mario
Posted by: Florent Faramond - 2023-11-06, 21:19 - Forum: Official Models - Replies (2)

Super Mario

Print this item

  November release
Posted by: Orion Pobursky - 2023-11-05, 19:48 - Forum: Parts Tracker Discussion - Replies (5)

In two weeks, I'm planning on doing a November release. Partly to test the waters for monthly releases and partly because I found a bug in the license line code and want to make sure all official part licenses are properly annotated. The more parts ready for admin, the better.

Print this item

Exclamation Blank Sticker Help
Posted by: Pepper - 2023-11-04, 6:28 - Forum: LDraw Editors and Viewers - Replies (1)

Hello all.

I tried to add some unofficial sticker parts to MLCad earlier but every attempt i've tried, the sticker part was always blank in MLCad.
I did also save and move the other parts and textures to go along with the sticker but it's like the texture png doesnt register in MLCad or something
Do the Textures go elsewhere other then the parts/textures folder in the base LDraw folder where the normal parts go?
The shapes are working fine, it's just the texture that isnt working.

Also sorry if im missing anything, I am new to this site and this is my first post.

Print this item

  Need help for faster processing
Posted by: Max Murtazin - 2023-11-02, 21:12 - Forum: LDraw File Processing and Conversion - Replies (7)

For a while, I've been writing a custom LDraw to Collada converter for Bricklink Studio, as the one currently in the program is, to put it lightly, sucks

Have a problem with it's performance of finding and merging same vertex positions

Here's the code for one I have currently:

Code:
static void MergeCell1(List<Vector3> cell)
{
     for (int i = 0; i < cell.Count - 1; i++)
     {
         for (int j = i + 1; j < cell.Count; j++)
             if (Vector3.Distance(cell[i], cell[j]) < MERGE_RADIUS)
                 cell[j] = cell[i];
     }
}
static void MergeCell2(List<Vector3> cell, List<Vector3> sharpCell)
{

     for (int i = 0; i < cell.Count; i++)
     {
         for (int j = 0; j < sharpCell.Count; j++)
             if (Vector3.Distance(cell[i], sharpCell[j]) < MERGE_RADIUS)
                 sharpCell[j] = cell[i];
     }
}
static void MergeCell3(List<Vector3> sharpCell)
{

     for (int i = 0; i < sharpCell.Count - 1; i++)
     {
         for (int j = i + 1; j < sharpCell.Count; j++)
             if (Vector3.Distance(sharpCell[i], sharpCell[j]) < MERGE_RADIUS)
                 sharpCell[j] = sharpCell[i];
     }
}
static void MergeCell4(List<Vector3> cell, List<Vector3> sharpCell)
{

     for (int i = 0; i < sharpCell.Count; i++)
     {
         for (int j = 0; j < cell.Count; j++)
             if (Vector3.Distance(sharpCell[i], cell[j]) < MERGE_RADIUS)
                 cell[j] = sharpCell[i];
     }
}

static void MergePoints(string model)
{
     if (preBuilt.ContainsKey(model)) return;

     float maxX = subMeshes[model].MaxBy(x => x.X).X;
     float maxY = subMeshes[model].MaxBy(x => x.Y).Y;
     float maxZ = subMeshes[model].MaxBy(x => x.Z).Z;
     float minX = subMeshes[model].MinBy(x => x.X).X;
     float minY = subMeshes[model].MinBy(x => x.Y).Y;
     float minZ = subMeshes[model].MinBy(x => x.Z).Z;

     int step = (int)Math.Round(Math.Pow(subMeshes.Count, 1.0 / 3.0));

     float stepX = (maxX - minX) / step;
     float stepY = (maxY - minY) / step;
     float stepZ = (maxZ - minZ) / step;

     List<Vector3>[,,] cells = new List<Vector3>[step, step, step];
     List<Vector3>[,,] cellsLines = new List<Vector3>[step, step, step];

     for (int i = 0; i < step; i++)
         for (int j = 0; j < step; j++)
             for (int k = 0; k < step; k++)
             {
                 cells[i, j, k] = (from a in subMeshes[model]
                                   where
                                   a.X <= minX + (i * stepX) && a.X > minX + (i + 1 * stepX) &&
                                   a.Y <= minY + (i * stepY) && a.X > minY + (i + 1 * stepY) &&
                                   a.Z <= minZ + (i * stepZ) && a.X > minZ + (i + 1 * stepZ)
                                   select a).ToList();
             }
     for (int i = 0; i < step; i++)
         for (int j = 0; j < step; j++)
             for (int k = 0; k < step; k++)
             {
                 cellsLines[i, j, k] = (from a in subSharps[model]
                                        where
                                        a.X <= minX + (i * stepX) && a.X > minX + (i + 1 * stepX) &&
                                        a.Y <= minY + (i * stepY) && a.X > minY + (i + 1 * stepY) &&
                                        a.Z <= minZ + (i * stepZ) && a.X > minZ + (i + 1 * stepZ)
                                        select a).ToList();
             }

     Console.WriteLine("Merging points of model " + model + ", step 1 - " + subMeshes[model].Count + " points");
     Parallel.ForEach(cells.Cast<List<Vector3>>(), MergeCell1);
     Console.WriteLine("Merging points of model " + model + ", step 2 - " + subMeshes[model].Count + " points");
     Parallel.ForEach(cells.Cast<List<Vector3>>(), x => Parallel.ForEach(cellsLines.Cast<List<Vector3>>(), y => MergeCell2(x, y)));
     Console.WriteLine("Merging points of model " + model + ", step 3 - " + subSharps[model].Count + " points");
     Parallel.ForEach(cellsLines.Cast<List<Vector3>>(), MergeCell3);
     Console.WriteLine("Merging points of model " + model + ", step 4 - " + subSharps[model].Count + " points");
     Parallel.ForEach(cells.Cast<List<Vector3>>(), x => Parallel.ForEach(cellsLines.Cast<List<Vector3>>(), y => MergeCell4(x, y)));
     /*for (int i = 0; i < subMeshes[model].Count - 1; i++)
     {
         for (int j = i + 1; j < subMeshes[model].Count; j++)
             if (Vector3.Distance(subMeshes[model][i], subMeshes[model][j]) < MERGE_RADIUS)
                 subMeshes[model][j] = subMeshes[model][i];
         //if (i % (subMeshes[model].Count / 100) == 0 && i != 0) Console.WriteLine("Merging points of model " + model + ", step 1: " + i / (subMeshes[model].Count / 100) + " % ");
     }

     Console.WriteLine("Merging points of model " + model + ", step 2 - " + subMeshes[model].Count + " points");
     for (int i = 0; i < subMeshes[model].Count; i++)
     {
         for (int j = 0; j < subSharps[model].Count; j++)
             if (Vector3.Distance(subMeshes[model][i], subSharps[model][j]) < MERGE_RADIUS)
                 subSharps[model][j] = subMeshes[model][i];
         //if (i % (subMeshes[model].Count / 100) == 0 && i != 0) Console.WriteLine("Merging points of model " + model + ", step 2: " + i / (subMeshes[model].Count / 100) + " % ");
     }

     Console.WriteLine("Merging points of model " + model + ", step 3 - " + subSharps[model].Count + " points");
     for (int i = 0; i < subSharps[model].Count - 1; i++)
     {
         for (int j = i + 1; j < subSharps[model].Count; j++)
             if (Vector3.Distance(subSharps[model][i], subSharps[model][j]) < MERGE_RADIUS)
                 subSharps[model][j] = subSharps[model][i];
         //if (i % (subSharps[model].Count / 100) == 0 && i != 0) Console.WriteLine("Merging points of model " + model + ", step 3: " + i / (subMeshes[model].Count / 100) + " % ");
     }

     Console.WriteLine("Merging points of model " + model + ", step 4 - " + subSharps[model].Count + " points");
     for (int i = 0; i < subSharps[model].Count; i++)
     {
         for (int j = 0; j < subMeshes[model].Count; j++)
             if (Vector3.Distance(subSharps[model][i], subMeshes[model][j]) < MERGE_RADIUS)
                 subMeshes[model][j] = subSharps[model][i];
         //if (i % (subSharps[model].Count / 100) == 0 && i != 0) Console.WriteLine("Merging points of model " + model + ", step 4: " + i / (subMeshes[model].Count / 100) + " % ");
     }*/

}

In short, it subdivides space in sections, in each of which it checks each pair of vertices on if they are close enough to be considered the same, or not. Wonder if there is a way to make it faster

Print this item