lego-mindstorms-ev3-comparison icon indicating copy to clipboard operation
lego-mindstorms-ev3-comparison copied to clipboard

Analyze differences based on DesignID

Open philipmat opened this issue 8 years ago • 8 comments

The three different EV3 sets may use different part ids, but I offer that as long as the design ids are the same, the parts could be interchangeable.

For example, the 31313 uses part id 4111998 for LD Id 32009, while 45544 uses 4495412 for the same LD Id, and 45560 uses 4234240. They are indeed different colors (black, white, and respectively gray), but the part is the same otherwise.

Perhaps there could be two levels of matching one is purely functional, solely by LD Id, the other includes the aesthetic aspect and thus matches by LD Id+color?

The difference is quite significant: going by Lego-Mindstorms-Editions-Comparison.ods, Edu+Expansion-Home requires some 245 pieces to be purchased; however, if the comparison is done only on the basis of matching LD Ids, that number goes down to 80.

Anyway, thank you for putting the work in collecting all this data!

philipmat avatar Jan 07 '16 09:01 philipmat

Can you make a practical example in the Calc spread sheet in a PR? I'm not sure I follow you otherwise.

IIUC, it makes much more sense to include the aesthetic aspect by default. If the LEGO part is functionally identical, maybe even matching in color, who cares what the Id is, really? (Are you sure that the pieces are absolutely identical? Why does LEGO give them different Ids?)

LEGO should tell us

The optimal solution for our comparison document, in my eyes, would be to have official sources and an official reasoning by LEGO. They should be able to tell us, really, which pieces we need to buy and which not (because we already have them based on what we bought).

I just don't know how we can come to such a solution. I feel LEGO sales may probably never have considered these exact customer "problems".

bittner avatar Jan 07 '16 13:01 bittner

I've updated the ODS in PR #4 to include a comparison by LegoID - it's effectively a pivot on the combined 3 Brickset-Inventory files (I've also sent you a link to the Google Spreadsheet in case the ODS file doesn't display it properly).

As far as I can tell from my research, the structural part gets a Lego ID. Because the part can be present in multiple sets, it likely has to color-match the designs of that set. Hence the various parts are further detailed by given them Part Numbers.

I think Rebrickable displays it best Rebrickable 32009

If you accept the PR, it included both approaches (comparison by part and comparison by lego id) and I think you can close this issue with it.

philipmat avatar Jan 08 '16 07:01 philipmat

I've integrated your additions and changes from PR #4 in the spreadsheet with commit 8f0b1f6. I've also added the conditional formatting (LEGO colors! :smiley:) and the Auto Filter again, which went away with your changes (or did you remove it?).

@philipmat Can you check the spreadsheet, whether the calculation / selection is as we want it? I haven't touched sheet 2 and 3.

We've added two useful columns now, but we've also added confusion. I think we should fix that.

bittner avatar Jan 09 '16 00:01 bittner

Unfortunately I don't have OpenOffice - I've just imported and exported it from Google Docs so whatever features were removed I think was a result of that.

Re-importing the ODS file into Google Spreadsheets seems to mess up the pivot table to the point it removes it altogether. Perhaps it's an opportunity to extend the python script to produce an equivalent, but static equivalent of the pivot table from GDocs.

philipmat avatar Jan 09 '16 05:01 philipmat

If you could propose a solution (in a PR) I would be grateful.

For me it's mainly important that there is a simple solution for people finding this repository, a simple way to understand the differences between the three sets and to find out which pieces to buy in addition.

Everything else is academic, pure science. Interesting for us but not for the majority of the audience. Let's provide a pragmatic solution first of all.

bittner avatar Jan 09 '16 13:01 bittner

Doing a bit of research I found two Python projects that may allow us to create the Calc spreadsheet from command line:

All the tedious, error-prone manual editing would then be unnecessary. IIUC, they require a local installation of LibreOffice. That should be easy though on any (desktop class computer) system.

bittner avatar Jan 09 '16 14:01 bittner

Wouldn't it be simpler to just put it in a public Google Spreadsheet where everybody can access it without having to install any software?

philipmat avatar Jan 11 '16 03:01 philipmat

For viewing it would be simpler, yes. But that's a different problem. You should open a new issue for that.

The good thing about the two tools/libraries above is that it may be possible to generate the documents from raw data in an automated fashion (nobody stops us from uploading such a document to Google Drive afterwards), and all this even offline.

With Google it's not that easy: there is a Sheets API, but you need to do all kinds of stuff (starting with OAuth, the only thing you can do in Python) before getting to creating or updating a document (.NET or Java programming only).


BTW, take a look at the latest changes. I made a new release yesterday with sweet features.

bittner avatar Jan 11 '16 09:01 bittner