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

Username
  

Password
  





Search Forums

(Advanced Search)

Forum Statistics
» Members: 4,674
» Latest member: Ingemar Bengtsson
» Forum threads: 5,806
» Forum posts: 49,581

Full Statistics

Online Users
There are currently 355 online users.
» 3 Member(s) | 349 Guest(s)
Bing, Google, Yandex, Rene Rechthaler

Latest Threads
Part Request: LEGO LION
Forum: Part Requests
Last Post: 3CFigs
11 hours ago
» Replies: 2
» Views: 156
Part request Duplo Item N...
Forum: Part Requests
Last Post: Lawford
Yesterday, 16:17
» Replies: 5
» Views: 218
Most Common Parts that re...
Forum: Part Requests
Last Post: Gerald Lasser
2025-01-10, 20:55
» Replies: 11
» Views: 588
6278pb01 - Mario Kart Whe...
Forum: Part Requests
Last Post: Javier Orquera
2025-01-10, 17:16
» Replies: 3
» Views: 180
Parts Request: NINJAGO ON...
Forum: Part Requests
Last Post: 3CFigs
2025-01-09, 22:57
» Replies: 4
» Views: 366
[LDPatternCreator] Releas...
Forum: Parts Author Tools
Last Post: Nils Schmidt
2025-01-09, 21:41
» Replies: 2
» Views: 1,058
New parts from Lego Instr...
Forum: Parts Authoring
Last Post: Jeff Jones
2025-01-09, 18:57
» Replies: 53
» Views: 22,914
Numbering advise for 3209...
Forum: Parts Authoring
Last Post: Rene Rechthaler
2025-01-08, 17:39
» Replies: 5
» Views: 302
Town and Trains 1994
Forum: Official Models
Last Post: Takeshi Takahashi
2025-01-08, 14:38
» Replies: 4
» Views: 1,177
Parts we are Working on -...
Forum: Part Requests
Last Post: Jens Brühl
2025-01-08, 0:43
» Replies: 145
» Views: 86,604

 
  LDView64 and rendering submodels
Posted by: Matija Puzar - 2013-04-01, 19:59 - Forum: LDraw Editors and Viewers - Replies (6)

Is it only me or...? At first I thought LDView was making an April joke, which was almost a bit funny too. The thing is, if you have more than one copy of a submodel, LDView will render all of them a bit smaller. And - the more you have, the smaller all of them get! Smile

I tried this with the 64bit versions of 4.2 Beta 1 (downloaded from SF) and 4.1.1.25 that I had previously compiled for 64bit. The 32bit version of 4.1.1.25 does not show this behaviour.

Steps to reproduce - make a model with one simple submodel (a 1x1 brick is enough), copy the submodel 4 times or so into the main model, and see what happens. Then double the amount of the submodels and press F5 in LDView.
Or download the model attached to this message.



Attached Files
.mpd   LDView_test.mpd (Size: 4.05 KB / Downloads: 0)
Print this item

  [April Fools] LEGO shares prototype parts for 2014
Posted by: Willy Tschager - 2013-04-01, 5:53 - Forum: LDraw.org Announcements - Replies (7)

Following the tradition of TLG sharing information regarding the brick shapes we've got a new batch of what we use to call L(EGO)Draw parts.

http://news.lugnet.com/cad/?n=14755

This time they were not provided through the LEGO Universe channel (as you can surely imagine ;-) but directly by the LDD team itself. Also the formula has slightly changed: To shorten the time between the release of a part and when it has been finally certified through the LDraw Parts Tracker for the first time TLG provided data of prototypes. Those will be available in sets only in 2014. This leaves us with plenty of time to make them fit for an official LDraw parts update.

Though we will get only parts which have already been copyrighted we are still talking about highly sensible data. Only part authors and reviewers who have signed a NDA - non-disclosure agreement will get access to the L(EGO)Draw prototypes. Chris has set up a some sort of parallel PT and you will need a second account/password. The parts will then be held in queue until they actually hit the market. If you're interested to join the team just leave a short reply to this message.

However we've got permission to share a small sample with the community to get you an idea what's all about:

[Image: L%28EGO%29Draw_prototypes.jpg]

As usual I have uploaded the corresponding .dat files to my webspace. Just add the part number to the follwing path with one example provided:

http://www.holly-wood.it/tmp/LEGODraw/Pr.../10652.dat

Please use the following guideline for the ownership:

0 PartDescription
0 Name: Filename.dat
0 Author: RealName [UserName]
0 !LDRAW_ORG Unofficial_Part
0 !LICENSE Redistributable under CCAL version 2.0 : see CAreadme.txt
...
0 !HISTORY 2013-04-01 {LEGO Digital Designer} Original part shape
0 !HISTORY YYYY-MM-DD [UserName] File preparation for NDA LDraw Parts Tracker

Willy Tschager
on behalf of the LDraw Steering Committee

Print this item

  Insert Related Database
Posted by: Ben Supnik - 2013-03-31, 20:35 - Forum: Parts Authoring - Replies (26)

Hi Y'all,

I am working on "Insert Related…" in BrickSmith. The idea is simple: select a door frame, and BrickSmith can tell you which doors fit, and put them into the correct location.*

Insert Related solves two problems:

- If you haven't memorized every single Lego Part, it can be hard to find the right matched part, e.g. the right tire for the wheel, the right door for the frame, the right glass for the window. Some of these are manageable (e.g. windows), some I still don't know after tens of thousands of parts inserted (e.g. tires). Insert related is a database that "knows" which parts fit for certain special roles.

- Some parts have relative origin offsets that aren't on the major brick grid> This typically happens when a part has its origin set for easy rotation instead of easy relative placement. So even once I find the right door for the frame, how does it 'snap' in?

I have two questions:
1. Is anyone else interested in the data for other modeling programs?
2. Does anyone have any feedback on the proposed data format? (This matters mainly if anyone else wants to use the data.)

There's nothing BrickSmith specific going on, hence the inquiry.

Here's what I have right now:

122c01.dat 3641.dat -31 6 0 0 0 1 0 1 0 -1 0 0 Left Tire
122c02.dat 3641.dat -31 6 0 0 0 1 0 1 0 -1 0 0 Left Tire
122c01.dat 4084.dat -31 6 0 0 0 1 0 1 0 -1 0 0 Left Tire
122c02.dat 4084.dat -31 6 0 0 0 1 0 1 0 -1 0 0 Left Tire
122c01.dat 3641.dat 31 6 0 0 0 -1 0 1 0 1 0 0 Right Tire
122c02.dat 3641.dat 31 6 0 0 0 -1 0 1 0 1 0 0 Right Tire
122c01.dat 4084.dat 31 6 0 0 0 -1 0 1 0 1 0 0 Right Tire
122c02.dat 4084.dat 31 6 0 0 0 -1 0 1 0 1 0 0 Right Tire

Basically the format is:

<parent file> <child file> <relative transform> <placement name>

The relative transform is the matrix that a 1 directive would have for the child if the parent is at 0,0,0, unrotated, and the parts are put together according to the relationship described to the right. The relationships names help disambiguate (for UI purposes) multiple attach points, e.g. do we want to put this tire on the left or right wheel, do we want the door to open to the left or right, is this the left or right shutter?

It is intentional that the relationship name is the same for multiple lines with different parts - the idea is that the user can say two things:

"If I want to add part 3641.dat to 122c01.dat, what are my choices?"

(The answer is that 3641.dat can act as a "Left Tire" or "Right Tire", and there are different transforms to do that.)

or the user can ask:

"If I want to add a Left Tire to 122c01.dat, what parts can do this?"

(The answer is that both 3641.dat and 4084.dat fit as tires - by luck the transform is the same for both but this won't be true some of the time.)

The data is 'flat' - that is, relationships are provided only for final parts, not for sub-parts.

To create the data, I created a very simple .mpd file with the parts assembled 'correctly' (using various steps and sub-models to structure the parts) and then ran a Python script over it to get the final flat results. This means that, to create the data, I simply modeled each part once, visually checking to see if the part was positioned correctly.

Anyway, if this is of interest to anyone else working on modeling software, please let me know - I'm happy to share the data.

Cheers
Ben

* My previous post on this:
forums.ldraw.org/showthread.php?tid=8008,8025
got side-tracked into a discussion of 'true connectivity'. This is not that at all - it's just a way to insert parts. I would like to do connectivity some-day, but connectivity is an ocean-liner of a feature, and this is a rubber raft. Or something like that.

Print this item

  City Theme 2013
Posted by: Michael Heidemann - 2013-03-29, 10:17 - Forum: Official Models - Replies (10)

All of the current year (2013) city sets should be placed here.

Print this item

  Busy until May 2013
Posted by: Nils Schmidt - 2013-03-27, 21:41 - Forum: Off-Topic - Replies (3)

I will be extremely busy until May and I am looking forward to release a new version of my pattern creator (with reference lines!) in June. Furthermore, I will try to release a first alpha version of the part creator in July.

Print this item

  LDFind 1.3.0.0
Posted by: Michael Heidemann - 2013-03-24, 17:14 - Forum: All Other Programs. - Replies (2)

Now with better connection to LDStructure (version 1.2.0.0 is needed).

Website

Print this item

  LDStructure 1.2.0.0
Posted by: Michael Heidemann - 2013-03-24, 17:12 - Forum: All Other Programs. - No Replies

Now with better connection to LDFind (version 1.3.0.0 is needed).

Website

Print this item

  Proposal: Fast Track Parts Tracker Parts
Posted by: Orion Pobursky - 2013-03-24, 7:36 - Forum: Standards Board - Replies (2)

A number of people have mentioned that minor edits should be fast tracked on the PT. I agree. Here's my proposal:

Code:
The Parts Tracker (PT) Admin may, at his discretion, fast track a part on the
Parts Tracker if it is considered by him to be a minor edit.  The term "fast track"
is defined to mean any system where a part is required to have less votes
than normal.  This may include unilateral approval by the PT Admin.  In all cases
the PT Admin must approve the part.  All fast tracked parts must appear on the
PT until the next regular update.

Examples of minor edits (note this list is not all inclusive):
- Any header modification including part renaming
- Creation of Moved To and Aliases
- Modification for greater decimal precision
- BFC certification
- Elimination of errors such as bowtie quads, colinear points, or T-Junctions

Thoughts?

Print this item

  Point matching Re: Question about edges
Posted by: Tim Gould - 2013-03-23, 22:17 - Forum: Parts Authoring - Replies (23)

I'm going to split this off as a new thread since the old one is unwieldy...

When we develop a list of points (via check and snap), there will be (hopefully only a few) remaining points that have not been snapped to each other and remain with only _one_ tri or quad accessing them. We can exploit this as these points must be:

  • Part of a t-junction
  • A point that has not been snapped properly
  • An edge point (but this should be illegal in an LDraw part)

There is absolutely no other reason for a point not the be shared amongst at least two tris/quads. We can store the number of facet prims accessing the point via a simple count on the list of points.

So here's the deal:
Code:
SnapPoints

foreach Point not in TwoTris/Quads
  # Check if the point is part of a t-junciton
  If CheckForTJunction then  SplitTJunction

  # Check for nearby points with a larger (eg. 0.05) tolerance
  DoNearbyCheck(TOLBIG)
  SnapToPoints
endfor

If, at the end of this code, there are points that are still not shared then the part can probably be flagged as bad.

Tim

Print this item

  3 decimals is not a lot of precision for rotation matrices
Posted by: Ben Supnik - 2013-03-23, 19:48 - Forum: Parts Authoring - Replies (11)

Hi Y'all,

Roland and I have been tossing around part numbers, looking at smoothing results. One thing that surprised me is that we needed a rather large 0.05 LDU error margin to 'snap' the segments of the 6x6 webbed dishes together. (The part is built via 8 sub-sections rotated 45 degrees.) 0.05 seems like a 'big' error because part authors can specify vertices to the 0.001.

Today I cracked open the part and took a look at the numbers, and the large error margin now makes sense.

The fundamental problem is absolute error amplification: if the error on a matrix ratio is 1/1000 (0.001 precision) then the actual error in the position of a rotated part is 0.001 * R where R is the approximate radius of rotation. In other words, a part that extends 60 LDU from its center will have an absolute error of 60/1000 (0.06) after rotation. (In fact, the real results are up to 3x worse because error accumulation is additive and we add the X, Y, and Z components of the matrix).

The actual numbers of the 6x6 dish show that the worst case error could have been much worse than this actual part. The bottom line is: 0.001 just isn't _that_ precise for a rotation component that's going to be used for a moderately big part. :-(

This matters because the rounding tolerance for welding rotated part segments for smoothing defines the smallest 3-d detail an author can make without having their triangles collapsed.

I realize that we have a gajillion parts and my going "we should do X" isn't going to actually change the library, but I wonder if this perspective should result in some kind of updated practices for authoring.

Naively, I would suggest two possible changes...

1. We could allow higher precision for matrices. For example, the part is using 0.707 for a 45-degree rotation. If I go into the text file and replace it with 0.707106781186548 I can cut my error margin down by 4x. (Clearly BrickSmith isn't using all of 0.707106781186548 - I just typed a big long number into the text file...BrickSmith is using 32-bit float.)

2. Authors could avoid angle rotations that aren't 90 degree increments. At 90 degrees, the rotation matrix can be _exactly_ represented - all rotational coefficients are 0, 1, or -1. :-) So the 'lock-up' of vertices around 90 degree rotations should be pretty good - certainly in the same ballpark as the geometry itself.

This would mean 'bigger' parts - 90 degree swathes of dish instead of 45 degrees, but the precision would be a lot better.

Cheers
Ben

Print this item