feat: ldraw lego parts in builder
Add the real LDraw LEGO parts (LeoCAD-style) as the posable objects.
- Vendor the curated 15-part LDraw closure under public/ldraw so it is
served at /blocs-pro/ldraw/ after build (CC BY 4.0, credits kept).
- src/utils/ldraw.js loads each part via three's LDrawLoader, caches the
geometry per type, applies the LDU->world scale and Y flip to match the
existing grid, and tints surfaces with the active colour.
- A LeoCAD-style PartsBar (colour row + category tabs + part grid) picks
the active part; Create mode places it at the grid cell and stores a
JSON-only brick { uID, type, color, position/dimensions, rotation } so
the piece syncs to peers like any other brick.
- Brick.jsx renders the cached LDraw clone for typed bricks and keeps the
parametric box as a fallback. Edit-mode tooling (select / move / colour
/ delete) walks up to the brick group so it works on multi-mesh pieces;
selection is shown with an emissive tint instead of the stud wireframe.
This commit is contained in:
@@ -0,0 +1,46 @@
|
|||||||
|
# LDraw parts — credits & license
|
||||||
|
|
||||||
|
The `.dat` files under `parts/` (and the primitives they reference) come from
|
||||||
|
the **LDraw Parts Library** (the official, community-maintained library of LEGO
|
||||||
|
part definitions).
|
||||||
|
|
||||||
|
- **Source (upstream):** https://library.ldraw.org/ (`complete.zip` update package)
|
||||||
|
- **Provenance (pinned mirror):** the full library is mirrored, audited and frozen
|
||||||
|
in our Gitea at **`electron-rare/ldraw-library-mirror`**
|
||||||
|
(`https://git.saillant.cc/electron-rare/ldraw-library-mirror`). The subset below
|
||||||
|
is the dependency closure of curated parts extracted from that mirror.
|
||||||
|
- **License:** **CC BY 4.0** (Creative Commons Attribution 4.0 International).
|
||||||
|
Each `.dat` carries its own `0 !LICENSE Licensed under CC BY 4.0` header.
|
||||||
|
- **Attribution:** original part authors are credited in each file's
|
||||||
|
`0 Author:` / `0 !HISTORY` headers. The library founder is James Jessiman.
|
||||||
|
|
||||||
|
Only a **curated, kid-friendly subset** is vendored here, not the full library:
|
||||||
|
|
||||||
|
| Part | Description | Part | Description |
|
||||||
|
|--------|------------------------|--------|------------------------|
|
||||||
|
| 3001 | Brick 2×4 | 3024 | Plate 1×1 |
|
||||||
|
| 3003 | Brick 2×2 | 3068b | Tile 2×2 (groove) |
|
||||||
|
| 3004 | Brick 1×2 | 3069b | Tile 1×2 (groove) |
|
||||||
|
| 3005 | Brick 1×1 | 3040b | Slope 45° 2×1 |
|
||||||
|
| 3010 | Brick 1×4 | 3039 | Slope 45° 2×2 |
|
||||||
|
| 3020 | Plate 2×4 | 3062b | Round Brick 1×1 |
|
||||||
|
| 3022 | Plate 2×2 | 3941 | Round Brick 2×2 |
|
||||||
|
| 3023b | Plate 1×2 | | |
|
||||||
|
|
||||||
|
`manifest.json` lists the full **dependency closure** (each part + every
|
||||||
|
sub-file / primitive it references, recursively) flattened under `parts/` so the
|
||||||
|
web `LDrawLoader` resolves every reference on its first probe (no 404 noise).
|
||||||
|
`fileMap` forces `s/` sub-parts to stay relative to `parts/`.
|
||||||
|
|
||||||
|
## How to regenerate / extend the set
|
||||||
|
|
||||||
|
The closure is built from a local copy of the LDraw library
|
||||||
|
(`library.ldraw.org/library/updates/complete.zip`) with a small Python script
|
||||||
|
that walks line-type-1 references recursively and copies the closure here,
|
||||||
|
emitting `manifest.json`. To add a part, add its `.dat` id to the seed list and
|
||||||
|
re-run the builder, then extend `LDRAW_PARTS` / `PART_ORDER` in
|
||||||
|
`js/games/ldraw-parts.js` and the `ld:*` entries in `js/games/blocs.logic.js`.
|
||||||
|
|
||||||
|
> **LEGO®** is a trademark of the LEGO Group, which does not sponsor, authorize
|
||||||
|
> or endorse this project. LDraw part *definitions* are an independent,
|
||||||
|
> community work licensed CC BY 4.0.
|
||||||
@@ -0,0 +1,99 @@
|
|||||||
|
{
|
||||||
|
"fileMap": {
|
||||||
|
"s/3001s01.dat": "s/3001s01.dat",
|
||||||
|
"s/3003s01.dat": "s/3003s01.dat",
|
||||||
|
"s/3003s02.dat": "s/3003s02.dat",
|
||||||
|
"s/3004s01.dat": "s/3004s01.dat",
|
||||||
|
"s/3005s01.dat": "s/3005s01.dat",
|
||||||
|
"s/3010s01.dat": "s/3010s01.dat",
|
||||||
|
"s/3023bs01.dat": "s/3023bs01.dat",
|
||||||
|
"s/3024s01.dat": "s/3024s01.dat",
|
||||||
|
"s/3039s01.dat": "s/3039s01.dat",
|
||||||
|
"s/3040s01.dat": "s/3040s01.dat",
|
||||||
|
"s/3062bs01.dat": "s/3062bs01.dat",
|
||||||
|
"s/3068bs01.dat": "s/3068bs01.dat",
|
||||||
|
"s/3069bs01.dat": "s/3069bs01.dat",
|
||||||
|
"s/3941s01.dat": "s/3941s01.dat"
|
||||||
|
},
|
||||||
|
"parts": [
|
||||||
|
"parts/1-16chrd.dat",
|
||||||
|
"parts/1-4chrd.dat",
|
||||||
|
"parts/1-4cyls.dat",
|
||||||
|
"parts/1-8chrd.dat",
|
||||||
|
"parts/1-8cyli.dat",
|
||||||
|
"parts/1-8edge.dat",
|
||||||
|
"parts/2-4chrd.dat",
|
||||||
|
"parts/2-4cyli.dat",
|
||||||
|
"parts/2-4edge.dat",
|
||||||
|
"parts/2-4ndis.dat",
|
||||||
|
"parts/3-4cyli.dat",
|
||||||
|
"parts/3-4disc.dat",
|
||||||
|
"parts/3-4edge.dat",
|
||||||
|
"parts/3001.dat",
|
||||||
|
"parts/3003.dat",
|
||||||
|
"parts/3004.dat",
|
||||||
|
"parts/3005.dat",
|
||||||
|
"parts/3010.dat",
|
||||||
|
"parts/3020.dat",
|
||||||
|
"parts/3022.dat",
|
||||||
|
"parts/3023b.dat",
|
||||||
|
"parts/3024.dat",
|
||||||
|
"parts/3039.dat",
|
||||||
|
"parts/3040b.dat",
|
||||||
|
"parts/3062b.dat",
|
||||||
|
"parts/3068b.dat",
|
||||||
|
"parts/3069b.dat",
|
||||||
|
"parts/3941.dat",
|
||||||
|
"parts/4-4cyli.dat",
|
||||||
|
"parts/4-4cylo.dat",
|
||||||
|
"parts/4-4disc.dat",
|
||||||
|
"parts/4-4edge.dat",
|
||||||
|
"parts/4-4ndis.dat",
|
||||||
|
"parts/4-4ring1.dat",
|
||||||
|
"parts/4-4ring2.dat",
|
||||||
|
"parts/4-4ring3.dat",
|
||||||
|
"parts/4-4ring4.dat",
|
||||||
|
"parts/axl5ho10.dat",
|
||||||
|
"parts/axl5hol8.dat",
|
||||||
|
"parts/axl5hol9.dat",
|
||||||
|
"parts/axlehol2.dat",
|
||||||
|
"parts/axlehol3.dat",
|
||||||
|
"parts/axlehole.dat",
|
||||||
|
"parts/box3u2p.dat",
|
||||||
|
"parts/box3u4a.dat",
|
||||||
|
"parts/box4-4a.dat",
|
||||||
|
"parts/box4.dat",
|
||||||
|
"parts/box4t.dat",
|
||||||
|
"parts/box5.dat",
|
||||||
|
"parts/empty.dat",
|
||||||
|
"parts/rect.dat",
|
||||||
|
"parts/rect1.dat",
|
||||||
|
"parts/s/3001s01.dat",
|
||||||
|
"parts/s/3003s01.dat",
|
||||||
|
"parts/s/3003s02.dat",
|
||||||
|
"parts/s/3004s01.dat",
|
||||||
|
"parts/s/3005s01.dat",
|
||||||
|
"parts/s/3010s01.dat",
|
||||||
|
"parts/s/3023bs01.dat",
|
||||||
|
"parts/s/3024s01.dat",
|
||||||
|
"parts/s/3039s01.dat",
|
||||||
|
"parts/s/3040s01.dat",
|
||||||
|
"parts/s/3062bs01.dat",
|
||||||
|
"parts/s/3068bs01.dat",
|
||||||
|
"parts/s/3069bs01.dat",
|
||||||
|
"parts/s/3941s01.dat",
|
||||||
|
"parts/stud.dat",
|
||||||
|
"parts/stud10.dat",
|
||||||
|
"parts/stud2a.dat",
|
||||||
|
"parts/stud3.dat",
|
||||||
|
"parts/stud3a.dat",
|
||||||
|
"parts/stud4.dat",
|
||||||
|
"parts/stud4a.dat",
|
||||||
|
"parts/stud4od.dat",
|
||||||
|
"parts/stug-1x2.dat",
|
||||||
|
"parts/stug-1x4.dat",
|
||||||
|
"parts/stug-2x2.dat",
|
||||||
|
"parts/stug10-2x2.dat",
|
||||||
|
"parts/stug3-1x3.dat"
|
||||||
|
]
|
||||||
|
}
|
||||||
@@ -0,0 +1,19 @@
|
|||||||
|
0 Chord 0.0625
|
||||||
|
0 Name: 1-16chrd.dat
|
||||||
|
0 Author: Philippe Hurbain [Philo]
|
||||||
|
0 !LDRAW_ORG Primitive UPDATE 2015-01
|
||||||
|
0 !LICENSE Licensed under CC BY 4.0 : see CAreadme.txt
|
||||||
|
|
||||||
|
0 BFC CERTIFY CCW
|
||||||
|
|
||||||
|
0 !HISTORY 2015-10-11 [PTadmin] Official Update 2015-01
|
||||||
|
|
||||||
|
|
||||||
|
0 // This file is intentionally empty because at the current \P resolution,
|
||||||
|
0 // an 1-16chrd is actually empty. However, this file still is present
|
||||||
|
0 // to allow tools to do primitives substition and fill in a real chrd here,
|
||||||
|
0 // or, if desired, to substitute this with the hi-res 48\1-16chrd.
|
||||||
|
|
||||||
|
0 // This file is based on an idea by Darats at http://forums.ldraw.org/read.php?19,14500,14500#msg-14500
|
||||||
|
|
||||||
|
1 16 0 0 0 1 0 0 0 1 0 0 0 1 empty.dat
|
||||||
@@ -0,0 +1,18 @@
|
|||||||
|
0 Chord 0.25
|
||||||
|
0 Name: 1-4chrd.dat
|
||||||
|
0 Author: Max Martin Richter [MMR1988]
|
||||||
|
0 !LDRAW_ORG Primitive UPDATE 2023-05
|
||||||
|
0 !LICENSE Licensed under CC BY 4.0 : see CAreadme.txt
|
||||||
|
|
||||||
|
0 BFC CERTIFY CCW
|
||||||
|
|
||||||
|
0 !HISTORY 2004-04-22 [PTadmin] Official Update 2004-02
|
||||||
|
0 !HISTORY 2007-10-09 [PTadmin] Header formatted for Contributor Agreement
|
||||||
|
0 !HISTORY 2008-07-01 [PTadmin] Official Update 2008-01
|
||||||
|
0 !HISTORY 2012-08-02 [MMR1988] Re-creation with PrimGen2 and Rectifier
|
||||||
|
0 !HISTORY 2012-08-09 [PTadmin] Official Update 2012-02
|
||||||
|
0 !HISTORY 2023-10-27 [OrionP] Change author to MMR1988 from hafhead
|
||||||
|
0 !HISTORY 2023-10-31 [OrionP] Official Update 2023-05
|
||||||
|
|
||||||
|
4 16 0.9239 0 0.3827 0.3827 0 0.9239 0 0 1 1 0 0
|
||||||
|
3 16 0.7071 0 0.7071 0.3827 0 0.9239 0.9239 0 0.3827
|
||||||
@@ -0,0 +1,26 @@
|
|||||||
|
0 Cylinder Sloped 0.25
|
||||||
|
0 Name: 1-4cyls.dat
|
||||||
|
0 Author: James Jessiman
|
||||||
|
0 !LDRAW_ORG Primitive UPDATE 2012-01
|
||||||
|
0 !LICENSE Licensed under CC BY 4.0 : see CAreadme.txt
|
||||||
|
|
||||||
|
0 BFC CERTIFY CCW
|
||||||
|
|
||||||
|
0 !HISTORY 1998-12-15 [PTadmin] Official Update 1998-10
|
||||||
|
0 !HISTORY 2002-07-03 [sbliss] Added BFC statement
|
||||||
|
0 !HISTORY 2002-08-18 [PTadmin] Official Update 2002-04
|
||||||
|
0 !HISTORY 2007-06-22 [PTadmin] Header formatted for Contributor Agreement
|
||||||
|
0 !HISTORY 2008-07-01 [PTadmin] Official Update 2008-01
|
||||||
|
0 !HISTORY 2012-02-16 [Philo] Changed to CCW
|
||||||
|
0 !HISTORY 2012-03-30 [PTadmin] Official Update 2012-01
|
||||||
|
|
||||||
|
|
||||||
|
3 16 0.9239 0.0761 0.3827 0.9239 0 0.3827 1 0 0
|
||||||
|
4 16 0.9239 0.0761 0.3827 0.7071 0.2929 0.7071 0.7071 0 0.7071 0.9239 0 0.3827
|
||||||
|
4 16 0.7071 0.2929 0.7071 0.3827 0.6173 0.9239 0.3827 0 0.9239 0.7071 0 0.7071
|
||||||
|
4 16 0.3827 0.6173 0.9239 0 1 1 0 0 1 0.3827 0 0.9239
|
||||||
|
|
||||||
|
5 24 0.9239 0 0.3827 0.9239 0.0761 0.3827 0.7071 0 0.7071 1 0 0
|
||||||
|
5 24 0.7071 0 0.7071 0.7071 0.2929 0.7071 0.3827 0 0.9239 0.9239 0 0.3827
|
||||||
|
5 24 0.3827 0 0.9239 0.3827 0.6173 0.9239 0 0 1 0.7071 0 0.7071
|
||||||
|
5 24 0 0 1 0 1 1 0.3827 0 0.9239 -1 0 1
|
||||||
@@ -0,0 +1,15 @@
|
|||||||
|
0 Chord 0.125
|
||||||
|
0 Name: 1-8chrd.dat
|
||||||
|
0 Author: Orion Pobursky [OrionP]
|
||||||
|
0 !LDRAW_ORG Primitive UPDATE 2023-05
|
||||||
|
0 !LICENSE Licensed under CC BY 4.0 : see CAreadme.txt
|
||||||
|
|
||||||
|
0 BFC CERTIFY CCW
|
||||||
|
|
||||||
|
0 !HISTORY 2004-04-22 [PTadmin] Official Update 2004-02
|
||||||
|
0 !HISTORY 2007-06-22 [PTadmin] Header formatted for Contributor Agreement
|
||||||
|
0 !HISTORY 2008-07-01 [PTadmin] Official Update 2008-01
|
||||||
|
0 !HISTORY 2023-10-27 [OrionP] Rebuilt with PrimGen2, original author westrate
|
||||||
|
0 !HISTORY 2023-10-31 [OrionP] Official Update 2023-05
|
||||||
|
|
||||||
|
3 16 1 0 0 0.9239 0 0.3827 0.7071 0 0.7071
|
||||||
@@ -0,0 +1,21 @@
|
|||||||
|
0 Cylinder 0.125
|
||||||
|
0 Name: 1-8cyli.dat
|
||||||
|
0 Author: James Jessiman
|
||||||
|
0 !LDRAW_ORG Primitive UPDATE 2005-01
|
||||||
|
0 !LICENSE Licensed under CC BY 4.0 : see CAreadme.txt
|
||||||
|
|
||||||
|
0 BFC CERTIFY CCW
|
||||||
|
|
||||||
|
0 !HISTORY 2002-04-25 [PTadmin] Official Update 2002-02
|
||||||
|
0 !HISTORY 2004-12-11 [nielsk] Recreated using Primitive Generator, Edge lines fixed, BFC changed to CCW
|
||||||
|
0 !HISTORY 2005-12-28 [PTadmin] Official Update 2005-01
|
||||||
|
0 !HISTORY 2007-06-22 [PTadmin] Header formatted for Contributor Agreement
|
||||||
|
0 !HISTORY 2008-07-01 [PTadmin] Official Update 2008-01
|
||||||
|
|
||||||
|
|
||||||
|
4 16 .9239 1 .3827 .9239 0 .3827 1 0 0 1 1 0
|
||||||
|
4 16 .7071 1 .7071 .7071 0 .7071 .9239 0 .3827 .9239 1 .3827
|
||||||
|
5 24 1 1 0 1 0 0 1 1 -.4142 .9239 1 .3827
|
||||||
|
5 24 .9239 1 .3827 .9239 0 .3827 1 1 0 .7071 1 .7071
|
||||||
|
5 24 .7071 1 .7071 .7071 0 .7071 .9239 1 .3827 .4142 1 1
|
||||||
|
0
|
||||||
@@ -0,0 +1,16 @@
|
|||||||
|
0 Circle 0.125
|
||||||
|
0 Name: 1-8edge.dat
|
||||||
|
0 Author: James Jessiman
|
||||||
|
0 !LDRAW_ORG Primitive UPDATE 2017-01
|
||||||
|
0 !LICENSE Licensed under CC BY 4.0 : see CAreadme.txt
|
||||||
|
|
||||||
|
0 BFC CERTIFY CCW
|
||||||
|
|
||||||
|
0 !HISTORY 2007-06-22 [PTadmin] Header formatted for Contributor Agreement
|
||||||
|
0 !HISTORY 2008-07-01 [PTadmin] Official Update 2008-01
|
||||||
|
0 !HISTORY 2017-01-15 [Steffen] BFCed
|
||||||
|
0 !HISTORY 2017-12-30 [PTadmin] Official Update 2017-01
|
||||||
|
|
||||||
|
|
||||||
|
2 24 1 0 0 0.9239 0 0.3827
|
||||||
|
2 24 0.9239 0 0.3827 0.7071 0 0.7071
|
||||||
@@ -0,0 +1,15 @@
|
|||||||
|
0 Chord 0.5
|
||||||
|
0 Name: 2-4chrd.dat
|
||||||
|
0 Author: Philippe Hurbain [Philo]
|
||||||
|
0 !LDRAW_ORG Primitive UPDATE 2014-01
|
||||||
|
0 !LICENSE Licensed under CC BY 4.0 : see CAreadme.txt
|
||||||
|
|
||||||
|
0 BFC CERTIFY CCW
|
||||||
|
|
||||||
|
0 !HISTORY 2014-06-21 [PTadmin] Official Update 2014-01
|
||||||
|
|
||||||
|
|
||||||
|
4 16 0.9239 0 0.3827 -0.9239 0 0.3827 -1 0 0 1 0 0
|
||||||
|
4 16 0.7071 0 0.7071 -0.7071 0 0.7071 -0.9239 0 0.3827 0.9239 0 0.3827
|
||||||
|
4 16 0.3827 0 0.9239 -0.3827 0 0.9239 -0.7071 0 0.7071 0.7071 0 0.7071
|
||||||
|
3 16 0 0 1 -0.3827 0 0.9239 0.3827 0 0.9239
|
||||||
@@ -0,0 +1,34 @@
|
|||||||
|
0 Cylinder 0.5
|
||||||
|
0 Name: 2-4cyli.dat
|
||||||
|
0 Author: James Jessiman
|
||||||
|
0 !LDRAW_ORG Primitive UPDATE 2005-01
|
||||||
|
0 !LICENSE Licensed under CC BY 4.0 : see CAreadme.txt
|
||||||
|
|
||||||
|
0 BFC CERTIFY CCW
|
||||||
|
|
||||||
|
0 !HISTORY 2002-03-23 [sbliss] Added BFC statement; compacted code
|
||||||
|
0 !HISTORY 2002-04-25 [PTadmin] Official Update 2002-02
|
||||||
|
0 !HISTORY 2004-12-11 [nielsk] Recreated using Primitive Generator, Edge lines fixed, BFC changed to CCW
|
||||||
|
0 !HISTORY 2005-12-28 [PTadmin] Official Update 2005-01
|
||||||
|
0 !HISTORY 2007-06-24 [PTadmin] Header formatted for Contributor Agreement
|
||||||
|
0 !HISTORY 2008-07-01 [PTadmin] Official Update 2008-01
|
||||||
|
|
||||||
|
|
||||||
|
4 16 .9239 1 .3827 .9239 0 .3827 1 0 0 1 1 0
|
||||||
|
4 16 .7071 1 .7071 .7071 0 .7071 .9239 0 .3827 .9239 1 .3827
|
||||||
|
4 16 .3827 1 .9239 .3827 0 .9239 .7071 0 .7071 .7071 1 .7071
|
||||||
|
4 16 0 1 1 0 0 1 .3827 0 .9239 .3827 1 .9239
|
||||||
|
4 16 -.3827 1 .9239 -.3827 0 .9239 0 0 1 0 1 1
|
||||||
|
4 16 -.7071 1 .7071 -.7071 0 .7071 -.3827 0 .9239 -.3827 1 .9239
|
||||||
|
4 16 -.9239 1 .3827 -.9239 0 .3827 -.7071 0 .7071 -.7071 1 .7071
|
||||||
|
4 16 -1 1 0 -1 0 0 -.9239 0 .3827 -.9239 1 .3827
|
||||||
|
5 24 1 1 0 1 0 0 1 1 -.4142 .9239 1 .3827
|
||||||
|
5 24 .9239 1 .3827 .9239 0 .3827 1 1 0 .7071 1 .7071
|
||||||
|
5 24 .7071 1 .7071 .7071 0 .7071 .9239 1 .3827 .3827 1 .9239
|
||||||
|
5 24 .3827 1 .9239 .3827 0 .9239 .7071 1 .7071 0 1 1
|
||||||
|
5 24 0 1 1 0 0 1 .3827 1 .9239 -.3827 1 .9239
|
||||||
|
5 24 -.3827 1 .9239 -.3827 0 .9239 0 1 1 -.7071 1 .7071
|
||||||
|
5 24 -.7071 1 .7071 -.7071 0 .7071 -.3827 1 .9239 -.9239 1 .3827
|
||||||
|
5 24 -.9239 1 .3827 -.9239 0 .3827 -.7071 1 .7071 -1 1 0
|
||||||
|
5 24 -1 1 0 -1 0 0 -.9239 1 .3827 -1 1 -.4142
|
||||||
|
0
|
||||||
@@ -0,0 +1,22 @@
|
|||||||
|
0 Circle 0.5
|
||||||
|
0 Name: 2-4edge.dat
|
||||||
|
0 Author: James Jessiman
|
||||||
|
0 !LDRAW_ORG Primitive UPDATE 2017-01
|
||||||
|
0 !LICENSE Licensed under CC BY 4.0 : see CAreadme.txt
|
||||||
|
|
||||||
|
0 BFC CERTIFY CCW
|
||||||
|
|
||||||
|
0 !HISTORY 2007-06-24 [PTadmin] Header formatted for Contributor Agreement
|
||||||
|
0 !HISTORY 2008-07-01 [PTadmin] Official Update 2008-01
|
||||||
|
0 !HISTORY 2017-01-15 [Steffen] BFCed
|
||||||
|
0 !HISTORY 2017-12-30 [PTadmin] Official Update 2017-01
|
||||||
|
|
||||||
|
|
||||||
|
2 24 1 0 0 0.9239 0 0.3827
|
||||||
|
2 24 0.9239 0 0.3827 0.7071 0 0.7071
|
||||||
|
2 24 0.7071 0 0.7071 0.3827 0 0.9239
|
||||||
|
2 24 0.3827 0 0.9239 0 0 1
|
||||||
|
2 24 0 0 1 -0.3827 0 0.9239
|
||||||
|
2 24 -0.3827 0 0.9239 -0.7071 0 0.7071
|
||||||
|
2 24 -0.7071 0 0.7071 -0.9239 0 0.3827
|
||||||
|
2 24 -0.9239 0 0.3827 -1 0 0
|
||||||
@@ -0,0 +1,24 @@
|
|||||||
|
0 Disc Negative 0.5
|
||||||
|
0 Name: 2-4ndis.dat
|
||||||
|
0 Author: James Jessiman
|
||||||
|
0 !LDRAW_ORG Primitive UPDATE 2012-01
|
||||||
|
0 !LICENSE Licensed under CC BY 4.0 : see CAreadme.txt
|
||||||
|
|
||||||
|
0 BFC CERTIFY CCW
|
||||||
|
|
||||||
|
0 !HISTORY 2002-03-23 [sbliss] Added BFC statement; compacted code
|
||||||
|
0 !HISTORY 2002-04-25 [PTadmin] Official Update 2002-02
|
||||||
|
0 !HISTORY 2007-06-24 [PTadmin] Header formatted for Contributor Agreement
|
||||||
|
0 !HISTORY 2008-07-01 [PTadmin] Official Update 2008-01
|
||||||
|
0 !HISTORY 2012-02-16 [Philo] Changed to CCW
|
||||||
|
0 !HISTORY 2012-03-30 [PTadmin] Official Update 2012-01
|
||||||
|
|
||||||
|
|
||||||
|
3 16 0.9239 0 0.3827 1 0 0 1 0 1
|
||||||
|
3 16 0.7071 0 0.7071 0.9239 0 0.3827 1 0 1
|
||||||
|
3 16 0.3827 0 0.9239 0.7071 0 0.7071 1 0 1
|
||||||
|
3 16 0 0 1 0.3827 0 0.9239 1 0 1
|
||||||
|
3 16 -0.3827 0 0.9239 0 0 1 -1 0 1
|
||||||
|
3 16 -0.7071 0 0.7071 -0.3827 0 0.9239 -1 0 1
|
||||||
|
3 16 -0.9239 0 0.3827 -0.7071 0 0.7071 -1 0 1
|
||||||
|
3 16 -1 0 0 -0.9239 0 0.3827 -1 0 1
|
||||||
@@ -0,0 +1,42 @@
|
|||||||
|
0 Cylinder 0.75
|
||||||
|
0 Name: 3-4cyli.dat
|
||||||
|
0 Author: James Jessiman
|
||||||
|
0 !LDRAW_ORG Primitive UPDATE 2005-01
|
||||||
|
0 !LICENSE Licensed under CC BY 4.0 : see CAreadme.txt
|
||||||
|
|
||||||
|
0 BFC CERTIFY CCW
|
||||||
|
|
||||||
|
0 !HISTORY 2002-03-23 [sbliss] Added BFC statement; compacted code
|
||||||
|
0 !HISTORY 2002-04-25 [PTadmin] Official Update 2002-02
|
||||||
|
0 !HISTORY 2004-12-11 [nielsk] Recreated using Primitive Generator, Edge lines fixed, BFC changed to CCW
|
||||||
|
0 !HISTORY 2005-12-28 [PTadmin] Official Update 2005-01
|
||||||
|
0 !HISTORY 2007-06-24 [PTadmin] Header formatted for Contributor Agreement
|
||||||
|
0 !HISTORY 2008-07-01 [PTadmin] Official Update 2008-01
|
||||||
|
|
||||||
|
|
||||||
|
4 16 .9239 1 .3827 .9239 0 .3827 1 0 0 1 1 0
|
||||||
|
4 16 .7071 1 .7071 .7071 0 .7071 .9239 0 .3827 .9239 1 .3827
|
||||||
|
4 16 .3827 1 .9239 .3827 0 .9239 .7071 0 .7071 .7071 1 .7071
|
||||||
|
4 16 0 1 1 0 0 1 .3827 0 .9239 .3827 1 .9239
|
||||||
|
4 16 -.3827 1 .9239 -.3827 0 .9239 0 0 1 0 1 1
|
||||||
|
4 16 -.7071 1 .7071 -.7071 0 .7071 -.3827 0 .9239 -.3827 1 .9239
|
||||||
|
4 16 -.9239 1 .3827 -.9239 0 .3827 -.7071 0 .7071 -.7071 1 .7071
|
||||||
|
4 16 -1 1 0 -1 0 0 -.9239 0 .3827 -.9239 1 .3827
|
||||||
|
4 16 -.9239 1 -.3827 -.9239 0 -.3827 -1 0 0 -1 1 0
|
||||||
|
4 16 -.7071 1 -.7071 -.7071 0 -.7071 -.9239 0 -.3827 -.9239 1 -.3827
|
||||||
|
4 16 -.3827 1 -.9239 -.3827 0 -.9239 -.7071 0 -.7071 -.7071 1 -.7071
|
||||||
|
4 16 0 1 -1 0 0 -1 -.3827 0 -.9239 -.3827 1 -.9239
|
||||||
|
5 24 1 1 0 1 0 0 1 1 -.4142 .9239 1 .3827
|
||||||
|
5 24 .9239 1 .3827 .9239 0 .3827 1 1 0 .7071 1 .7071
|
||||||
|
5 24 .7071 1 .7071 .7071 0 .7071 .9239 1 .3827 .3827 1 .9239
|
||||||
|
5 24 .3827 1 .9239 .3827 0 .9239 .7071 1 .7071 0 1 1
|
||||||
|
5 24 0 1 1 0 0 1 .3827 1 .9239 -.3827 1 .9239
|
||||||
|
5 24 -.3827 1 .9239 -.3827 0 .9239 0 1 1 -.7071 1 .7071
|
||||||
|
5 24 -.7071 1 .7071 -.7071 0 .7071 -.3827 1 .9239 -.9239 1 .3827
|
||||||
|
5 24 -.9239 1 .3827 -.9239 0 .3827 -.7071 1 .7071 -1 1 0
|
||||||
|
5 24 -1 1 0 -1 0 0 -.9239 1 .3827 -.9239 1 -.3827
|
||||||
|
5 24 -.9239 1 -.3827 -.9239 0 -.3827 -1 1 0 -.7071 1 -.7071
|
||||||
|
5 24 -.7071 1 -.7071 -.7071 0 -.7071 -.9239 1 -.3827 -.3827 1 -.9239
|
||||||
|
5 24 -.3827 1 -.9239 -.3827 0 -.9239 -.7071 1 -.7071 0 1 -1
|
||||||
|
5 24 0 1 -1 0 0 -1 -.3827 1 -.9239 .4142 1 -1
|
||||||
|
0
|
||||||
@@ -0,0 +1,27 @@
|
|||||||
|
0 Disc 0.75
|
||||||
|
0 Name: 3-4disc.dat
|
||||||
|
0 Author: James Jessiman
|
||||||
|
0 !LDRAW_ORG Primitive UPDATE 2002-02
|
||||||
|
0 !LICENSE Licensed under CC BY 4.0 : see CAreadme.txt
|
||||||
|
|
||||||
|
0 BFC CERTIFY CCW
|
||||||
|
|
||||||
|
0 !HISTORY 2002-03-23 [sbliss] Added BFC statement
|
||||||
|
0 !HISTORY 2002-04-25 [PTadmin] Official Update 2002-02
|
||||||
|
0 !HISTORY 2007-06-24 [PTadmin] Header formatted for Contributor Agreement
|
||||||
|
0 !HISTORY 2008-07-01 [PTadmin] Official Update 2008-01
|
||||||
|
|
||||||
|
|
||||||
|
3 16 0 0 0 1 0 0 0.9239 0 0.3827
|
||||||
|
3 16 0 0 0 0.9239 0 0.3827 0.7071 0 0.7071
|
||||||
|
3 16 0 0 0 0.7071 0 0.7071 0.3827 0 0.9239
|
||||||
|
3 16 0 0 0 0.3827 0 0.9239 0 0 1
|
||||||
|
3 16 0 0 0 0 0 1 -0.3827 0 0.9239
|
||||||
|
3 16 0 0 0 -0.3827 0 0.9239 -0.7071 0 0.7071
|
||||||
|
3 16 0 0 0 -0.7071 0 0.7071 -0.9239 0 0.3827
|
||||||
|
3 16 0 0 0 -0.9239 0 0.3827 -1 0 0
|
||||||
|
3 16 0 0 0 -1 0 0 -0.9239 0 -0.3827
|
||||||
|
3 16 0 0 0 -0.9239 0 -0.3827 -0.7071 0 -0.7071
|
||||||
|
3 16 0 0 0 -0.7071 0 -0.7071 -0.3827 0 -0.9239
|
||||||
|
3 16 0 0 0 -0.3827 0 -0.9239 0 0 -1
|
||||||
|
0
|
||||||
@@ -0,0 +1,26 @@
|
|||||||
|
0 Circle 0.75
|
||||||
|
0 Name: 3-4edge.dat
|
||||||
|
0 Author: James Jessiman
|
||||||
|
0 !LDRAW_ORG Primitive UPDATE 2017-01
|
||||||
|
0 !LICENSE Licensed under CC BY 4.0 : see CAreadme.txt
|
||||||
|
|
||||||
|
0 BFC CERTIFY CCW
|
||||||
|
|
||||||
|
0 !HISTORY 2007-06-24 [PTadmin] Header formatted for Contributor Agreement
|
||||||
|
0 !HISTORY 2008-07-01 [PTadmin] Official Update 2008-01
|
||||||
|
0 !HISTORY 2017-01-15 [Steffen] BFCed
|
||||||
|
0 !HISTORY 2017-12-30 [PTadmin] Official Update 2017-01
|
||||||
|
|
||||||
|
|
||||||
|
2 24 1 0 0 0.9239 0 0.3827
|
||||||
|
2 24 0.9239 0 0.3827 0.7071 0 0.7071
|
||||||
|
2 24 0.7071 0 0.7071 0.3827 0 0.9239
|
||||||
|
2 24 0.3827 0 0.9239 0 0 1
|
||||||
|
2 24 0 0 1 -0.3827 0 0.9239
|
||||||
|
2 24 -0.3827 0 0.9239 -0.7071 0 0.7071
|
||||||
|
2 24 -0.7071 0 0.7071 -0.9239 0 0.3827
|
||||||
|
2 24 -0.9239 0 0.3827 -1 0 0
|
||||||
|
2 24 -1 0 -0 -0.9239 0 -0.3827
|
||||||
|
2 24 -0.9239 0 -0.3827 -0.7071 0 -0.7071
|
||||||
|
2 24 -0.7071 0 -0.7071 -0.3827 0 -0.9239
|
||||||
|
2 24 -0.3827 0 -0.9239 0 0 -1
|
||||||
@@ -0,0 +1,20 @@
|
|||||||
|
0 Brick 2 x 4
|
||||||
|
0 Name: 3001.dat
|
||||||
|
0 Author: James Jessiman
|
||||||
|
0 !LDRAW_ORG Part UPDATE 2004-03
|
||||||
|
0 !LICENSE Licensed under CC BY 4.0 : see CAreadme.txt
|
||||||
|
|
||||||
|
0 BFC CERTIFY CCW
|
||||||
|
|
||||||
|
0 !HISTORY 2002-05-07 {unknown} BFC Certification
|
||||||
|
0 !HISTORY 2002-06-11 [PTadmin] Official Update 2002-03
|
||||||
|
0 !HISTORY 2004-02-08 [Steffen] used s\3001s01.dat
|
||||||
|
0 !HISTORY 2004-09-15 [PTadmin] Official Update 2004-03
|
||||||
|
0 !HISTORY 2007-05-07 [PTadmin] Header formatted for Contributor Agreement
|
||||||
|
0 !HISTORY 2008-07-01 [PTadmin] Official Update 2008-01
|
||||||
|
|
||||||
|
|
||||||
|
1 16 0 0 0 1 0 0 0 1 0 0 0 1 s\3001s01.dat
|
||||||
|
4 16 -40 0 -20 -40 24 -20 40 24 -20 40 0 -20
|
||||||
|
4 16 40 0 20 40 24 20 -40 24 20 -40 0 20
|
||||||
|
0
|
||||||
@@ -0,0 +1,19 @@
|
|||||||
|
0 Brick 2 x 2
|
||||||
|
0 Name: 3003.dat
|
||||||
|
0 Author: James Jessiman
|
||||||
|
0 !LDRAW_ORG Part UPDATE 2022-05
|
||||||
|
0 !LICENSE Licensed under CC BY 4.0 : see CAreadme.txt
|
||||||
|
|
||||||
|
0 BFC CERTIFY CCW
|
||||||
|
|
||||||
|
0 !HISTORY 2001-10-26 [PTadmin] Official Update 2001-01
|
||||||
|
0 !HISTORY 2002-05-07 {unknown} BFC Certification
|
||||||
|
0 !HISTORY 2002-06-11 [PTadmin] Official Update 2002-03
|
||||||
|
0 !HISTORY 2007-05-07 [PTadmin] Header formatted for Contributor Agreement
|
||||||
|
0 !HISTORY 2008-07-01 [PTadmin] Official Update 2008-01
|
||||||
|
0 !HISTORY 2022-08-04 [MagFors] Using subfile
|
||||||
|
0 !HISTORY 2022-09-15 [PTadmin] Official Update 2022-05
|
||||||
|
|
||||||
|
|
||||||
|
1 16 0 0 0 1 0 0 0 1 0 0 0 1 s\3003s01.dat
|
||||||
|
4 16 -20 24 -20 20 24 -20 20 0 -20 -20 0 -20
|
||||||
@@ -0,0 +1,19 @@
|
|||||||
|
0 Brick 1 x 2
|
||||||
|
0 Name: 3004.dat
|
||||||
|
0 Author: James Jessiman
|
||||||
|
0 !LDRAW_ORG Part UPDATE 2022-05
|
||||||
|
0 !LICENSE Licensed under CC BY 4.0 : see CAreadme.txt
|
||||||
|
|
||||||
|
0 BFC CERTIFY CCW
|
||||||
|
|
||||||
|
0 !HISTORY 2001-10-26 [PTadmin] Official Update 2001-01
|
||||||
|
0 !HISTORY 2002-05-07 {unknown} BFC Certification
|
||||||
|
0 !HISTORY 2002-06-11 [PTadmin] Official Update 2002-03
|
||||||
|
0 !HISTORY 2007-05-07 [PTadmin] Header formatted for Contributor Agreement
|
||||||
|
0 !HISTORY 2008-07-01 [PTadmin] Official Update 2008-01
|
||||||
|
0 !HISTORY 2022-08-04 [MagFors] Using subfile
|
||||||
|
0 !HISTORY 2022-09-15 [PTadmin] Official Update 2022-05
|
||||||
|
|
||||||
|
|
||||||
|
1 16 0 0 0 1 0 0 0 1 0 0 0 1 s\3004s01.dat
|
||||||
|
4 16 -20 24 -10 20 24 -10 20 0 -10 -20 0 -10
|
||||||
@@ -0,0 +1,19 @@
|
|||||||
|
0 Brick 1 x 1
|
||||||
|
0 Name: 3005.dat
|
||||||
|
0 Author: James Jessiman
|
||||||
|
0 !LDRAW_ORG Part UPDATE 2022-05
|
||||||
|
0 !LICENSE Licensed under CC BY 4.0 : see CAreadme.txt
|
||||||
|
|
||||||
|
0 BFC CERTIFY CCW
|
||||||
|
|
||||||
|
0 !HISTORY 2001-10-26 [PTadmin] Official Update 2001-01
|
||||||
|
0 !HISTORY 2002-05-07 {unknown} BFC Certification
|
||||||
|
0 !HISTORY 2002-06-11 [PTadmin] Official Update 2002-03
|
||||||
|
0 !HISTORY 2007-05-07 [PTadmin] Header formatted for Contributor Agreement
|
||||||
|
0 !HISTORY 2008-07-01 [PTadmin] Official Update 2008-01
|
||||||
|
0 !HISTORY 2022-08-04 [MagFors] Using subfile
|
||||||
|
0 !HISTORY 2022-09-15 [PTadmin] Official Update 2022-05
|
||||||
|
|
||||||
|
|
||||||
|
1 16 0 0 0 1 0 0 0 1 0 0 0 1 s\3005s01.dat
|
||||||
|
4 16 -10 24 -10 10 24 -10 10 0 -10 -10 0 -10
|
||||||
@@ -0,0 +1,21 @@
|
|||||||
|
0 Brick 1 x 4
|
||||||
|
0 Name: 3010.dat
|
||||||
|
0 Author: James Jessiman
|
||||||
|
0 !LDRAW_ORG Part UPDATE 2025-09
|
||||||
|
0 !LICENSE Licensed under CC BY 4.0 : see CAreadme.txt
|
||||||
|
|
||||||
|
0 BFC CERTIFY CCW
|
||||||
|
|
||||||
|
0 !HISTORY 2001-10-26 [PTadmin] Official Update 2001-01
|
||||||
|
0 !HISTORY 2002-05-07 {unknown} BFC Certification
|
||||||
|
0 !HISTORY 2002-06-11 [PTadmin] Official Update 2002-03
|
||||||
|
0 !HISTORY 2002-12-12 [hafhead] New subparted version
|
||||||
|
0 !HISTORY 2003-08-01 [PTadmin] Official Update 2003-02
|
||||||
|
0 !HISTORY 2007-06-06 [PTadmin] Header formatted for Contributor Agreement
|
||||||
|
0 !HISTORY 2008-07-01 [PTadmin] Official Update 2008-01
|
||||||
|
0 !HISTORY 2025-09-27 [OrionP] Changed winding to CCW
|
||||||
|
0 !HISTORY 2025-09-29 [OrionP] Official Update 2025-09
|
||||||
|
|
||||||
|
1 16 0 0 0 1 0 0 0 1 0 0 0 1 s\3010s01.dat
|
||||||
|
4 16 -40 24 -10 40 24 -10 40 0 -10 -40 0 -10
|
||||||
|
0
|
||||||
@@ -0,0 +1,40 @@
|
|||||||
|
0 Plate 2 x 4
|
||||||
|
0 Name: 3020.dat
|
||||||
|
0 Author: James Jessiman
|
||||||
|
0 !LDRAW_ORG Part UPDATE 2002-03
|
||||||
|
0 !LICENSE Licensed under CC BY 4.0 : see CAreadme.txt
|
||||||
|
|
||||||
|
0 BFC CERTIFY CCW
|
||||||
|
|
||||||
|
0 !HISTORY 2001-10-26 [PTadmin] Official Update 2001-01
|
||||||
|
0 !HISTORY 2002-05-07 {unknown} BFC Certification
|
||||||
|
0 !HISTORY 2002-06-11 [PTadmin] Official Update 2002-03
|
||||||
|
0 !HISTORY 2007-06-07 [PTadmin] Header formatted for Contributor Agreement
|
||||||
|
0 !HISTORY 2008-07-01 [PTadmin] Official Update 2008-01
|
||||||
|
|
||||||
|
|
||||||
|
1 16 20 4 0 1 0 0 0 -1 0 0 0 1 stud4.dat
|
||||||
|
1 16 0 4 0 1 0 0 0 -1 0 0 0 1 stud4.dat
|
||||||
|
1 16 -20 4 0 1 0 0 0 -1 0 0 0 1 stud4.dat
|
||||||
|
|
||||||
|
0 BFC INVERTNEXT
|
||||||
|
1 16 0 8 0 36 0 0 0 -4 0 0 0 16 box5.dat
|
||||||
|
|
||||||
|
4 16 40 8 20 36 8 16 -36 8 16 -40 8 20
|
||||||
|
0 // Next Line was 4 16 40 8 -20 36 8 -16 -36 8 -16 -40 8 -20
|
||||||
|
4 16 -40 8 -20 -36 8 -16 36 8 -16 40 8 -20
|
||||||
|
0 // Next Line was 4 16 40 8 20 36 8 16 36 8 -16 40 8 -20
|
||||||
|
4 16 40 8 -20 36 8 -16 36 8 16 40 8 20
|
||||||
|
4 16 -40 8 20 -36 8 16 -36 8 -16 -40 8 -20
|
||||||
|
|
||||||
|
1 16 0 8 0 40 0 0 0 -8 0 0 0 20 box5.dat
|
||||||
|
|
||||||
|
1 16 30 0 10 1 0 0 0 1 0 0 0 1 stud.dat
|
||||||
|
1 16 10 0 10 1 0 0 0 1 0 0 0 1 stud.dat
|
||||||
|
1 16 -10 0 10 1 0 0 0 1 0 0 0 1 stud.dat
|
||||||
|
1 16 -30 0 10 1 0 0 0 1 0 0 0 1 stud.dat
|
||||||
|
1 16 30 0 -10 1 0 0 0 1 0 0 0 1 stud.dat
|
||||||
|
1 16 10 0 -10 1 0 0 0 1 0 0 0 1 stud.dat
|
||||||
|
1 16 -10 0 -10 1 0 0 0 1 0 0 0 1 stud.dat
|
||||||
|
1 16 -30 0 -10 1 0 0 0 1 0 0 0 1 stud.dat
|
||||||
|
0
|
||||||
@@ -0,0 +1,34 @@
|
|||||||
|
0 Plate 2 x 2
|
||||||
|
0 Name: 3022.dat
|
||||||
|
0 Author: James Jessiman
|
||||||
|
0 !LDRAW_ORG Part UPDATE 2002-03
|
||||||
|
0 !LICENSE Licensed under CC BY 4.0 : see CAreadme.txt
|
||||||
|
|
||||||
|
0 BFC CERTIFY CCW
|
||||||
|
|
||||||
|
0 !HISTORY 2001-10-26 [PTadmin] Official Update 2001-01
|
||||||
|
0 !HISTORY 2002-05-07 {unknown} BFC Certification
|
||||||
|
0 !HISTORY 2002-06-11 [PTadmin] Official Update 2002-03
|
||||||
|
0 !HISTORY 2007-06-07 [PTadmin] Header formatted for Contributor Agreement
|
||||||
|
0 !HISTORY 2008-07-01 [PTadmin] Official Update 2008-01
|
||||||
|
|
||||||
|
|
||||||
|
1 16 0 4 0 1 0 0 0 -1 0 0 0 1 stud4.dat
|
||||||
|
|
||||||
|
0 BFC INVERTNEXT
|
||||||
|
1 16 0 8 0 16 0 0 0 -4 0 0 0 16 box5.dat
|
||||||
|
|
||||||
|
4 16 20 8 20 16 8 16 -16 8 16 -20 8 20
|
||||||
|
0 // Next Line was 4 16 20 8 -20 16 8 -16 -16 8 -16 -20 8 -20
|
||||||
|
4 16 -20 8 -20 -16 8 -16 16 8 -16 20 8 -20
|
||||||
|
0 // Next Line was 4 16 20 8 20 16 8 16 16 8 -16 20 8 -20
|
||||||
|
4 16 20 8 -20 16 8 -16 16 8 16 20 8 20
|
||||||
|
4 16 -20 8 20 -16 8 16 -16 8 -16 -20 8 -20
|
||||||
|
|
||||||
|
1 16 0 8 0 20 0 0 0 -8 0 0 0 20 box5.dat
|
||||||
|
|
||||||
|
1 16 10 0 10 1 0 0 0 1 0 0 0 1 stud.dat
|
||||||
|
1 16 -10 0 10 1 0 0 0 1 0 0 0 1 stud.dat
|
||||||
|
1 16 10 0 -10 1 0 0 0 1 0 0 0 1 stud.dat
|
||||||
|
1 16 -10 0 -10 1 0 0 0 1 0 0 0 1 stud.dat
|
||||||
|
0
|
||||||
@@ -0,0 +1,23 @@
|
|||||||
|
0 Plate 1 x 2
|
||||||
|
0 Name: 3023b.dat
|
||||||
|
0 Author: James Jessiman
|
||||||
|
0 !LDRAW_ORG Part UPDATE 2023-03
|
||||||
|
0 !LICENSE Licensed under CC BY 4.0 : see CAreadme.txt
|
||||||
|
|
||||||
|
0 BFC CERTIFY CCW
|
||||||
|
|
||||||
|
0 !KEYWORDS BrickLink 3023, Rebrickable 3023
|
||||||
|
|
||||||
|
0 !HISTORY 2001-10-26 [PTadmin] Official Update 2001-01
|
||||||
|
0 !HISTORY 2002-05-07 {unknown} BFC Certification
|
||||||
|
0 !HISTORY 2002-06-11 [PTadmin] Official Update 2002-03
|
||||||
|
0 !HISTORY 2007-06-07 [PTadmin] Header formatted for Contributor Agreement
|
||||||
|
0 !HISTORY 2008-07-01 [PTadmin] Official Update 2008-01
|
||||||
|
0 !HISTORY 2020-03-07 [Sirio] Subparted
|
||||||
|
0 !HISTORY 2022-01-14 [PTadmin] Official Update 2022-01
|
||||||
|
0 !HISTORY 2023-05-26 [OrionP] Moved from 3023.dat
|
||||||
|
0 !HISTORY 2023-06-24 [OrionP] Official Update 2023-03
|
||||||
|
|
||||||
|
|
||||||
|
1 16 0 0 0 1 0 0 0 1 0 0 0 1 s\3023bs01.dat
|
||||||
|
4 16 -20 0 -10 -20 8 -10 20 8 -10 20 0 -10
|
||||||
@@ -0,0 +1,19 @@
|
|||||||
|
0 Plate 1 x 1
|
||||||
|
0 Name: 3024.dat
|
||||||
|
0 Author: James Jessiman
|
||||||
|
0 !LDRAW_ORG Part UPDATE 2022-05
|
||||||
|
0 !LICENSE Licensed under CC BY 4.0 : see CAreadme.txt
|
||||||
|
|
||||||
|
0 BFC CERTIFY CCW
|
||||||
|
|
||||||
|
0 !HISTORY 2001-10-26 [PTadmin] Official Update 2001-01
|
||||||
|
0 !HISTORY 2002-05-07 {unknown} BFC Certification
|
||||||
|
0 !HISTORY 2002-06-11 [PTadmin] Official Update 2002-03
|
||||||
|
0 !HISTORY 2007-06-07 [PTadmin] Header formatted for Contributor Agreement
|
||||||
|
0 !HISTORY 2008-07-01 [PTadmin] Official Update 2008-01
|
||||||
|
0 !HISTORY 2022-08-04 [MagFors] Using subfile
|
||||||
|
0 !HISTORY 2022-09-15 [PTadmin] Official Update 2022-05
|
||||||
|
|
||||||
|
|
||||||
|
1 16 0 0 0 1 0 0 0 1 0 0 0 1 s\3024s01.dat
|
||||||
|
4 16 -10 8 -10 10 8 -10 10 0 -10 -10 0 -10
|
||||||
@@ -0,0 +1,17 @@
|
|||||||
|
0 Slope Brick 45 2 x 2
|
||||||
|
0 Name: 3039.dat
|
||||||
|
0 Author: James Jessiman
|
||||||
|
0 !LDRAW_ORG Part UPDATE 2003-03
|
||||||
|
0 !LICENSE Licensed under CC BY 4.0 : see CAreadme.txt
|
||||||
|
|
||||||
|
0 BFC CERTIFY CCW
|
||||||
|
|
||||||
|
0 !HISTORY 2003-07-02 [Steffen] BFCed; re-worked part to use s\3039s01.dat
|
||||||
|
0 !HISTORY 2003-12-19 [PTadmin] Official Update 2003-03
|
||||||
|
0 !HISTORY 2007-06-09 [PTadmin] Header formatted for Contributor Agreement
|
||||||
|
0 !HISTORY 2008-07-01 [PTadmin] Official Update 2008-01
|
||||||
|
|
||||||
|
|
||||||
|
1 16 0 0 0 1 0 0 0 1 0 0 0 1 s\3039s01.dat
|
||||||
|
4 16 20 20 -30 20 0 -10 -20 0 -10 -20 20 -30
|
||||||
|
0
|
||||||
@@ -0,0 +1,20 @@
|
|||||||
|
0 Slope Brick 45 2 x 1
|
||||||
|
0 Name: 3040b.dat
|
||||||
|
0 Author: James Jessiman
|
||||||
|
0 !LDRAW_ORG Part UPDATE 2004-04
|
||||||
|
0 !LICENSE Licensed under CC BY 4.0 : see CAreadme.txt
|
||||||
|
|
||||||
|
0 BFC CERTIFY CCW
|
||||||
|
|
||||||
|
0 !KEYWORDS BrickLink 3040
|
||||||
|
|
||||||
|
0 !HISTORY 2002-09-13 [izanette] modified with WINDZ for BFC compliance
|
||||||
|
0 !HISTORY 2003-07-11 [Steffen] made use of existing subfile
|
||||||
|
0 !HISTORY 2004-11-06 [PTadmin] Official Update 2004-04
|
||||||
|
0 !HISTORY 2007-06-09 [PTadmin] Header formatted for Contributor Agreement
|
||||||
|
0 !HISTORY 2008-07-01 [PTadmin] Official Update 2008-01
|
||||||
|
|
||||||
|
|
||||||
|
1 16 0 0 0 1 0 0 0 1 0 0 0 1 s\3040s01.dat
|
||||||
|
4 16 10 20 -30 10 0 -10 -10 0 -10 -10 20 -30
|
||||||
|
0
|
||||||
@@ -0,0 +1,24 @@
|
|||||||
|
0 Brick 1 x 1 Round with Hollow Stud
|
||||||
|
0 Name: 3062b.dat
|
||||||
|
0 Author: James Jessiman
|
||||||
|
0 !LDRAW_ORG Part UPDATE 2022-02
|
||||||
|
0 !LICENSE Licensed under CC BY 4.0 : see CAreadme.txt
|
||||||
|
|
||||||
|
0 BFC CERTIFY CCW
|
||||||
|
|
||||||
|
0 !KEYWORDS BrickLink 3062
|
||||||
|
|
||||||
|
0 !HISTORY 1998-06-20 [PTadmin] Official Update 1998-06
|
||||||
|
0 !HISTORY 2003-08-02 [OrionP] Made some primitive subs
|
||||||
|
0 !HISTORY 2003-08-04 [Steffen] replaced peghole.dat by stud4a.dat
|
||||||
|
0 !HISTORY 2003-12-19 [PTadmin] Official Update 2003-03
|
||||||
|
0 !HISTORY 2007-06-10 [PTadmin] Header formatted for Contributor Agreement
|
||||||
|
0 !HISTORY 2008-07-01 [PTadmin] Official Update 2008-01
|
||||||
|
0 !HISTORY 2009-03-19 [tchang] Add missing <CR>
|
||||||
|
0 !HISTORY 2009-09-03 [PTadmin] Official Update 2009-02
|
||||||
|
0 !HISTORY 2020-12-12 [RainbowDolphin] Subparted for patterns
|
||||||
|
0 !HISTORY 2022-03-06 [PTadmin] Official Update 2022-02
|
||||||
|
|
||||||
|
|
||||||
|
1 16 0 0 0 1 0 0 0 1 0 0 0 1 s\3062bs01.dat
|
||||||
|
1 16 0 0 0 10 0 0 0 19 0 0 0 10 4-4cyli.dat
|
||||||
@@ -0,0 +1,21 @@
|
|||||||
|
0 Tile 2 x 2 with Groove
|
||||||
|
0 Name: 3068b.dat
|
||||||
|
0 Author: Takeshi Takahashi [RainbowDolphin]
|
||||||
|
0 !LDRAW_ORG Part UPDATE 2024-06
|
||||||
|
0 !LICENSE Licensed under CC BY 4.0 : see CAreadme.txt
|
||||||
|
|
||||||
|
0 BFC CERTIFY CCW
|
||||||
|
|
||||||
|
0 !KEYWORDS BrickLink 3068
|
||||||
|
|
||||||
|
0 !HISTORY 2002-04-25 [PTadmin] Official Update 2002-02
|
||||||
|
0 !HISTORY 2004-07-26 [guyvivan] Made BFC Compliant
|
||||||
|
0 !HISTORY 2004-11-06 [PTadmin] Official Update 2004-04
|
||||||
|
0 !HISTORY 2007-06-13 [PTadmin] Header formatted for Contributor Agreement
|
||||||
|
0 !HISTORY 2008-07-01 [PTadmin] Official Update 2008-01
|
||||||
|
0 !HISTORY 2024-05-29 [RainbowDolphin] Total rewrite, original by Damien Guichard [BrickCaster]
|
||||||
|
0 !HISTORY 2024-07-29 [OrionP] Official Update 2024-06
|
||||||
|
|
||||||
|
1 16 0 0 0 1 0 0 0 1 0 0 0 1 s\3068bs01.dat
|
||||||
|
0 // Patternable surface
|
||||||
|
4 16 -20 0 -20 20 0 -20 20 0 20 -20 0 20
|
||||||
@@ -0,0 +1,16 @@
|
|||||||
|
0 Tile 1 x 2 with Groove
|
||||||
|
0 Name: 3069b.dat
|
||||||
|
0 Author: Santeri Piippo [arezey]
|
||||||
|
0 !LDRAW_ORG Part UPDATE 2010-02
|
||||||
|
0 !LICENSE Licensed under CC BY 4.0 : see CAreadme.txt
|
||||||
|
|
||||||
|
0 BFC CERTIFY CCW
|
||||||
|
|
||||||
|
0 !KEYWORDS BrickLink 3069
|
||||||
|
|
||||||
|
0 !HISTORY 2010-07-05 [PTadmin] Official Update 2010-02
|
||||||
|
|
||||||
|
|
||||||
|
4 16 20 0 -10 20 0 10 -20 0 10 -20 0 -10
|
||||||
|
1 16 0 0 0 1 0 0 0 1 0 0 0 1 s\3069bs01.dat
|
||||||
|
0 //
|
||||||
@@ -0,0 +1,19 @@
|
|||||||
|
0 Brick 2 x 2 Round without Reinforcement
|
||||||
|
0 Name: 3941.dat
|
||||||
|
0 Author: James Jessiman
|
||||||
|
0 !LDRAW_ORG Part UPDATE 2020-01
|
||||||
|
0 !LICENSE Licensed under CC BY 4.0 : see CAreadme.txt
|
||||||
|
|
||||||
|
0 BFC CERTIFY CCW
|
||||||
|
|
||||||
|
0 !HISTORY 2003-08-21 [OrionP] Changed stud to stud10, BFC'd
|
||||||
|
0 !HISTORY 2004-04-22 [PTadmin] Official Update 2004-02
|
||||||
|
0 !HISTORY 2007-06-30 [PTadmin] Header formatted for Contributor Agreement
|
||||||
|
0 !HISTORY 2008-07-01 [PTadmin] Official Update 2008-01
|
||||||
|
0 !HISTORY 2018-02-20 [MagFors] Used subfile
|
||||||
|
0 !HISTORY 2019-06-28 [PTadmin] Official Update 2019-01
|
||||||
|
0 !HISTORY 2020-06-28 [PTadmin] Official Update 2020-01
|
||||||
|
|
||||||
|
|
||||||
|
1 16 0 0 0 1 0 0 0 1 0 0 0 1 s\3941s01.dat
|
||||||
|
1 16 0 0 0 20 0 0 0 20 0 0 0 20 4-4cyli.dat
|
||||||
@@ -0,0 +1,50 @@
|
|||||||
|
0 Cylinder 1.0
|
||||||
|
0 Name: 4-4cyli.dat
|
||||||
|
0 Author: James Jessiman
|
||||||
|
0 !LDRAW_ORG Primitive UPDATE 2005-01
|
||||||
|
0 !LICENSE Licensed under CC BY 4.0 : see CAreadme.txt
|
||||||
|
|
||||||
|
0 BFC CERTIFY CCW
|
||||||
|
|
||||||
|
0 !HISTORY 1998-12-15 [PTadmin] Official Update 1998-10
|
||||||
|
0 !HISTORY 2002-03-23 [sbliss] Added BFC statement; merged headers from files in distributions LDraw 0.27 and Complete.
|
||||||
|
0 !HISTORY 2002-04-25 [PTadmin] Official Update 2002-02
|
||||||
|
0 !HISTORY 2004-12-14 [guyvivan] BFC CCW
|
||||||
|
0 !HISTORY 2005-12-28 [PTadmin] Official Update 2005-01
|
||||||
|
0 !HISTORY 2007-06-24 [PTadmin] Header formatted for Contributor Agreement
|
||||||
|
0 !HISTORY 2008-07-01 [PTadmin] Official Update 2008-01
|
||||||
|
|
||||||
|
|
||||||
|
4 16 1 1 0 0.9239 1 0.3827 0.9239 0 0.3827 1 0 0
|
||||||
|
5 24 1 0 0 1 1 0 0.9239 0 0.3827 0.9239 0 -0.3827
|
||||||
|
4 16 0.9239 1 0.3827 0.7071 1 0.7071 0.7071 0 0.7071 0.9239 0 0.3827
|
||||||
|
5 24 0.9239 0 0.3827 0.9239 1 0.3827 0.7071 0 0.7071 1 0 0
|
||||||
|
4 16 0.7071 1 0.7071 0.3827 1 0.9239 0.3827 0 0.9239 0.7071 0 0.7071
|
||||||
|
5 24 0.7071 0 0.7071 0.7071 1 0.7071 0.3827 0 0.9239 0.9239 0 0.3827
|
||||||
|
4 16 0.3827 1 0.9239 0 1 1 0 0 1 0.3827 0 0.9239
|
||||||
|
5 24 0.3827 0 0.9239 0.3827 1 0.9239 0 0 1 0.7071 0 0.7071
|
||||||
|
4 16 0 1 1 -0.3827 1 0.9239 -0.3827 0 0.9239 0 0 1
|
||||||
|
5 24 0 0 1 0 1 1 -0.3827 0 0.9239 0.3827 0 0.9239
|
||||||
|
4 16 -0.3827 1 0.9239 -0.7071 1 0.7071 -0.7071 0 0.7071 -0.3827 0 0.9239
|
||||||
|
5 24 -0.3827 0 0.9239 -0.3827 1 0.9239 -0.7071 0 0.7071 0 0 1
|
||||||
|
4 16 -0.7071 1 0.7071 -0.9239 1 0.3827 -0.9239 0 0.3827 -0.7071 0 0.7071
|
||||||
|
5 24 -0.7071 0 0.7071 -0.7071 1 0.7071 -0.9239 0 0.3827 -0.3827 0 0.9239
|
||||||
|
4 16 -0.9239 1 0.3827 -1 1 0 -1 0 0 -0.9239 0 0.3827
|
||||||
|
5 24 -0.9239 0 0.3827 -0.9239 1 0.3827 -1 0 0 -0.7071 0 0.7071
|
||||||
|
4 16 -1 1 0 -0.9239 1 -0.3827 -0.9239 0 -0.3827 -1 0 0
|
||||||
|
5 24 -1 0 0 -1 1 0 -0.9239 0 -0.3827 -0.9239 0 0.3827
|
||||||
|
4 16 -0.9239 1 -0.3827 -0.7071 1 -0.7071 -0.7071 0 -0.7071 -0.9239 0 -0.3827
|
||||||
|
5 24 -0.9239 0 -0.3827 -0.9239 1 -0.3827 -0.7071 0 -0.7071 -1 0 0
|
||||||
|
4 16 -0.7071 1 -0.7071 -0.3827 1 -0.9239 -0.3827 0 -0.9239 -0.7071 0 -0.7071
|
||||||
|
5 24 -0.7071 0 -0.7071 -0.7071 1 -0.7071 -0.3827 0 -0.9239 -0.9239 0 -0.3827
|
||||||
|
4 16 -0.3827 1 -0.9239 0 1 -1 0 0 -1 -0.3827 0 -0.9239
|
||||||
|
5 24 -0.3827 0 -0.9239 -0.3827 1 -0.9239 0 0 -1 -0.7071 0 -0.7071
|
||||||
|
4 16 0 1 -1 0.3827 1 -0.9239 0.3827 0 -0.9239 0 0 -1
|
||||||
|
5 24 0 0 -1 0 1 -1 0.3827 0 -0.9239 -0.3827 0 -0.9239
|
||||||
|
4 16 0.3827 1 -0.9239 0.7071 1 -0.7071 0.7071 0 -0.7071 0.3827 0 -0.9239
|
||||||
|
5 24 0.3827 0 -0.9239 0.3827 1 -0.9239 0.7071 0 -0.7071 0 0 -1
|
||||||
|
4 16 0.7071 1 -0.7071 0.9239 1 -0.3827 0.9239 0 -0.3827 0.7071 0 -0.7071
|
||||||
|
5 24 0.7071 0 -0.7071 0.7071 1 -0.7071 0.9239 0 -0.3827 0.3827 0 -0.9239
|
||||||
|
4 16 0.9239 1 -0.3827 1 1 0 1 0 0 0.9239 0 -0.3827
|
||||||
|
5 24 0.9239 0 -0.3827 0.9239 1 -0.3827 1 0 0 0.7071 0 -0.7071
|
||||||
|
0
|
||||||
@@ -0,0 +1,15 @@
|
|||||||
|
0 Cylinder Open 1.0
|
||||||
|
0 Name: 4-4cylo.dat
|
||||||
|
0 Author: Mark Kennedy [mkennedy]
|
||||||
|
0 !LDRAW_ORG Primitive UPDATE 2010-01
|
||||||
|
0 !LICENSE Licensed under CC BY 4.0 : see CAreadme.txt
|
||||||
|
|
||||||
|
0 BFC CERTIFY CCW
|
||||||
|
|
||||||
|
0 !HISTORY 2010-04-05 [PTadmin] Official Update 2010-01
|
||||||
|
|
||||||
|
|
||||||
|
1 16 0 0 0 1 0 0 0 1 0 0 0 1 4-4edge.dat
|
||||||
|
1 16 0 1 0 1 0 0 0 1 0 0 0 1 4-4edge.dat
|
||||||
|
1 16 0 0 0 1 0 0 0 1 0 0 0 1 4-4cyli.dat
|
||||||
|
0
|
||||||
@@ -0,0 +1,32 @@
|
|||||||
|
0 Disc 1.0
|
||||||
|
0 Name: 4-4disc.dat
|
||||||
|
0 Author: James Jessiman
|
||||||
|
0 !LDRAW_ORG Primitive UPDATE 2002-02
|
||||||
|
0 !LICENSE Licensed under CC BY 4.0 : see CAreadme.txt
|
||||||
|
|
||||||
|
0 BFC CERTIFY CCW
|
||||||
|
|
||||||
|
0 !HISTORY 1998-12-15 [PTadmin] Official Update 1998-10
|
||||||
|
0 !HISTORY 2002-03-23 [sbliss] Added BFC statement
|
||||||
|
0 !HISTORY 2002-04-25 [PTadmin] Official Update 2002-02
|
||||||
|
0 !HISTORY 2007-06-24 [PTadmin] Header formatted for Contributor Agreement
|
||||||
|
0 !HISTORY 2008-07-01 [PTadmin] Official Update 2008-01
|
||||||
|
|
||||||
|
|
||||||
|
3 16 0 0 0 1 0 0 0.9239 0 0.3827
|
||||||
|
3 16 0 0 0 0.9239 0 0.3827 0.7071 0 0.7071
|
||||||
|
3 16 0 0 0 0.7071 0 0.7071 0.3827 0 0.9239
|
||||||
|
3 16 0 0 0 0.3827 0 0.9239 0 0 1
|
||||||
|
3 16 0 0 0 0 0 1 -0.3827 0 0.9239
|
||||||
|
3 16 0 0 0 -0.3827 0 0.9239 -0.7071 0 0.7071
|
||||||
|
3 16 0 0 0 -0.7071 0 0.7071 -0.9239 0 0.3827
|
||||||
|
3 16 0 0 0 -0.9239 0 0.3827 -1 0 -0
|
||||||
|
3 16 0 0 0 -1 0 -0 -0.9239 0 -0.3827
|
||||||
|
3 16 0 0 0 -0.9239 0 -0.3827 -0.7071 0 -0.7071
|
||||||
|
3 16 0 0 0 -0.7071 0 -0.7071 -0.3827 0 -0.9239
|
||||||
|
3 16 0 0 0 -0.3827 0 -0.9239 0 0 -1
|
||||||
|
3 16 0 0 0 0 0 -1 0.3827 0 -0.9239
|
||||||
|
3 16 0 0 0 0.3827 0 -0.9239 0.7071 0 -0.7071
|
||||||
|
3 16 0 0 0 0.7071 0 -0.7071 0.9239 0 -0.3827
|
||||||
|
3 16 0 0 0 0.9239 0 -0.3827 1 0 0
|
||||||
|
0
|
||||||
@@ -0,0 +1,32 @@
|
|||||||
|
0 Circle 1.0
|
||||||
|
0 Name: 4-4edge.dat
|
||||||
|
0 Author: James Jessiman
|
||||||
|
0 !LDRAW_ORG Primitive UPDATE 2017-01
|
||||||
|
0 !LICENSE Licensed under CC BY 4.0 : see CAreadme.txt
|
||||||
|
|
||||||
|
0 BFC CERTIFY CCW
|
||||||
|
|
||||||
|
0 !HISTORY 1998-12-15 [PTadmin] Official Update 1998-10
|
||||||
|
0 !HISTORY 2005-12-28 [PTadmin] Official Update 2005-01
|
||||||
|
0 !HISTORY 2007-06-24 [PTadmin] Header formatted for Contributor Agreement
|
||||||
|
0 !HISTORY 2008-07-01 [PTadmin] Official Update 2008-01
|
||||||
|
0 !HISTORY 2017-01-15 [Steffen] BFCed
|
||||||
|
0 !HISTORY 2017-12-30 [PTadmin] Official Update 2017-01
|
||||||
|
|
||||||
|
|
||||||
|
2 24 1 0 0 0.9239 0 0.3827
|
||||||
|
2 24 0.9239 0 0.3827 0.7071 0 0.7071
|
||||||
|
2 24 0.7071 0 0.7071 0.3827 0 0.9239
|
||||||
|
2 24 0.3827 0 0.9239 0 0 1
|
||||||
|
2 24 0 0 1 -0.3827 0 0.9239
|
||||||
|
2 24 -0.3827 0 0.9239 -0.7071 0 0.7071
|
||||||
|
2 24 -0.7071 0 0.7071 -0.9239 0 0.3827
|
||||||
|
2 24 -0.9239 0 0.3827 -1 0 -0
|
||||||
|
2 24 -1 0 -0 -0.9239 0 -0.3827
|
||||||
|
2 24 -0.9239 0 -0.3827 -0.7071 0 -0.7071
|
||||||
|
2 24 -0.7071 0 -0.7071 -0.3827 0 -0.9239
|
||||||
|
2 24 -0.3827 0 -0.9239 0 0 -1
|
||||||
|
2 24 0 0 -1 0.3827 0 -0.9239
|
||||||
|
2 24 0.3827 0 -0.9239 0.7071 0 -0.7071
|
||||||
|
2 24 0.7071 0 -0.7071 0.9239 0 -0.3827
|
||||||
|
2 24 0.9239 0 -0.3827 1 0 0
|
||||||
@@ -0,0 +1,32 @@
|
|||||||
|
0 Disc Negative 1.0
|
||||||
|
0 Name: 4-4ndis.dat
|
||||||
|
0 Author: James Jessiman
|
||||||
|
0 !LDRAW_ORG Primitive UPDATE 2012-01
|
||||||
|
0 !LICENSE Licensed under CC BY 4.0 : see CAreadme.txt
|
||||||
|
|
||||||
|
0 BFC CERTIFY CCW
|
||||||
|
|
||||||
|
0 !HISTORY 2002-03-23 [sbliss] Added BFC statement; compacted code
|
||||||
|
0 !HISTORY 2002-04-25 [PTadmin] Official Update 2002-02
|
||||||
|
0 !HISTORY 2007-06-24 [PTadmin] Header formatted for Contributor Agreement
|
||||||
|
0 !HISTORY 2008-07-01 [PTadmin] Official Update 2008-01
|
||||||
|
0 !HISTORY 2012-02-16 [Philo] Changed to CCW
|
||||||
|
0 !HISTORY 2012-03-30 [PTadmin] Official Update 2012-01
|
||||||
|
|
||||||
|
|
||||||
|
3 16 0.9239 0 0.3827 1 0 0 1 0 1
|
||||||
|
3 16 0.7071 0 0.7071 0.9239 0 0.3827 1 0 1
|
||||||
|
3 16 0.3827 0 0.9239 0.7071 0 0.7071 1 0 1
|
||||||
|
3 16 0 0 1 0.3827 0 0.9239 1 0 1
|
||||||
|
3 16 -0.3827 0 0.9239 0 0 1 -1 0 1
|
||||||
|
3 16 -0.7071 0 0.7071 -0.3827 0 0.9239 -1 0 1
|
||||||
|
3 16 -0.9239 0 0.3827 -0.7071 0 0.7071 -1 0 1
|
||||||
|
3 16 -1 0 0 -0.9239 0 0.3827 -1 0 1
|
||||||
|
3 16 -0.9239 0 -0.3827 -1 0 0 -1 0 -1
|
||||||
|
3 16 -0.7071 0 -0.7071 -0.9239 0 -0.3827 -1 0 -1
|
||||||
|
3 16 -0.3827 0 -0.9239 -0.7071 0 -0.7071 -1 0 -1
|
||||||
|
3 16 0 0 -1 -0.3827 0 -0.9239 -1 0 -1
|
||||||
|
3 16 0.3827 0 -0.9239 0 0 -1 1 0 -1
|
||||||
|
3 16 0.7071 0 -0.7071 0.3827 0 -0.9239 1 0 -1
|
||||||
|
3 16 0.9239 0 -0.3827 0.7071 0 -0.7071 1 0 -1
|
||||||
|
3 16 1 0 0 0.9239 0 -0.3827 1 0 -1
|
||||||
@@ -0,0 +1,34 @@
|
|||||||
|
0 Ring 1 x 1.0
|
||||||
|
0 Name: 4-4ring1.dat
|
||||||
|
0 Author: James Jessiman
|
||||||
|
0 !LDRAW_ORG Primitive UPDATE 2009-01
|
||||||
|
0 !LICENSE Licensed under CC BY 4.0 : see CAreadme.txt
|
||||||
|
|
||||||
|
0 BFC CERTIFY CCW
|
||||||
|
|
||||||
|
0 !HISTORY 1998-12-15 [PTadmin] Official Update 1998-10
|
||||||
|
0 !HISTORY 2002-04-08 [BrickCaster] Modified for BFC compliance
|
||||||
|
0 !HISTORY 2002-04-25 [PTadmin] Official Update 2002-02
|
||||||
|
0 !HISTORY 2007-06-24 [PTadmin] Header formatted for Contributor Agreement
|
||||||
|
0 !HISTORY 2008-07-01 [PTadmin] Official Update 2008-01
|
||||||
|
0 !HISTORY 2008-08-26 [cwdee] Switch polygon winding and rename
|
||||||
|
0 !HISTORY 2009-05-02 [PTadmin] Official Update 2009-01
|
||||||
|
|
||||||
|
|
||||||
|
4 16 -0.7654 0 1.8478 -0.3827 0 0.9239 0 0 1 0 0 2
|
||||||
|
4 16 -1.4142 0 1.4142 -0.7071 0 0.7071 -0.3827 0 0.9239 -0.7654 0 1.8478
|
||||||
|
4 16 -1.8478 0 0.7654 -0.9239 0 0.3827 -0.7071 0 0.7071 -1.4142 0 1.41420
|
||||||
|
4 16 -2 0 0 -1 0 0 -0.9239 0 0.3827 -1.8478 0 0.7654
|
||||||
|
4 16 -1.8478 0 -0.7654 -0.9239 0 -0.3827 -1 0 0 -2 0 0
|
||||||
|
4 16 -1.4142 0 -1.4142 -0.7071 0 -0.7071 -0.9239 0 -0.3827 -1.8478 0 -0.7654
|
||||||
|
4 16 -0.7654 0 -1.8478 -0.3827 0 -0.9239 -0.7071 0 -0.7071 -1.4142 0 -1.4142
|
||||||
|
4 16 0 0 -2 0 0 -1 -0.3827 0 -0.9239 -0.7654 0 -1.8478
|
||||||
|
4 16 0.7654 0 -1.8478 0.3827 0 -0.9239 0 0 -1 0 0 -2
|
||||||
|
4 16 1.4142 0 -1.4142 0.7071 0 -0.7071 0.3827 0 -0.9239 0.7654 0 -1.8478
|
||||||
|
4 16 1.8478 0 -0.7654 0.9239 0 -0.3827 0.7071 0 -0.7071 1.4142 0 -1.4142
|
||||||
|
4 16 2 0 0 1 0 0 0.9239 0 -0.3827 1.8478 0 -0.7654
|
||||||
|
4 16 1.8478 0 0.7654 0.9239 0 0.3827 1 0 0 2 0 0
|
||||||
|
4 16 1.4142 0 1.4142 0.7071 0 0.7071 0.9239 0 0.3827 1.8478 0 0.7654
|
||||||
|
4 16 0.7654 0 1.8478 0.3827 0 0.9239 0.7071 0 0.7071 1.4142 0 1.4142
|
||||||
|
4 16 0 0 2 0 0 1 0.3827 0 0.9239 0.7654 0 1.8478
|
||||||
|
0
|
||||||
@@ -0,0 +1,34 @@
|
|||||||
|
0 Ring 2 x 1.0
|
||||||
|
0 Name: 4-4ring2.dat
|
||||||
|
0 Author: James Jessiman
|
||||||
|
0 !LDRAW_ORG Primitive UPDATE 2009-01
|
||||||
|
0 !LICENSE Licensed under CC BY 4.0 : see CAreadme.txt
|
||||||
|
|
||||||
|
0 BFC CERTIFY CCW
|
||||||
|
|
||||||
|
0 !HISTORY 1998-12-15 [PTadmin] Official Update 1998-10
|
||||||
|
0 !HISTORY 2002-04-05 [hafhead] Added BFC statement
|
||||||
|
0 !HISTORY 2002-04-25 [PTadmin] Official Update 2002-02
|
||||||
|
0 !HISTORY 2007-06-24 [PTadmin] Header formatted for Contributor Agreement
|
||||||
|
0 !HISTORY 2008-07-01 [PTadmin] Official Update 2008-01
|
||||||
|
0 !HISTORY 2008-08-26 [cwdee] Switch polygon winding and rename
|
||||||
|
0 !HISTORY 2009-05-02 [PTadmin] Official Update 2009-01
|
||||||
|
|
||||||
|
|
||||||
|
4 16 -1.1481 0 2.7717 -0.7654 0 1.8478 0 0 2 0 0 3
|
||||||
|
4 16 -2.1213 0 2.1213 -1.4142 0 1.4142 -0.7654 0 1.8478 -1.1481 0 2.7717
|
||||||
|
4 16 -2.7717 0 1.1481 -1.8478 0 0.7654 -1.4142 0 1.4142 -2.1213 0 2.1213
|
||||||
|
4 16 -3 0 0 -2 0 0 -1.8478 0 0.7654 -2.7717 0 1.1481
|
||||||
|
4 16 -2.7717 0 -1.1481 -1.8478 0 -0.7654 -2 0 0 -3 0 0
|
||||||
|
4 16 -2.1213 0 -2.1213 -1.4142 0 -1.4142 -1.8478 0 -0.7654 -2.7717 0 -1.1481
|
||||||
|
4 16 -1.1481 0 -2.7717 -0.7654 0 -1.8478 -1.4142 0 -1.4142 -2.1213 0 -2.1213
|
||||||
|
4 16 0 0 -3 0 0 -2 -0.7654 0 -1.8478 -1.1481 0 -2.7717
|
||||||
|
4 16 1.1481 0 -2.7717 0.7654 0 -1.8478 0 0 -2 0 0 -3
|
||||||
|
4 16 2.1213 0 -2.1213 1.4142 0 -1.4142 0.7654 0 -1.8478 1.1481 0 -2.7717
|
||||||
|
4 16 2.7717 0 -1.1481 1.8478 0 -0.7654 1.4142 0 -1.4142 2.1213 0 -2.1213
|
||||||
|
4 16 3 0 0 2 0 0 1.8478 0 -0.7654 2.7717 0 -1.1481
|
||||||
|
4 16 2.7717 0 1.1481 1.8478 0 0.7654 2 0 0 3 0 0
|
||||||
|
4 16 2.1213 0 2.1213 1.4142 0 1.4142 1.8478 0 0.7654 2.7717 0 1.1481
|
||||||
|
4 16 1.1481 0 2.7717 0.7654 0 1.8478 1.4142 0 1.4142 2.1213 0 2.1213
|
||||||
|
4 16 0 0 3 0 0 2 0.7654 0 1.8478 1.1481 0 2.7717
|
||||||
|
0
|
||||||
@@ -0,0 +1,34 @@
|
|||||||
|
0 Ring 3 x 1.0
|
||||||
|
0 Name: 4-4ring3.dat
|
||||||
|
0 Author: James Jessiman
|
||||||
|
0 !LDRAW_ORG Primitive UPDATE 2009-01
|
||||||
|
0 !LICENSE Licensed under CC BY 4.0 : see CAreadme.txt
|
||||||
|
|
||||||
|
0 BFC CERTIFY CCW
|
||||||
|
|
||||||
|
0 !HISTORY 1998-12-15 [PTadmin] Official Update 1998-10
|
||||||
|
0 !HISTORY 2002-04-05 [hafhead] Added BFC statement
|
||||||
|
0 !HISTORY 2002-04-25 [PTadmin] Official Update 2002-02
|
||||||
|
0 !HISTORY 2007-06-24 [PTadmin] Header formatted for Contributor Agreement
|
||||||
|
0 !HISTORY 2008-07-01 [PTadmin] Official Update 2008-01
|
||||||
|
0 !HISTORY 2008-08-26 [cwdee] Switch polygon winding and rename
|
||||||
|
0 !HISTORY 2009-05-02 [PTadmin] Official Update 2009-01
|
||||||
|
|
||||||
|
|
||||||
|
4 16 -1.5308 0 3.6956 -1.1481 0 2.7717 0 0 3 0 0 4
|
||||||
|
4 16 -2.8284 0 2.8284 -2.1213 0 2.1213 -1.1481 0 2.7717 -1.5308 0 3.6956
|
||||||
|
4 16 -3.6956 0 1.5308 -2.7717 0 1.1481 -2.1213 0 2.1213 -2.8284 0 2.8284
|
||||||
|
4 16 -4 0 0 -3 0 0 -2.7717 0 1.1481 -3.6956 0 1.5308
|
||||||
|
4 16 -3.6956 0 -1.5308 -2.7717 0 -1.1481 -3 0 0 -4 0 0
|
||||||
|
4 16 -2.8284 0 -2.8284 -2.1213 0 -2.1213 -2.7717 0 -1.1481 -3.6956 0 -1.5308
|
||||||
|
4 16 -1.5308 0 -3.6956 -1.1481 0 -2.7717 -2.1213 0 -2.1213 -2.8284 0 -2.8284
|
||||||
|
4 16 0 0 -4 0 0 -3 -1.1481 0 -2.7717 -1.5308 0 -3.6956
|
||||||
|
4 16 1.5308 0 -3.6956 1.1481 0 -2.7717 0 0 -3 0 0 -4
|
||||||
|
4 16 2.8284 0 -2.8284 2.1213 0 -2.1213 1.1481 0 -2.7717 1.5308 0 -3.6956
|
||||||
|
4 16 3.6956 0 -1.5308 2.7717 0 -1.1481 2.1213 0 -2.1213 2.8284 0 -2.8284
|
||||||
|
4 16 4 0 0 3 0 0 2.7717 0 -1.1481 3.6956 0 -1.5308
|
||||||
|
4 16 3.6956 0 1.5308 2.7717 0 1.1481 3 0 0 4 0 0
|
||||||
|
4 16 2.8284 0 2.8284 2.1213 0 2.1213 2.7717 0 1.1481 3.6956 0 1.5308
|
||||||
|
4 16 1.5308 0 3.6956 1.1481 0 2.7717 2.1213 0 2.1213 2.8284 0 2.8284
|
||||||
|
4 16 0 0 4 0 0 3 1.1481 0 2.7717 1.5308 0 3.6956
|
||||||
|
0
|
||||||
@@ -0,0 +1,34 @@
|
|||||||
|
0 Ring 4 x 1.0
|
||||||
|
0 Name: 4-4ring4.dat
|
||||||
|
0 Author: James Jessiman
|
||||||
|
0 !LDRAW_ORG Primitive UPDATE 2009-01
|
||||||
|
0 !LICENSE Licensed under CC BY 4.0 : see CAreadme.txt
|
||||||
|
|
||||||
|
0 BFC CERTIFY CCW
|
||||||
|
|
||||||
|
0 !HISTORY 1998-12-15 [PTadmin] Official Update 1998-10
|
||||||
|
0 !HISTORY 2002-04-08 [BrickCaster] Modified for BFC compliance
|
||||||
|
0 !HISTORY 2002-04-25 [PTadmin] Official Update 2002-02
|
||||||
|
0 !HISTORY 2007-06-24 [PTadmin] Header formatted for Contributor Agreement
|
||||||
|
0 !HISTORY 2008-07-01 [PTadmin] Official Update 2008-01
|
||||||
|
0 !HISTORY 2008-08-26 [cwdee] Switch polygon winding and rename
|
||||||
|
0 !HISTORY 2009-05-02 [PTadmin] Official Update 2009-01
|
||||||
|
|
||||||
|
|
||||||
|
4 16 -1.9135 0 4.6195 -1.5308 0 3.6956 0 0 4 0 0 5
|
||||||
|
4 16 -3.5355 0 3.5355 -2.8284 0 2.8284 -1.5308 0 3.6956 -1.9135 0 4.6195
|
||||||
|
4 16 -4.6195 0 1.9135 -3.6956 0 1.5308 -2.8284 0 2.8284 -3.5355 0 3.5355
|
||||||
|
4 16 -5 0 0 -4 0 0 -3.6956 0 1.5308 -4.6195 0 1.9135
|
||||||
|
4 16 -4.6195 0 -1.9135 -3.6956 0 -1.5308 -4 0 0 -5 0 0
|
||||||
|
4 16 -3.5355 0 -3.5355 -2.8284 0 -2.8284 -3.6956 0 -1.5308 -4.6195 0 -1.9135
|
||||||
|
4 16 -1.9135 0 -4.6195 -1.5308 0 -3.6956 -2.8284 0 -2.8284 -3.5355 0 -3.5355
|
||||||
|
4 16 0 0 -5 0 0 -4 -1.5308 0 -3.6956 -1.9135 0 -4.6195
|
||||||
|
4 16 1.9135 0 -4.6195 1.5308 0 -3.6956 0 0 -4 0 0 -5
|
||||||
|
4 16 3.5355 0 -3.5355 2.8284 0 -2.8284 1.5308 0 -3.6956 1.9135 0 -4.6195
|
||||||
|
4 16 4.6195 0 -1.9135 3.6956 0 -1.5308 2.8284 0 -2.8284 3.5355 0 -3.5355
|
||||||
|
4 16 5 0 0 4 0 0 3.6956 0 -1.5308 4.6195 0 -1.9135
|
||||||
|
4 16 4.6195 0 1.9135 3.6956 0 1.5308 4 0 0 5 0 0
|
||||||
|
4 16 3.5355 0 3.5355 2.8284 0 2.8284 3.6956 0 1.5308 4.6195 0 1.9135
|
||||||
|
4 16 1.9135 0 4.6195 1.5308 0 3.6956 2.8284 0 2.8284 3.5355 0 3.5355
|
||||||
|
4 16 0 0 5 0 0 4 1.5308 0 3.6956 1.9135 0 4.6195
|
||||||
|
0
|
||||||
@@ -0,0 +1,27 @@
|
|||||||
|
0 Technic Axle Hole Rounded Tooth Surface
|
||||||
|
0 Name: axl5ho10.dat
|
||||||
|
0 Author: Magnus Forsberg [MagFors]
|
||||||
|
0 !LDRAW_ORG Primitive UPDATE 2022-01
|
||||||
|
0 !LICENSE Licensed under CC BY 4.0 : see CAreadme.txt
|
||||||
|
|
||||||
|
0 BFC CERTIFY CCW
|
||||||
|
|
||||||
|
0 !HISTORY 2022-01-14 [PTadmin] Official Update 2022-01
|
||||||
|
|
||||||
|
|
||||||
|
1 16 0 0 0 5.54328 0 -2.2961 0 1 0 2.2961 0 5.54328 1-8chrd.dat
|
||||||
|
1 16 0 0 0 -2.2961 0 -5.54328 0 1 0 5.54328 0 -2.2961 1-8chrd.dat
|
||||||
|
1 16 0 0 0 -5.54328 0 2.2961 0 1 0 -2.2961 0 -5.54328 1-8chrd.dat
|
||||||
|
1 16 0 0 0 2.2961 0 5.54328 0 1 0 -5.54328 0 2.2961 1-8chrd.dat
|
||||||
|
3 16 5.5433 0 2.2961 2.2961 0 5.5433 2.5 0 2.5
|
||||||
|
4 16 2.5 0 2.5 4 0 2 5.6023 0 2 5.5433 0 2.2961
|
||||||
|
4 16 2 0 4 2.5 0 2.5 2.2961 0 5.5433 2 0 5.6023
|
||||||
|
3 16 -2.5 0 2.5 -2.2961 0 5.5433 -5.5433 0 2.2961
|
||||||
|
4 16 -2.5 0 2.5 -2 0 4 -2 0 5.6023 -2.2961 0 5.5433
|
||||||
|
4 16 -5.6023 0 2 -4 0 2 -2.5 0 2.5 -5.5433 0 2.2961
|
||||||
|
4 16 -4 0 -2 -5.6023 0 -2 -5.5433 0 -2.2961 -2.5 0 -2.5
|
||||||
|
3 16 -5.5433 0 -2.2961 -2.2961 0 -5.5433 -2.5 0 -2.5
|
||||||
|
4 16 -2.2961 0 -5.5433 -2 0 -5.6023 -2 0 -4 -2.5 0 -2.5
|
||||||
|
3 16 2.2961 0 -5.5433 5.5433 0 -2.2961 2.5 0 -2.5
|
||||||
|
4 16 2 0 -5.6023 2.2961 0 -5.5433 2.5 0 -2.5 2 0 -4
|
||||||
|
4 16 4 0 -2 2.5 0 -2.5 5.5433 0 -2.2961 5.6023 0 -2
|
||||||
@@ -0,0 +1,61 @@
|
|||||||
|
0 Technic Axle Hole Rounded Perimeter
|
||||||
|
0 Name: axl5hol8.dat
|
||||||
|
0 Author: Magnus Forsberg [MagFors]
|
||||||
|
0 !LDRAW_ORG Primitive UPDATE 2022-01
|
||||||
|
0 !LICENSE Licensed under CC BY 4.0 : see CAreadme.txt
|
||||||
|
|
||||||
|
0 BFC CERTIFY CCW
|
||||||
|
|
||||||
|
0 !HISTORY 2022-01-14 [PTadmin] Official Update 2022-01
|
||||||
|
|
||||||
|
|
||||||
|
4 16 6 1 0 6 0 0 5.6023 0 2 5.6023 1 2
|
||||||
|
4 16 4 1 2 5.6023 1 2 5.6023 0 2 4 0 2
|
||||||
|
4 16 4 1 2 4 0 2 2.5 0 2.5 2.5 1 2.5
|
||||||
|
4 16 2.5 1 2.5 2.5 0 2.5 2 0 4 2 1 4
|
||||||
|
4 16 2 1 4 2 0 4 2 0 5.6023 2 1 5.6023
|
||||||
|
4 16 2 0 5.6023 0 0 6 0 1 6 2 1 5.6023
|
||||||
|
4 16 0 1 6 0 0 6 -2 0 5.6023 -2 1 5.6023
|
||||||
|
4 16 -2 1 4 -2 1 5.6023 -2 0 5.6023 -2 0 4
|
||||||
|
4 16 -2 1 4 -2 0 4 -2.5 0 2.5 -2.5 1 2.5
|
||||||
|
4 16 -2.5 1 2.5 -2.5 0 2.5 -4 0 2 -4 1 2
|
||||||
|
4 16 -4 1 2 -4 0 2 -5.6023 0 2 -5.6023 1 2
|
||||||
|
4 16 -5.6023 1 2 -5.6023 0 2 -6 0 0 -6 1 0
|
||||||
|
4 16 -6 1 0 -6 0 0 -5.6023 0 -2 -5.6023 1 -2
|
||||||
|
4 16 -5.6023 1 -2 -5.6023 0 -2 -4 0 -2 -4 1 -2
|
||||||
|
4 16 -4 1 -2 -4 0 -2 -2.5 0 -2.5 -2.5 1 -2.5
|
||||||
|
4 16 -2.5 1 -2.5 -2.5 0 -2.5 -2 0 -4 -2 1 -4
|
||||||
|
4 16 -2 1 -4 -2 0 -4 -2 0 -5.6023 -2 1 -5.6023
|
||||||
|
4 16 -2 0 -5.6023 0 0 -6 0 1 -6 -2 1 -5.6023
|
||||||
|
4 16 0 1 -6 0 0 -6 2 0 -5.6023 2 1 -5.6023
|
||||||
|
4 16 2 1 -5.6023 2 0 -5.6023 2 0 -4 2 1 -4
|
||||||
|
4 16 2 1 -4 2 0 -4 2.5 0 -2.5 2.5 1 -2.5
|
||||||
|
4 16 2.5 1 -2.5 2.5 0 -2.5 4 0 -2 4 1 -2
|
||||||
|
4 16 4 1 -2 4 0 -2 5.6023 0 -2 5.6023 1 -2
|
||||||
|
4 16 5.6023 1 -2 5.6023 0 -2 6 0 0 6 1 0
|
||||||
|
|
||||||
|
2 24 5.6023 1 2 5.6023 0 2
|
||||||
|
2 24 2 1 5.6023 2 0 5.6023
|
||||||
|
2 24 -2 1 5.6023 -2 0 5.6023
|
||||||
|
2 24 -5.6023 1 2 -5.6023 0 2
|
||||||
|
2 24 -5.6023 1 -2 -5.6023 0 -2
|
||||||
|
2 24 -2 1 -5.6023 -2 0 -5.6023
|
||||||
|
2 24 2 1 -5.6023 2 0 -5.6023
|
||||||
|
2 24 5.6023 1 -2 5.6023 0 -2
|
||||||
|
|
||||||
|
5 24 6 1 0 6 0 0 5.6023 1 2 5.6023 1 -2
|
||||||
|
5 24 4 1 2 4 0 2 5.6023 1 2 2.5 1 2.5
|
||||||
|
5 24 2.5 1 2.5 2.5 0 2.5 2 1 4 4 1 2
|
||||||
|
5 24 2 1 4 2 0 4 2.5 1 2.5 2 1 5.6023
|
||||||
|
5 24 0 1 6 0 0 6 2 1 5.6023 -2 1 5.6023
|
||||||
|
5 24 -2 1 4 -2 0 4 -2 1 5.6023 -2.5 1 2.5
|
||||||
|
5 24 -2.5 1 2.5 -2.5 0 2.5 -2 1 4 -4 1 2
|
||||||
|
5 24 -4 1 2 -4 0 2 -2.5 1 2.5 -5.6023 1 2
|
||||||
|
5 24 -6 1 0 -6 0 0 -5.6023 1 2 -5.6023 1 -2
|
||||||
|
5 24 -4 1 -2 -4 0 -2 -5.6023 1 -2 -2.5 1 -2.5
|
||||||
|
5 24 -2.5 1 -2.5 -2.5 0 -2.5 -4 1 -2 -2 1 -4
|
||||||
|
5 24 -2 1 -4 -2 0 -4 -2.5 1 -2.5 -2 1 -5.6023
|
||||||
|
5 24 0 1 -6 0 0 -6 -2 1 -5.6023 2 1 -5.6023
|
||||||
|
5 24 2 1 -4 2 0 -4 2 1 -5.6023 2.5 1 -2.5
|
||||||
|
5 24 2.5 1 -2.5 2.5 0 -2.5 4 1 -2 2 1 -4
|
||||||
|
5 24 4 1 -2 4 0 -2 5.6023 1 -2 2.5 1 -2.5
|
||||||
@@ -0,0 +1,27 @@
|
|||||||
|
0 Technic Axle Hole Rounded Tooth Outer Edges
|
||||||
|
0 Name: axl5hol9.dat
|
||||||
|
0 Author: Magnus Forsberg [MagFors]
|
||||||
|
0 !LDRAW_ORG Primitive UPDATE 2022-01
|
||||||
|
0 !LICENSE Licensed under CC BY 4.0 : see CAreadme.txt
|
||||||
|
|
||||||
|
0 BFC CERTIFY CCW
|
||||||
|
|
||||||
|
0 !HISTORY 2022-01-14 [PTadmin] Official Update 2022-01
|
||||||
|
|
||||||
|
|
||||||
|
2 24 5.6023 0 2 4 0 2
|
||||||
|
2 24 4 0 2 2.5 0 2.5
|
||||||
|
2 24 2.5 0 2.5 2 0 4
|
||||||
|
2 24 2 0 4 2 0 5.6023
|
||||||
|
2 24 -2 0 5.6023 -2 0 4
|
||||||
|
2 24 -2 0 4 -2.5 0 2.5
|
||||||
|
2 24 -2.5 0 2.5 -4 0 2
|
||||||
|
2 24 -4 0 2 -5.6023 0 2
|
||||||
|
2 24 -5.6023 0 -2 -4 0 -2
|
||||||
|
2 24 -4 0 -2 -2.5 0 -2.5
|
||||||
|
2 24 -2.5 0 -2.5 -2 0 -4
|
||||||
|
2 24 -2 0 -4 -2 0 -5.6023
|
||||||
|
2 24 2 0 -5.6023 2 0 -4
|
||||||
|
2 24 2 0 -4 2.5 0 -2.5
|
||||||
|
2 24 2.5 0 -2.5 4 0 -2
|
||||||
|
2 24 4 0 -2 5.6023 0 -2
|
||||||
@@ -0,0 +1,24 @@
|
|||||||
|
0 Technic Axle Hole Side Edges
|
||||||
|
0 Name: axlehol2.dat
|
||||||
|
0 Author: James Jessiman
|
||||||
|
0 !LDRAW_ORG Primitive UPDATE 2022-02
|
||||||
|
0 !LICENSE Licensed under CC BY 4.0 : see CAreadme.txt
|
||||||
|
|
||||||
|
0 BFC CERTIFY CCW
|
||||||
|
|
||||||
|
0 !HISTORY 2002-11-08 [OrionP] Adjusted fit and precision
|
||||||
|
0 !HISTORY 2003-03-12 [PTadmin] Official Update 2003-01
|
||||||
|
0 !HISTORY 2007-06-24 [PTadmin] Header formatted for Contributor Agreement
|
||||||
|
0 !HISTORY 2008-07-01 [PTadmin] Official Update 2008-01
|
||||||
|
0 !HISTORY 2021-12-24 [MagFors] rounded to four decimals
|
||||||
|
0 !HISTORY 2022-03-06 [PTadmin] Official Update 2022-02
|
||||||
|
|
||||||
|
|
||||||
|
2 24 6 0 0 5.6023 0 2
|
||||||
|
2 24 2 0 5.6023 0 0 6
|
||||||
|
2 24 -6 0 0 -5.6023 0 2
|
||||||
|
2 24 -2 0 5.6023 0 0 6
|
||||||
|
2 24 6 0 0 5.6023 0 -2
|
||||||
|
2 24 2 0 -5.6023 0 0 -6
|
||||||
|
2 24 -6 0 0 -5.6023 0 -2
|
||||||
|
2 24 -2 0 -5.6023 0 0 -6
|
||||||
@@ -0,0 +1,28 @@
|
|||||||
|
0 Technic Axle Hole Tooth Outer Edges
|
||||||
|
0 Name: axlehol3.dat
|
||||||
|
0 Author: James Jessiman
|
||||||
|
0 !LDRAW_ORG Primitive UPDATE 2022-02
|
||||||
|
0 !LICENSE Licensed under CC BY 4.0 : see CAreadme.txt
|
||||||
|
|
||||||
|
0 BFC CERTIFY CCW
|
||||||
|
|
||||||
|
0 !HISTORY 2002-11-08 [OrionP] Adjusted fit and precision
|
||||||
|
0 !HISTORY 2003-03-12 [PTadmin] Official Update 2003-01
|
||||||
|
0 !HISTORY 2007-06-24 [PTadmin] Header formatted for Contributor Agreement
|
||||||
|
0 !HISTORY 2008-07-01 [PTadmin] Official Update 2008-01
|
||||||
|
0 !HISTORY 2021-12-24 [MagFors] rounded to four decimals
|
||||||
|
0 !HISTORY 2022-03-06 [PTadmin] Official Update 2022-02
|
||||||
|
|
||||||
|
|
||||||
|
1 16 0 0 0 5.54328 0 -2.2961 0 1 0 2.2961 0 5.54328 1-8edge.dat
|
||||||
|
2 24 5.6023 0 2 5.5433 0 2.2961
|
||||||
|
2 24 2.2961 0 5.5433 2 0 5.6023
|
||||||
|
1 16 0 0 0 2.2961 0 5.54328 0 1 0 -5.54328 0 2.2961 1-8edge.dat
|
||||||
|
2 24 2 0 -5.6023 2.2961 0 -5.5433
|
||||||
|
2 24 5.5433 0 -2.2961 5.6023 0 -2
|
||||||
|
1 16 0 0 0 -5.54328 0 2.2961 0 1 0 -2.2961 0 -5.54328 1-8edge.dat
|
||||||
|
2 24 -5.6023 0 -2 -5.5433 0 -2.2961
|
||||||
|
2 24 -2.2961 0 -5.5433 -2 0 -5.6023
|
||||||
|
1 16 0 0 0 -2.2961 0 -5.54328 0 1 0 5.54328 0 -2.2961 1-8edge.dat
|
||||||
|
2 24 -2 0 5.6023 -2.2961 0 5.5433
|
||||||
|
2 24 -5.5433 0 2.2961 -5.6023 0 2
|
||||||
@@ -0,0 +1,48 @@
|
|||||||
|
0 Technic Axle Hole Closed
|
||||||
|
0 Name: axlehole.dat
|
||||||
|
0 Author: James Jessiman
|
||||||
|
0 !LDRAW_ORG Primitive UPDATE 2022-02
|
||||||
|
0 !LICENSE Licensed under CC BY 4.0 : see CAreadme.txt
|
||||||
|
|
||||||
|
0 BFC CERTIFY CCW
|
||||||
|
|
||||||
|
0 !HISTORY 2000-04-23 [sbliss] Added conditional edges along outermost diameters
|
||||||
|
0 !HISTORY 2000-05-07 [PTadmin] Official Update 2000-01
|
||||||
|
0 !HISTORY 2002-05-08 [OrionP] Made BFC compliant
|
||||||
|
0 !HISTORY 2002-08-18 [PTadmin] Official Update 2002-04
|
||||||
|
0 !HISTORY 2002-11-08 [OrionP] Adjusted fit and precision
|
||||||
|
0 !HISTORY 2003-03-12 [PTadmin] Official Update 2003-01
|
||||||
|
0 !HISTORY 2005-05-15 [guyvivan] Use 1-8chrd.dat primitive and made BFC'ed CCW
|
||||||
|
0 !HISTORY 2005-12-28 [PTadmin] Official Update 2005-01
|
||||||
|
0 !HISTORY 2007-06-24 [PTadmin] Header formatted for Contributor Agreement
|
||||||
|
0 !HISTORY 2008-07-01 [PTadmin] Official Update 2008-01
|
||||||
|
0 !HISTORY 2021-03-25 [Sirio] Added adapter rings and rounded to four decimals
|
||||||
|
0 !HISTORY 2021-12-20 [MagFors] Reshaped the hole
|
||||||
|
0 !HISTORY 2022-03-06 [PTadmin] Official Update 2022-02
|
||||||
|
|
||||||
|
|
||||||
|
1 16 0 0 0 1 0 0 0 1 0 0 0 1 axl5hol9.dat
|
||||||
|
1 16 0 1 0 1 0 0 0 1 0 0 0 1 axl5hol9.dat
|
||||||
|
1 16 0 0 0 1 0 0 0 1 0 0 0 1 axl5ho10.dat
|
||||||
|
1 16 0 1 0 1 0 0 0 -1 0 0 0 -1 axl5ho10.dat
|
||||||
|
|
||||||
|
1 16 0 0 0 1 0 0 0 1 0 0 0 1 axl5hol8.dat
|
||||||
|
|
||||||
|
0 // Adapter rings
|
||||||
|
1 16 0 0 0 6 0 0 0 1 0 0 0 6 1-16chrd.dat
|
||||||
|
1 16 0 0 0 0 0 6 0 1 0 6 0 0 1-16chrd.dat
|
||||||
|
1 16 0 0 0 0 0 -6 0 1 0 6 0 0 1-16chrd.dat
|
||||||
|
1 16 0 0 0 -6 0 0 0 1 0 0 0 6 1-16chrd.dat
|
||||||
|
1 16 0 0 0 -6 0 0 0 1 0 0 0 -6 1-16chrd.dat
|
||||||
|
1 16 0 0 0 0 0 -6 0 1 0 -6 0 0 1-16chrd.dat
|
||||||
|
1 16 0 0 0 0 0 6 0 1 0 -6 0 0 1-16chrd.dat
|
||||||
|
1 16 0 0 0 6 0 0 0 1 0 0 0 -6 1-16chrd.dat
|
||||||
|
|
||||||
|
1 16 0 1 0 6 0 0 0 -1 0 0 0 6 1-16chrd.dat
|
||||||
|
1 16 0 1 0 0 0 6 0 -1 0 6 0 0 1-16chrd.dat
|
||||||
|
1 16 0 1 0 0 0 -6 0 -1 0 6 0 0 1-16chrd.dat
|
||||||
|
1 16 0 1 0 -6 0 0 0 -1 0 0 0 6 1-16chrd.dat
|
||||||
|
1 16 0 1 0 -6 0 0 0 -1 0 0 0 -6 1-16chrd.dat
|
||||||
|
1 16 0 1 0 0 0 -6 0 -1 0 -6 0 0 1-16chrd.dat
|
||||||
|
1 16 0 1 0 0 0 6 0 -1 0 -6 0 0 1-16chrd.dat
|
||||||
|
1 16 0 1 0 6 0 0 0 -1 0 0 0 -6 1-16chrd.dat
|
||||||
@@ -0,0 +1,28 @@
|
|||||||
|
0 Box with 3 Faces without 2 Parallel Edges
|
||||||
|
0 Name: box3u2p.dat
|
||||||
|
0 Author: Niels Karsdorp [nielsk]
|
||||||
|
0 !LDRAW_ORG Primitive UPDATE 2012-01
|
||||||
|
0 !LICENSE Licensed under CC BY 4.0 : see CAreadme.txt
|
||||||
|
|
||||||
|
0 BFC CERTIFY CCW
|
||||||
|
|
||||||
|
0 !HISTORY 2003-03-12 [PTadmin] Official Update 2003-01
|
||||||
|
0 !HISTORY 2007-06-24 [PTadmin] Header formatted for Contributor Agreement
|
||||||
|
0 !HISTORY 2008-07-01 [PTadmin] Official Update 2008-01
|
||||||
|
0 !HISTORY 2012-02-16 [Philo] Changed to CCW
|
||||||
|
0 !HISTORY 2012-03-30 [PTadmin] Official Update 2012-01
|
||||||
|
|
||||||
|
|
||||||
|
2 24 1 1 1 -1 1 1
|
||||||
|
2 24 -1 1 -1 1 1 -1
|
||||||
|
2 24 1 0 1 -1 0 1
|
||||||
|
2 24 -1 0 -1 1 0 -1
|
||||||
|
2 24 1 1 1 1 1 -1
|
||||||
|
2 24 -1 1 1 -1 1 -1
|
||||||
|
2 24 1 1 1 1 0 1
|
||||||
|
2 24 1 1 -1 1 0 -1
|
||||||
|
2 24 -1 1 1 -1 0 1
|
||||||
|
2 24 -1 1 -1 -1 0 -1
|
||||||
|
4 16 -1 1 -1 -1 1 1 1 1 1 1 1 -1
|
||||||
|
4 16 -1 1 1 -1 0 1 1 0 1 1 1 1
|
||||||
|
4 16 1 1 -1 1 0 -1 -1 0 -1 -1 1 -1
|
||||||
@@ -0,0 +1,23 @@
|
|||||||
|
0 Box with 3 Faces without 4 Adjacent Edges
|
||||||
|
0 Name: box3u4a.dat
|
||||||
|
0 Author: Niels Karsdorp [nielsk]
|
||||||
|
0 !LDRAW_ORG Primitive UPDATE 2009-01
|
||||||
|
0 !LICENSE Licensed under CC BY 4.0 : see CAreadme.txt
|
||||||
|
|
||||||
|
0 BFC CERTIFY CCW
|
||||||
|
|
||||||
|
0 !HISTORY 2009-05-02 [PTadmin] Official Update 2009-01
|
||||||
|
|
||||||
|
|
||||||
|
2 24 1 1 1 -1 1 1
|
||||||
|
2 24 -1 1 -1 1 1 -1
|
||||||
|
2 24 1 1 1 1 1 -1
|
||||||
|
2 24 -1 1 1 -1 1 -1
|
||||||
|
2 24 1 1 1 1 0 1
|
||||||
|
2 24 1 1 -1 1 0 -1
|
||||||
|
2 24 -1 1 1 -1 0 1
|
||||||
|
2 24 -1 1 -1 -1 0 -1
|
||||||
|
4 16 -1 1 -1 -1 1 1 1 1 1 1 1 -1
|
||||||
|
4 16 -1 1 1 -1 0 1 1 0 1 1 1 1
|
||||||
|
4 16 1 1 -1 1 0 -1 -1 0 -1 -1 1 -1
|
||||||
|
0
|
||||||
@@ -0,0 +1,33 @@
|
|||||||
|
0 Box with 4 Faces without 4 Adjacent Edges
|
||||||
|
0 Name: box4-4a.dat
|
||||||
|
0 Author: Willy Tschager [Holly-Wood]
|
||||||
|
0 !LDRAW_ORG Primitive UPDATE 2024-01
|
||||||
|
0 !LICENSE Licensed under CC BY 4.0 : see CAreadme.txt
|
||||||
|
|
||||||
|
0 BFC CERTIFY CCW
|
||||||
|
|
||||||
|
0 !HISTORY 1998-07-15 [PTadmin] Official Update 1998-07
|
||||||
|
0 !HISTORY 2002-12-13 [hafhead] Made BFC compliant
|
||||||
|
0 !HISTORY 2003-03-12 [PTadmin] Official Update 2003-01
|
||||||
|
0 !HISTORY 2007-06-24 [PTadmin] Header formatted for Contributor Agreement
|
||||||
|
0 !HISTORY 2008-07-01 [PTadmin] Official Update 2008-01
|
||||||
|
0 !HISTORY 2012-02-16 [Philo] Changed to CCW
|
||||||
|
0 !HISTORY 2012-03-30 [PTadmin] Official Update 2012-01
|
||||||
|
0 !HISTORY 2024-01-03 [Holly-Wood] Complete re-write, original by Manfred Moolhuysen
|
||||||
|
0 !HISTORY 2024-01-29 [OrionP] Official Update 2024-01
|
||||||
|
|
||||||
|
2 24 -1 1 -1 -1 1 1
|
||||||
|
2 24 1 1 1 1 1 -1
|
||||||
|
2 24 -1 1 1 1 1 1
|
||||||
|
4 16 1 1 1 1 1 -1 -1 1 -1 -1 1 1
|
||||||
|
|
||||||
|
2 24 -1 0 -1 -1 0 1
|
||||||
|
4 16 -1 1 1 -1 1 -1 -1 0 -1 -1 0 1
|
||||||
|
|
||||||
|
2 24 1 0 1 1 0 -1
|
||||||
|
4 16 1 1 -1 1 1 1 1 0 1 1 0 -1
|
||||||
|
|
||||||
|
2 24 1 1 1 1 0 1
|
||||||
|
2 24 -1 1 1 -1 0 1
|
||||||
|
2 24 -1 0 1 1 0 1
|
||||||
|
4 16 1 1 1 -1 1 1 -1 0 1 1 0 1
|
||||||
@@ -0,0 +1,32 @@
|
|||||||
|
0 Box with 4 Faces (2 Parallel Pairs) and All Edges
|
||||||
|
0 Name: box4.dat
|
||||||
|
0 Author: James Jessiman
|
||||||
|
0 !LDRAW_ORG Primitive UPDATE 2012-01
|
||||||
|
0 !LICENSE Licensed under CC BY 4.0 : see CAreadme.txt
|
||||||
|
|
||||||
|
0 BFC CERTIFY CCW
|
||||||
|
|
||||||
|
0 !HISTORY 2002-04-03 [sbliss] Modified for BFC compliance
|
||||||
|
0 !HISTORY 2002-04-25 [PTadmin] Official Update 2002-02
|
||||||
|
0 !HISTORY 2007-06-24 [PTadmin] Header formatted for Contributor Agreement
|
||||||
|
0 !HISTORY 2008-07-01 [PTadmin] Official Update 2008-01
|
||||||
|
0 !HISTORY 2012-02-16 [Philo] Changed to CCW
|
||||||
|
0 !HISTORY 2012-03-30 [PTadmin] Official Update 2012-01
|
||||||
|
|
||||||
|
|
||||||
|
2 24 1 1 1 -1 1 1
|
||||||
|
2 24 -1 1 1 -1 1 -1
|
||||||
|
2 24 -1 1 -1 1 1 -1
|
||||||
|
2 24 1 1 -1 1 1 1
|
||||||
|
2 24 1 0 1 -1 0 1
|
||||||
|
2 24 -1 0 1 -1 0 -1
|
||||||
|
2 24 -1 0 -1 1 0 -1
|
||||||
|
2 24 1 0 -1 1 0 1
|
||||||
|
2 24 1 0 1 1 1 1
|
||||||
|
2 24 -1 0 1 -1 1 1
|
||||||
|
2 24 1 0 -1 1 1 -1
|
||||||
|
2 24 -1 0 -1 -1 1 -1
|
||||||
|
4 16 -1 1 1 -1 0 1 1 0 1 1 1 1
|
||||||
|
4 16 -1 1 -1 -1 0 -1 -1 0 1 -1 1 1
|
||||||
|
4 16 1 1 -1 1 0 -1 -1 0 -1 -1 1 -1
|
||||||
|
4 16 1 1 1 1 0 1 1 0 -1 1 1 -1
|
||||||
@@ -0,0 +1,33 @@
|
|||||||
|
0 Box with 4 Adjacent Faces and All Edges
|
||||||
|
0 Name: box4t.dat
|
||||||
|
0 Author: Tore Eriksson [Tore_Eriksson]
|
||||||
|
0 !LDRAW_ORG Primitive UPDATE 2003-02
|
||||||
|
0 !LICENSE Licensed under CC BY 4.0 : see CAreadme.txt
|
||||||
|
|
||||||
|
0 BFC CERTIFY CCW
|
||||||
|
|
||||||
|
0 !HISTORY 1997-09-29 [PTadmin] Official Update 1997-15
|
||||||
|
0 !HISTORY 2002-08-31 [izanette] Modified with WINDZ for BFC compliance
|
||||||
|
0 !HISTORY 2003-08-01 [PTadmin] Official Update 2003-02
|
||||||
|
0 !HISTORY 2007-06-24 [PTadmin] Header formatted for Contributor Agreement
|
||||||
|
0 !HISTORY 2008-07-01 [PTadmin] Official Update 2008-01
|
||||||
|
|
||||||
|
|
||||||
|
2 24 1 1 1 -1 1 1
|
||||||
|
2 24 -1 1 1 -1 1 -1
|
||||||
|
2 24 -1 1 -1 1 1 -1
|
||||||
|
2 24 1 1 -1 1 1 1
|
||||||
|
2 24 1 0 1 -1 0 1
|
||||||
|
2 24 -1 0 1 -1 0 -1
|
||||||
|
2 24 -1 0 -1 1 0 -1
|
||||||
|
2 24 1 0 -1 1 0 1
|
||||||
|
2 24 1 0 1 1 1 1
|
||||||
|
2 24 -1 0 1 -1 1 1
|
||||||
|
2 24 1 0 -1 1 1 -1
|
||||||
|
2 24 -1 0 -1 -1 1 -1
|
||||||
|
4 16 1 1 1 1 1 -1 -1 1 -1 -1 1 1
|
||||||
|
4 16 1 1 1 -1 1 1 -1 0 1 1 0 1
|
||||||
|
4 16 -1 1 1 -1 1 -1 -1 0 -1 -1 0 1
|
||||||
|
0 // 4 16 -1 1 -1 -1 0 -1 1 0 -1 1 1 -1
|
||||||
|
4 16 1 1 -1 1 1 1 1 0 1 1 0 -1
|
||||||
|
0
|
||||||
@@ -0,0 +1,33 @@
|
|||||||
|
0 Box with 5 Faces and All Edges
|
||||||
|
0 Name: box5.dat
|
||||||
|
0 Author: James Jessiman
|
||||||
|
0 !LDRAW_ORG Primitive UPDATE 2012-01
|
||||||
|
0 !LICENSE Licensed under CC BY 4.0 : see CAreadme.txt
|
||||||
|
|
||||||
|
0 BFC CERTIFY CCW
|
||||||
|
|
||||||
|
0 !HISTORY 2002-04-03 [sbliss] Modified for BFC compliance
|
||||||
|
0 !HISTORY 2002-04-25 [PTadmin] Official Update 2002-02
|
||||||
|
0 !HISTORY 2007-06-24 [PTadmin] Header formatted for Contributor Agreement
|
||||||
|
0 !HISTORY 2008-07-01 [PTadmin] Official Update 2008-01
|
||||||
|
0 !HISTORY 2012-02-16 [Philo] Changed to CCW
|
||||||
|
0 !HISTORY 2012-03-30 [PTadmin] Official Update 2012-01
|
||||||
|
|
||||||
|
|
||||||
|
2 24 1 1 1 -1 1 1
|
||||||
|
2 24 -1 1 1 -1 1 -1
|
||||||
|
2 24 -1 1 -1 1 1 -1
|
||||||
|
2 24 1 1 -1 1 1 1
|
||||||
|
2 24 1 0 1 -1 0 1
|
||||||
|
2 24 -1 0 1 -1 0 -1
|
||||||
|
2 24 -1 0 -1 1 0 -1
|
||||||
|
2 24 1 0 -1 1 0 1
|
||||||
|
2 24 1 0 1 1 1 1
|
||||||
|
2 24 -1 0 1 -1 1 1
|
||||||
|
2 24 1 0 -1 1 1 -1
|
||||||
|
2 24 -1 0 -1 -1 1 -1
|
||||||
|
4 16 -1 1 1 1 1 1 1 1 -1 -1 1 -1
|
||||||
|
4 16 -1 1 1 -1 0 1 1 0 1 1 1 1
|
||||||
|
4 16 -1 1 -1 -1 0 -1 -1 0 1 -1 1 1
|
||||||
|
4 16 1 1 -1 1 0 -1 -1 0 -1 -1 1 -1
|
||||||
|
4 16 1 1 1 1 0 1 1 0 -1 1 1 -1
|
||||||
@@ -0,0 +1,19 @@
|
|||||||
|
0 Empty
|
||||||
|
0 Name: empty.dat
|
||||||
|
0 Author: Steffen [Steffen]
|
||||||
|
0 !LDRAW_ORG Primitive UPDATE 2025-08
|
||||||
|
0 !LICENSE Licensed under CC BY 4.0 : see CAreadme.txt
|
||||||
|
|
||||||
|
0 BFC CERTIFY CCW
|
||||||
|
|
||||||
|
0 !HISTORY 2015-10-11 [PTadmin] Official Update 2015-01
|
||||||
|
0 !HISTORY 2025-08-13 [OrionP] Fix comments
|
||||||
|
0 !HISTORY 2025-08-31 [OrionP] Official Update 2025-08
|
||||||
|
|
||||||
|
0 // Tool MLCad cannot handle really empty files. This file is used as a workaround.
|
||||||
|
0 // It exceptionally contains forbidden non-LDRAW standard syntax to satisfy MLCad
|
||||||
|
0 // until it is fixed OR a different editor has become the de-facto LDRAW standard.
|
||||||
|
0 // The line being used here is an "impossible" conditional line which never should be visible,
|
||||||
|
0 // additionally hidden by a syntax explicitly hiding it from displaying.
|
||||||
|
|
||||||
|
0 MLCAD HIDE 5 24 0 0 0 0.0001 0 0 0.0001 -0.0001 0 0 0 0
|
||||||
@@ -0,0 +1,22 @@
|
|||||||
|
0 Rectangle
|
||||||
|
0 Name: rect.dat
|
||||||
|
0 Author: James Jessiman
|
||||||
|
0 !LDRAW_ORG Primitive UPDATE 2010-01
|
||||||
|
0 !LICENSE Licensed under CC BY 4.0 : see CAreadme.txt
|
||||||
|
|
||||||
|
0 BFC CERTIFY CCW
|
||||||
|
|
||||||
|
0 !HISTORY 2002-04-05 [hafhead] Added BFC statement
|
||||||
|
0 !HISTORY 2002-04-25 [PTadmin] Official Update 2002-02
|
||||||
|
0 !HISTORY 2007-06-24 [PTadmin] Header formatted for Contributor Agreement
|
||||||
|
0 !HISTORY 2008-07-01 [PTadmin] Official Update 2008-01
|
||||||
|
0 !HISTORY 2010-01-17 [mikeheide] changed winding to CCW
|
||||||
|
0 !HISTORY 2010-04-05 [PTadmin] Official Update 2010-01
|
||||||
|
|
||||||
|
|
||||||
|
2 24 1 0 1 -1 0 1
|
||||||
|
2 24 -1 0 1 -1 0 -1
|
||||||
|
2 24 -1 0 -1 1 0 -1
|
||||||
|
2 24 1 0 -1 1 0 1
|
||||||
|
4 16 -1 0 1 -1 0 -1 1 0 -1 1 0 1
|
||||||
|
0
|
||||||
@@ -0,0 +1,18 @@
|
|||||||
|
0 Rectangle with 1 Edge
|
||||||
|
0 Name: rect1.dat
|
||||||
|
0 Author: Chris Dee [cwdee]
|
||||||
|
0 !LDRAW_ORG Primitive UPDATE 2010-01
|
||||||
|
0 !LICENSE Licensed under CC BY 4.0 : see CAreadme.txt
|
||||||
|
|
||||||
|
0 BFC CERTIFY CCW
|
||||||
|
|
||||||
|
0 !HISTORY 2003-12-19 [PTadmin] Official Update 2003-03
|
||||||
|
0 !HISTORY 2007-06-24 [PTadmin] Header formatted for Contributor Agreement
|
||||||
|
0 !HISTORY 2008-07-01 [PTadmin] Official Update 2008-01
|
||||||
|
0 !HISTORY 2010-01-17 [mikeheide] changed winding to CCW
|
||||||
|
0 !HISTORY 2010-04-05 [PTadmin] Official Update 2010-01
|
||||||
|
|
||||||
|
|
||||||
|
2 24 1 0 -1 1 0 1
|
||||||
|
4 16 -1 0 1 -1 0 -1 1 0 -1 1 0 1
|
||||||
|
0
|
||||||
@@ -0,0 +1,40 @@
|
|||||||
|
0 ~Brick 2 x 4 without Front and Back Faces
|
||||||
|
0 Name: s\3001s01.dat
|
||||||
|
0 Author: James Jessiman
|
||||||
|
0 !LDRAW_ORG Subpart UPDATE 2004-03
|
||||||
|
0 !LICENSE Licensed under CC BY 4.0 : see CAreadme.txt
|
||||||
|
|
||||||
|
0 BFC CERTIFY CCW
|
||||||
|
|
||||||
|
0 !HISTORY 2002-05-07 {unknown} BFC certification
|
||||||
|
0 !HISTORY 2002-05-07 [westrate] Unknown change
|
||||||
|
0 !HISTORY 2004-09-15 [PTadmin] Official Update 2004-03
|
||||||
|
0 !HISTORY 2007-08-29 [PTadmin] Header formatted for Contributor Agreement
|
||||||
|
0 !HISTORY 2008-07-01 [PTadmin] Official Update 2008-01
|
||||||
|
|
||||||
|
|
||||||
|
0 // Uncomment for front and back faces:
|
||||||
|
0 // 4 16 40 0 -20 -40 0 -20 -40 24 -20 40 24 -20
|
||||||
|
0 // 4 16 40 0 20 -40 0 20 -40 24 20 40 24
|
||||||
|
|
||||||
|
1 16 20 4 0 1 0 0 0 -5 0 0 0 1 stud4.dat
|
||||||
|
1 16 0 4 0 1 0 0 0 -5 0 0 0 1 stud4.dat
|
||||||
|
1 16 -20 4 0 1 0 0 0 -5 0 0 0 1 stud4.dat
|
||||||
|
0 BFC INVERTNEXT
|
||||||
|
1 16 0 24 0 36 0 0 0 -20 0 0 0 16 box5.dat
|
||||||
|
4 16 40 24 20 36 24 16 -36 24 16 -40 24 20
|
||||||
|
4 16 -40 24 20 -36 24 16 -36 24 -16 -40 24 -20
|
||||||
|
4 16 -40 24 -20 -36 24 -16 36 24 -16 40 24 -20
|
||||||
|
4 16 40 24 -20 36 24 -16 36 24 16 40 24 20
|
||||||
|
1 16 0 24 0 0 0 40 0 -24 0 -20 0 0 box3u2p.dat
|
||||||
|
2 24 -40 24 -20 40 24 -20
|
||||||
|
2 24 -40 24 20 40 24 20
|
||||||
|
1 16 30 0 10 1 0 0 0 1 0 0 0 1 stud.dat
|
||||||
|
1 16 10 0 10 1 0 0 0 1 0 0 0 1 stud.dat
|
||||||
|
1 16 -10 0 10 1 0 0 0 1 0 0 0 1 stud.dat
|
||||||
|
1 16 -30 0 10 1 0 0 0 1 0 0 0 1 stud.dat
|
||||||
|
1 16 30 0 -10 1 0 0 0 1 0 0 0 1 stud.dat
|
||||||
|
1 16 10 0 -10 1 0 0 0 1 0 0 0 1 stud.dat
|
||||||
|
1 16 -10 0 -10 1 0 0 0 1 0 0 0 1 stud.dat
|
||||||
|
1 16 -30 0 -10 1 0 0 0 1 0 0 0 1 stud.dat
|
||||||
|
0
|
||||||
@@ -0,0 +1,15 @@
|
|||||||
|
0 ~Brick 2 x 2 without Front Face
|
||||||
|
0 Name: s\3003s01.dat
|
||||||
|
0 Author: Steffen [Steffen]
|
||||||
|
0 !LDRAW_ORG Subpart UPDATE 2013-02
|
||||||
|
0 !LICENSE Licensed under CC BY 4.0 : see CAreadme.txt
|
||||||
|
|
||||||
|
0 BFC CERTIFY CCW
|
||||||
|
|
||||||
|
0 !HISTORY 2009-05-02 [PTadmin] Official Update 2009-01
|
||||||
|
0 !HISTORY 2013-04-02 [Steffen] used s\3003s02.dat
|
||||||
|
0 !HISTORY 2013-12-23 [PTadmin] Official Update 2013-02
|
||||||
|
|
||||||
|
|
||||||
|
1 16 0 0 0 1 0 0 0 1 0 0 0 1 s\3003s02.dat
|
||||||
|
4 16 20 24 20 -20 24 20 -20 0 20 20 0 20
|
||||||
@@ -0,0 +1,22 @@
|
|||||||
|
0 ~Brick 2 x 2 without Front and Back Faces
|
||||||
|
0 Name: s\3003s02.dat
|
||||||
|
0 Author: Owen Burgoyne [C3POwen]
|
||||||
|
0 !LDRAW_ORG Subpart UPDATE 2013-02
|
||||||
|
0 !LICENSE Licensed under CC BY 4.0 : see CAreadme.txt
|
||||||
|
|
||||||
|
0 BFC CERTIFY CCW
|
||||||
|
|
||||||
|
0 !HISTORY 2013-12-23 [PTadmin] Official Update 2013-02
|
||||||
|
|
||||||
|
|
||||||
|
1 16 0 4 0 1 0 0 0 -5 0 0 0 1 stud4.dat
|
||||||
|
0 BFC INVERTNEXT
|
||||||
|
1 16 0 24 0 16 0 0 0 -20 0 0 0 16 box5.dat
|
||||||
|
4 16 20 24 20 16 24 16 -16 24 16 -20 24 20
|
||||||
|
4 16 -20 24 20 -16 24 16 -16 24 -16 -20 24 -20
|
||||||
|
4 16 -20 24 -20 -16 24 -16 16 24 -16 20 24 -20
|
||||||
|
4 16 20 24 -20 16 24 -16 16 24 16 20 24 20
|
||||||
|
2 24 20 24 20 -20 24 20
|
||||||
|
2 24 20 24 -20 -20 24 -20
|
||||||
|
1 16 0 24 0 0 0 20 0 -24 0 -20 0 0 box3u2p.dat
|
||||||
|
1 16 0 0 0 1 0 0 0 1 0 0 0 1 stug-2x2.dat
|
||||||
@@ -0,0 +1,25 @@
|
|||||||
|
0 ~Brick 1 x 2 without Front Face
|
||||||
|
0 Name: s\3004s01.dat
|
||||||
|
0 Author: James Jessiman
|
||||||
|
0 !LDRAW_ORG Subpart UPDATE 2003-03
|
||||||
|
0 !LICENSE Licensed under CC BY 4.0 : see CAreadme.txt
|
||||||
|
|
||||||
|
0 BFC CERTIFY CCW
|
||||||
|
|
||||||
|
0 !HISTORY 2003-09-07 [jriley] Subfiling, BFC
|
||||||
|
0 !HISTORY 2003-12-19 [PTadmin] Official Update 2003-03
|
||||||
|
0 !HISTORY 2007-08-29 [PTadmin] Header formatted for Contributor Agreement
|
||||||
|
0 !HISTORY 2008-07-01 [PTadmin] Official Update 2008-01
|
||||||
|
|
||||||
|
|
||||||
|
1 16 0 4 0 1 0 0 0 -5 0 0 0 1 stud3.dat
|
||||||
|
0 BFC INVERTNEXT
|
||||||
|
1 16 0 24 0 16 0 0 0 -20 0 0 0 6 box5.dat
|
||||||
|
4 16 20 24 10 16 24 6 -16 24 6 -20 24 10
|
||||||
|
4 16 -20 24 10 -16 24 6 -16 24 -6 -20 24 -10
|
||||||
|
4 16 -20 24 -10 -16 24 -6 16 24 -6 20 24 -10
|
||||||
|
4 16 20 24 -10 16 24 -6 16 24 6 20 24 10
|
||||||
|
1 16 0 24 0 20 0 0 0 -24 0 0 0 10 box4t.dat
|
||||||
|
1 16 10 0 0 1 0 0 0 1 0 0 0 1 stud.dat
|
||||||
|
1 16 -10 0 0 1 0 0 0 1 0 0 0 1 stud.dat
|
||||||
|
0
|
||||||
@@ -0,0 +1,24 @@
|
|||||||
|
0 ~Brick 1 x 1 without Front Face
|
||||||
|
0 Name: s\3005s01.dat
|
||||||
|
0 Author: Willy Tschager [Holly-Wood]
|
||||||
|
0 !LDRAW_ORG Subpart UPDATE 2024-04
|
||||||
|
0 !LICENSE Licensed under CC BY 4.0 : see CAreadme.txt
|
||||||
|
|
||||||
|
0 BFC CERTIFY CCW
|
||||||
|
|
||||||
|
0 !HISTORY 2003-09-07 [jriley] BFCed & Subfiled
|
||||||
|
0 !HISTORY 2004-03-02 [PTadmin] Official Update 2004-01
|
||||||
|
0 !HISTORY 2007-08-29 [PTadmin] Header formatted for Contributor Agreement
|
||||||
|
0 !HISTORY 2008-07-01 [PTadmin] Official Update 2008-01
|
||||||
|
0 !HISTORY 2024-03-15 [Holly-Wood] Complete re-write, original by jriley
|
||||||
|
0 !HISTORY 2024-05-28 [OrionP] Official Update 2024-04
|
||||||
|
|
||||||
|
1 16 0 0 0 0 0 1 0 1 0 -1 0 0 stud.dat
|
||||||
|
1 16 0 24 0 -10 0 0 0 -24 0 0 0 10 box4t.dat
|
||||||
|
0 BFC INVERTNEXT
|
||||||
|
1 16 0 24 0 -6 0 0 0 -20 0 0 0 6 box5.dat
|
||||||
|
|
||||||
|
4 16 -6 24 -6 6 24 -6 10 24 -10 -10 24 -10
|
||||||
|
4 16 10 24 -10 6 24 -6 6 24 6 10 24 10
|
||||||
|
4 16 6 24 6 -6 24 6 -10 24 10 10 24 10
|
||||||
|
4 16 -10 24 10 -6 24 6 -6 24 -6 -10 24 -10
|
||||||
@@ -0,0 +1,25 @@
|
|||||||
|
0 ~Brick 1 x 4 without Front Face
|
||||||
|
0 Name: s\3010s01.dat
|
||||||
|
0 Author: Willy Tschager [Holly-Wood]
|
||||||
|
0 !LDRAW_ORG Subpart UPDATE 2024-03
|
||||||
|
0 !LICENSE Licensed under CC BY 4.0 : see CAreadme.txt
|
||||||
|
|
||||||
|
0 BFC CERTIFY CCW
|
||||||
|
|
||||||
|
0 !HISTORY 2003-08-01 [PTadmin] Official Update 2003-02
|
||||||
|
0 !HISTORY 2007-08-29 [PTadmin] Header formatted for Contributor Agreement
|
||||||
|
0 !HISTORY 2008-07-01 [PTadmin] Official Update 2008-01
|
||||||
|
0 !HISTORY 2024-03-15 [Holly-Wood] Complete re-write, original by hafhead
|
||||||
|
0 !HISTORY 2024-04-28 [OrionP] Official Update 2024-03
|
||||||
|
|
||||||
|
1 16 0 0 0 1 0 0 0 1 0 0 0 1 stug-1x4.dat
|
||||||
|
1 16 0 4 0 1 0 0 0 -5 0 0 0 1 stug3-1x3.dat
|
||||||
|
|
||||||
|
1 16 0 24 0 -40 0 0 0 -24 0 0 0 10 box4t.dat
|
||||||
|
0 BFC INVERTNEXT
|
||||||
|
1 16 0 24 0 -36 0 0 0 -20 0 0 0 6 box5.dat
|
||||||
|
|
||||||
|
4 16 -36 24 -6 36 24 -6 40 24 -10 -40 24 -10
|
||||||
|
4 16 40 24 -10 36 24 -6 36 24 6 40 24 10
|
||||||
|
4 16 40 24 10 36 24 6 -36 24 6 -40 24 10
|
||||||
|
4 16 -40 24 10 -36 24 6 -36 24 -6 -40 24 -10
|
||||||
@@ -0,0 +1,24 @@
|
|||||||
|
0 ~Plate 1 x 2 without Front Face
|
||||||
|
0 Name: s\3023bs01.dat
|
||||||
|
0 Author: Massimo Maso [Sirio]
|
||||||
|
0 !LDRAW_ORG Subpart UPDATE 2023-03
|
||||||
|
0 !LICENSE Licensed under CC BY 4.0 : see CAreadme.txt
|
||||||
|
|
||||||
|
0 BFC CERTIFY CCW
|
||||||
|
|
||||||
|
0 !HISTORY 2022-01-14 [PTadmin] Official Update 2022-01
|
||||||
|
0 !HISTORY 2023-05-27 [OrionP] Moved from s\3023s01.dat
|
||||||
|
0 !HISTORY 2023-06-24 [OrionP] Official Update 2023-03
|
||||||
|
|
||||||
|
|
||||||
|
0 // Primitves
|
||||||
|
1 16 0 4 0 1 0 0 0 -1 0 0 0 1 stud3.dat
|
||||||
|
0 BFC INVERTNEXT
|
||||||
|
1 16 0 8 0 16 0 0 0 -4 0 0 0 6 box5.dat
|
||||||
|
1 16 0 8 0 20 0 0 0 -8 0 0 0 10 box4t.dat
|
||||||
|
1 16 0 0 0 1 0 0 0 1 0 0 0 1 stug-1x2.dat
|
||||||
|
0 // Faces
|
||||||
|
4 16 20 8 10 16 8 6 -16 8 6 -20 8 10
|
||||||
|
4 16 -20 8 10 -16 8 6 -16 8 -6 -20 8 -10
|
||||||
|
4 16 -20 8 -10 -16 8 -6 16 8 -6 20 8 -10
|
||||||
|
4 16 20 8 -10 16 8 -6 16 8 6 20 8 10
|
||||||
@@ -0,0 +1,19 @@
|
|||||||
|
0 ~Plate 1 x 1 without Front Face
|
||||||
|
0 Name: s\3024s01.dat
|
||||||
|
0 Author: Tore Eriksson [Tore_Eriksson]
|
||||||
|
0 !LDRAW_ORG Subpart UPDATE 2012-03
|
||||||
|
0 !LICENSE Licensed under CC BY 4.0 : see CAreadme.txt
|
||||||
|
|
||||||
|
0 BFC CERTIFY CCW
|
||||||
|
|
||||||
|
0 !HISTORY 2012-12-28 [PTadmin] Official Update 2012-03
|
||||||
|
|
||||||
|
|
||||||
|
0 BFC INVERTNEXT
|
||||||
|
1 16 0 8 0 0 0 6 0 -4 0 -6 0 0 box5.dat
|
||||||
|
4 16 10 8 -10 6 8 -6 6 8 6 10 8 10
|
||||||
|
4 16 10 8 10 6 8 6 -6 8 6 -10 8 10
|
||||||
|
4 16 -10 8 10 -6 8 6 -6 8 -6 -10 8 -10
|
||||||
|
4 16 -10 8 -10 -6 8 -6 6 8 -6 10 8 -10
|
||||||
|
1 16 0 8 0 10 0 0 0 -8 0 0 0 10 box4t.dat
|
||||||
|
1 16 0 0 0 0 0 1 0 1 0 -1 0 0 stud.dat
|
||||||
@@ -0,0 +1,91 @@
|
|||||||
|
0 ~Slope Brick 45 2 x 2 without Front Face
|
||||||
|
0 Name: s\3039s01.dat
|
||||||
|
0 Author: Willy Tschager [Holly-Wood]
|
||||||
|
0 !LDRAW_ORG Subpart UPDATE 2024-02
|
||||||
|
0 !LICENSE Licensed under CC BY 4.0 : see CAreadme.txt
|
||||||
|
|
||||||
|
0 BFC CERTIFY CCW
|
||||||
|
|
||||||
|
0 !HISTORY 1999-12-31 [PTadmin] Official Update 1999-06
|
||||||
|
0 !HISTORY 2003-07-02 [Steffen] BFCed; change in part name: "w/o" --> "without"
|
||||||
|
0 !HISTORY 2003-12-19 [PTadmin] Official Update 2003-03
|
||||||
|
0 !HISTORY 2007-08-30 [PTadmin] Header formatted for Contributor Agreement
|
||||||
|
0 !HISTORY 2008-07-01 [PTadmin] Official Update 2008-01
|
||||||
|
0 !HISTORY 2024-03-14 [Holly-Wood] Complete re-write, original by jvan
|
||||||
|
0 !HISTORY 2024-03-24 [OrionP] Official Update 2024-02
|
||||||
|
|
||||||
|
1 16 0 0 0 1 0 0 0 1 0 0 0 1 stug-1x2.dat
|
||||||
|
|
||||||
|
1 16 0 12 -10 -1 0 0 0 -3 0 0 0 1 stud4a.dat
|
||||||
|
|
||||||
|
0 BFC INVERTNEXT
|
||||||
|
1 16 0 4 -10 6 0 0 0 8 0 0 0 6 2-4cyli.dat
|
||||||
|
0 BFC INVERTNEXT
|
||||||
|
1 16 0 10 -10 6 0 0 0 2 0 0 0 -6 2-4cyli.dat
|
||||||
|
|
||||||
|
0 BFC INVERTNEXT
|
||||||
|
1 16 0 10 -10 0 0 6 0 -6 0 -6 0 0 1-4cyls.dat
|
||||||
|
0 BFC INVERTNEXT
|
||||||
|
1 16 0 10 -10 0 0 -6 0 -6 0 -6 0 0 1-4cyls.dat
|
||||||
|
|
||||||
|
1 16 0 4 -10 8 0 0 0 8 0 0 0 8 2-4cyli.dat
|
||||||
|
|
||||||
|
1 16 0 12 -10 0 0 8 0 -8 0 -8 0 0 1-4cyls.dat
|
||||||
|
1 16 0 12 -10 0 0 -8 0 -8 0 -8 0 0 1-4cyls.dat
|
||||||
|
|
||||||
|
1 16 0 4 -10 6 0 0 0 1 0 0 0 6 2-4edge.dat
|
||||||
|
1 16 0 4 -10 6 0 0 0 1 6 0 0 -6 2-4edge.dat
|
||||||
|
|
||||||
|
1 16 0 4 -10 8 0 0 0 1 0 0 0 8 2-4edge.dat
|
||||||
|
1 16 0 4 -10 8 0 0 0 1 8 0 0 -8 2-4edge.dat
|
||||||
|
|
||||||
|
1 16 0 4 -10 6 0 0 0 -1 0 0 0 6 2-4chrd.dat
|
||||||
|
1 16 0 4 -10 8 0 0 0 -1 0 0 0 8 2-4ndis.dat
|
||||||
|
|
||||||
|
1 16 0 4 -10 6 0 0 0 -1 6 0 0 -6 2-4chrd.dat
|
||||||
|
1 16 0 4 -10 8 0 0 0 -1 8 0 0 -8 2-4ndis.dat
|
||||||
|
|
||||||
|
0 BFC INVERTNEXT
|
||||||
|
1 16 0 14 -10 0 0 16 10 0 0 0 16 0 box3u4a.dat
|
||||||
|
|
||||||
|
4 16 -8 4 -2 -8 4 -10 -16 4 -10 -16 4 6
|
||||||
|
4 16 8 4 -10 8 4 -2 16 4 6 16 4 -10
|
||||||
|
4 16 16 4 6 8 4 -2 0 4 -2 -16 4 6
|
||||||
|
3 16 -8 4 -2 -16 4 6 0 4 -2
|
||||||
|
|
||||||
|
1 16 0 22 -26 0 0 16 -2 0 0 0 -1 0 rect.dat
|
||||||
|
|
||||||
|
4 16 8 12 -18 8 4 -10 16 4 -10 16 20 -26
|
||||||
|
4 16 0 12 -18 8 12 -18 16 20 -26 -16 20 -26
|
||||||
|
3 16 0 12 -18 -16 20 -26 -8 12 -18
|
||||||
|
4 16 -16 20 -26 -16 4 -10 -8 4 -10 -8 12 -18
|
||||||
|
4 16 16 4 -10 16 24 -10 16 24 -26 16 20 -26
|
||||||
|
4 16 -16 24 -26 -16 24 -10 -16 4 -10 -16 20 -26
|
||||||
|
|
||||||
|
2 24 -16 4 -10 -8 4 -10
|
||||||
|
2 24 8 4 -10 16 4 -10
|
||||||
|
2 24 -6 4 -10 6 4 -10
|
||||||
|
2 24 -16 24 -10 -16 24 -26
|
||||||
|
2 24 -16 4 -10 -16 20 -26
|
||||||
|
2 24 16 24 -10 16 24 -26
|
||||||
|
2 24 16 4 -10 16 20 -26
|
||||||
|
|
||||||
|
1 16 0 24 0 20 0 0 0 -24 0 0 0 10 box4-4a.dat
|
||||||
|
|
||||||
|
1 16 0 22 -30 0 0 -20 -2 0 0 0 1 0 rect.dat
|
||||||
|
|
||||||
|
4 16 20 24 -10 20 0 -10 20 20 -30 20 24 -30
|
||||||
|
4 16 -20 20 -30 -20 0 -10 -20 24 -10 -20 24 -30
|
||||||
|
|
||||||
|
2 24 -20 24 -10 -20 24 -30
|
||||||
|
2 24 20 24 -10 20 24 -30
|
||||||
|
2 24 -20 0 -10 -20 20 -30
|
||||||
|
2 24 20 0 -10 20 20 -30
|
||||||
|
2 24 -20 0 -10 20 0 -10
|
||||||
|
|
||||||
|
4 16 -20 24 -30 -16 24 -26 16 24 -26 20 24 -30
|
||||||
|
4 16 20 24 -30 16 24 -26 16 24 -10 20 24 -10
|
||||||
|
4 16 20 24 -10 16 24 -10 16 24 6 20 24 10
|
||||||
|
4 16 -20 24 -10 -16 24 -10 -16 24 -26 -20 24 -30
|
||||||
|
4 16 -16 24 6 -16 24 -10 -20 24 -10 -20 24 10
|
||||||
|
4 16 16 24 6 -16 24 6 -20 24 10 20 24 10
|
||||||
@@ -0,0 +1,75 @@
|
|||||||
|
0 ~Slope Brick 45 2 x 1 without Front Face
|
||||||
|
0 Name: s\3040s01.dat
|
||||||
|
0 Author: Orion Pobursky [OrionP]
|
||||||
|
0 !LDRAW_ORG Subpart UPDATE 2004-01
|
||||||
|
0 !LICENSE Licensed under CC BY 4.0 : see CAreadme.txt
|
||||||
|
|
||||||
|
0 BFC CERTIFY CCW
|
||||||
|
|
||||||
|
0 !HISTORY 2003-07-02 [Steffen] BFCed; removed matrix all zero "errors"
|
||||||
|
0 !HISTORY 2004-03-02 [PTadmin] Official Update 2004-01
|
||||||
|
0 !HISTORY 2007-08-30 [PTadmin] Header formatted for Contributor Agreement
|
||||||
|
0 !HISTORY 2008-07-01 [PTadmin] Official Update 2008-01
|
||||||
|
|
||||||
|
|
||||||
|
0 // Uncomment for front face
|
||||||
|
0 // 4 16 10 20 -30 10 0 -10 -10 0 -10 -10 20 -30
|
||||||
|
|
||||||
|
1 16 0 20 -10 1 0 0 0 -1 0 0 0 1 stud3a.dat
|
||||||
|
1 16 0 4 -10 4 0 0 0 4 0 0 0 4 2-4edge.dat
|
||||||
|
1 16 0 4 -10 4 0 0 0 99 4 0 0 -4 2-4edge.dat
|
||||||
|
1 16 0 8 -10 0 0 4 0 -4 0 -4 0 0 1-4cyls.dat
|
||||||
|
1 16 0 8 -10 0 0 -4 0 -4 0 -4 0 0 1-4cyls.dat
|
||||||
|
1 16 0 4 -10 4 0 0 0 16 0 0 0 4 2-4cyli.dat
|
||||||
|
1 16 0 8 -10 4 0 0 0 12 0 0 0 -4 2-4cyli.dat
|
||||||
|
2 24 6 24 6 -6 24 6
|
||||||
|
2 24 -6 24 6 -6 24 -26
|
||||||
|
2 24 -6 24 -26 6 24 -26
|
||||||
|
2 24 6 24 -26 6 24 6
|
||||||
|
2 24 10 24 10 -10 24 10
|
||||||
|
2 24 -10 24 10 -10 24 -30
|
||||||
|
2 24 -10 24 -30 10 24 -30
|
||||||
|
2 24 10 24 -30 10 24 10
|
||||||
|
2 24 6 24 6 6 4 6
|
||||||
|
2 24 -6 24 6 -6 4 6
|
||||||
|
2 24 6 24 -26 6 20 -26
|
||||||
|
2 24 -6 24 -26 -6 20 -26
|
||||||
|
2 24 6 4 6 -6 4 6
|
||||||
|
2 24 6 4 -10 -6 4 -10
|
||||||
|
2 24 6 20 -26 -6 20 -26
|
||||||
|
2 24 6 4 6 6 4 -10
|
||||||
|
2 24 -6 4 6 -6 4 -10
|
||||||
|
2 24 6 20 -26 6 4 -10
|
||||||
|
2 24 -6 20 -26 -6 4 -10
|
||||||
|
2 24 10 24 10 10 0 10
|
||||||
|
2 24 -10 24 10 -10 0 10
|
||||||
|
2 24 10 24 -30 10 20 -30
|
||||||
|
2 24 -10 24 -30 -10 20 -30
|
||||||
|
2 24 10 0 10 -10 0 10
|
||||||
|
2 24 10 0 -10 -10 0 -10
|
||||||
|
2 24 10 20 -30 -10 20 -30
|
||||||
|
2 24 10 0 10 10 0 -10
|
||||||
|
2 24 -10 0 10 -10 0 -10
|
||||||
|
2 24 10 20 -30 10 0 -10
|
||||||
|
2 24 -10 20 -30 -10 0 -10
|
||||||
|
4 16 10 24 10 6 24 6 -6 24 6 -10 24 10
|
||||||
|
4 16 -10 24 10 -6 24 6 -6 24 -26 -10 24 -30
|
||||||
|
4 16 -10 24 -30 -6 24 -26 6 24 -26 10 24 -30
|
||||||
|
4 16 10 24 -30 6 24 -26 6 24 6 10 24 10
|
||||||
|
4 16 6 4 6 6 4 -10 -6 4 -10 -6 4 6
|
||||||
|
4 16 10 0 -10 10 0 10 -10 0 10 -10 0 -10
|
||||||
|
4 16 -10 24 10 -10 0 10 10 0 10 10 24 10
|
||||||
|
4 16 6 24 6 6 4 6 -6 4 6 -6 24 6
|
||||||
|
4 16 6 20 -26 6 24 -26 -6 24 -26 -6 20 -26
|
||||||
|
4 16 10 24 -30 10 20 -30 -10 20 -30 -10 24 -30
|
||||||
|
4 16 10 24 10 10 0 10 10 20 -30 10 24 -30
|
||||||
|
3 16 10 0 10 10 0 -10 10 20 -30
|
||||||
|
4 16 6 20 -26 6 4 6 6 24 6 6 24 -26
|
||||||
|
3 16 6 20 -26 6 4 -10 6 4 6
|
||||||
|
4 16 -6 24 6 -6 4 6 -6 20 -26 -6 24 -26
|
||||||
|
3 16 -6 4 6 -6 4 -10 -6 20 -26
|
||||||
|
4 16 -10 20 -30 -10 0 10 -10 24 10 -10 24 -30
|
||||||
|
3 16 -10 20 -30 -10 0 -10 -10 0 10
|
||||||
|
4 16 -6 4 -10 6 4 -10 6 20 -26 -6 20 -26
|
||||||
|
1 16 0 0 0 1 0 0 0 1 0 0 0 1 stud.dat
|
||||||
|
0
|
||||||
@@ -0,0 +1,24 @@
|
|||||||
|
0 ~Brick 1 x 1 Round with Hollow Stud without Outer Surface
|
||||||
|
0 Name: s\3062bs01.dat
|
||||||
|
0 Author: Takeshi Takahashi [RainbowDolphin]
|
||||||
|
0 !LDRAW_ORG Subpart UPDATE 2022-02
|
||||||
|
0 !LICENSE Licensed under CC BY 4.0 : see CAreadme.txt
|
||||||
|
|
||||||
|
0 BFC CERTIFY CCW
|
||||||
|
|
||||||
|
0 !HISTORY 2022-03-06 [PTadmin] Official Update 2022-02
|
||||||
|
|
||||||
|
|
||||||
|
1 16 0 4 0 4 0 0 0 1 0 0 0 4 4-4edge.dat
|
||||||
|
1 16 0 19 0 10 0 0 0 1 0 0 0 10 4-4edge.dat
|
||||||
|
1 16 0 0 0 10 0 0 0 1 0 0 0 10 4-4edge.dat
|
||||||
|
1 16 0 0 0 6 0 0 0 1 0 0 0 6 4-4edge.dat
|
||||||
|
0 BFC INVERTNEXT
|
||||||
|
1 16 0 0 0 4 0 0 0 4 0 0 0 4 4-4cyli.dat
|
||||||
|
1 16 0 0 0 1 0 0 0 1 0 0 0 1 stud2a.dat
|
||||||
|
1 16 0 0 0 2 0 0 0 1 0 0 0 2 4-4ring3.dat
|
||||||
|
1 16 0 4 0 2 0 0 0 -1 0 0 0 2 4-4ring2.dat
|
||||||
|
1 16 0 0 0 2 0 0 0 1 0 0 0 2 4-4ring4.dat
|
||||||
|
1 16 0 19 0 2 0 0 0 -1 0 0 0 2 4-4ring4.dat
|
||||||
|
1 16 0 19 0 8 0 0 0 5 0 0 0 8 4-4cylo.dat
|
||||||
|
1 16 0 4 0 1 0 0 0 -5 0 0 0 -1 stud4od.dat
|
||||||
@@ -0,0 +1,37 @@
|
|||||||
|
0 ~Tile 2 x 2 with Groove without Face
|
||||||
|
0 Name: s\3068bs01.dat
|
||||||
|
0 Author: Willy Tschager [Holly-Wood]
|
||||||
|
0 !LDRAW_ORG Subpart UPDATE 2024-03
|
||||||
|
0 !LICENSE Licensed under CC BY 4.0 : see CAreadme.txt
|
||||||
|
|
||||||
|
0 BFC CERTIFY CCW
|
||||||
|
|
||||||
|
0 !HISTORY 2002-04-02 [sbliss] Modified for BFC compliance
|
||||||
|
0 !HISTORY 2002-04-25 [PTadmin] Official Update 2002-02
|
||||||
|
0 !HISTORY 2007-08-30 [PTadmin] Header formatted for Contributor Agreement
|
||||||
|
0 !HISTORY 2008-07-01 [PTadmin] Official Update 2008-01
|
||||||
|
0 !HISTORY 2024-03-07 [Holly-Wood] Complete re-write, original by BrickCaster
|
||||||
|
0 !HISTORY 2024-04-28 [OrionP] Official Update 2024-03
|
||||||
|
|
||||||
|
1 16 0 0 0 20 0 0 0 7 0 0 0 20 box4.dat
|
||||||
|
1 16 0 7 0 19 0 0 0 1 0 0 0 19 box4.dat
|
||||||
|
0 BFC INVERTNEXT
|
||||||
|
1 16 0 4 0 16 0 0 0 4 0 0 0 16 box4.dat
|
||||||
|
1 16 0 4 0 1 0 0 0 -1 0 0 0 1 stud4.dat
|
||||||
|
1 16 0 4 0 6 0 0 0 -1 0 0 0 6 4-4disc.dat
|
||||||
|
1 16 0 4 0 8 0 0 0 -1 0 0 0 8 4-4ndis.dat
|
||||||
|
|
||||||
|
4 16 -19 7 -19 19 7 -19 20 7 -20 -20 7 -20
|
||||||
|
4 16 20 7 -20 19 7 -19 19 7 19 20 7 20
|
||||||
|
4 16 20 7 20 19 7 19 -19 7 19 -20 7 20
|
||||||
|
4 16 -20 7 20 -19 7 19 -19 7 -19 -20 7 -20
|
||||||
|
|
||||||
|
4 16 -16 8 -16 16 8 -16 19 8 -19 -19 8 -19
|
||||||
|
4 16 19 8 -19 16 8 -16 16 8 16 19 8 19
|
||||||
|
4 16 19 8 19 16 8 16 -16 8 16 -19 8 19
|
||||||
|
4 16 -19 8 19 -16 8 16 -16 8 -16 -19 8 -19
|
||||||
|
|
||||||
|
4 16 -8 4 -8 8 4 -8 16 4 -16 -16 4 -16
|
||||||
|
4 16 16 4 -16 8 4 -8 8 4 8 16 4 16
|
||||||
|
4 16 16 4 16 8 4 8 -8 4 8 -16 4 16
|
||||||
|
4 16 -16 4 16 -8 4 8 -8 4 -8 -16 4 -16
|
||||||
@@ -0,0 +1,24 @@
|
|||||||
|
0 ~Tile 1 x 2 with Groove without Top Face
|
||||||
|
0 Name: s\3069bs01.dat
|
||||||
|
0 Author: Santeri Piippo [arezey]
|
||||||
|
0 !LDRAW_ORG Subpart UPDATE 2010-02
|
||||||
|
0 !LICENSE Licensed under CC BY 4.0 : see CAreadme.txt
|
||||||
|
|
||||||
|
0 BFC CERTIFY CCW
|
||||||
|
|
||||||
|
0 !HISTORY 2010-07-05 [PTadmin] Official Update 2010-02
|
||||||
|
|
||||||
|
|
||||||
|
1 16 0 0 0 20 0 0 0 7 0 0 0 10 box4.dat
|
||||||
|
1 16 0 7 0 19 0 0 0 1 0 0 0 9 box4.dat
|
||||||
|
0 BFC INVERTNEXT
|
||||||
|
1 16 0 8 0 16 0 0 0 -4 0 0 0 6 box5.dat
|
||||||
|
4 16 -19 8 9 -16 8 6 -16 8 -6 -19 8 -9
|
||||||
|
4 16 19 8 -9 16 8 -6 16 8 6 19 8 9
|
||||||
|
4 16 19 8 9 16 8 6 -16 8 6 -19 8 9
|
||||||
|
4 16 -19 8 -9 -16 8 -6 16 8 -6 19 8 -9
|
||||||
|
4 16 -20 7 10 -19 7 9 -19 7 -9 -20 7 -10
|
||||||
|
4 16 20 7 -10 19 7 -9 19 7 9 20 7 10
|
||||||
|
4 16 20 7 10 19 7 9 -19 7 9 -20 7 10
|
||||||
|
4 16 -20 7 -10 -19 7 -9 19 7 -9 20 7 -10
|
||||||
|
0 //
|
||||||
@@ -0,0 +1,99 @@
|
|||||||
|
0 ~Brick 2 x 2 Round without Reinforcement without Outer Surface
|
||||||
|
0 Name: s\3941s01.dat
|
||||||
|
0 Author: Gerald Lasser [GeraldLasser]
|
||||||
|
0 !LDRAW_ORG Subpart UPDATE 2020-01
|
||||||
|
0 !LICENSE Licensed under CC BY 4.0 : see CAreadme.txt
|
||||||
|
|
||||||
|
0 BFC CERTIFY CCW
|
||||||
|
|
||||||
|
0 !HISTORY 2018-01-21 [GeraldLasser] Removed Surface for Printed and Modified Versions
|
||||||
|
0 !HISTORY 2018-02-19 [MagFors] used more primitives
|
||||||
|
0 !HISTORY 2018-03-30 [MagFors] used stug10-2x2 primitive
|
||||||
|
0 !HISTORY 2019-06-28 [PTadmin] Official Update 2019-01
|
||||||
|
0 !HISTORY 2020-06-28 [PTadmin] Official Update 2020-01
|
||||||
|
|
||||||
|
|
||||||
|
1 16 0 20 0 1 0 0 0 -1 0 0 0 1 stud4a.dat
|
||||||
|
1 16 0 4 0 8 0 0 0 1 0 0 0 8 4-4edge.dat
|
||||||
|
1 16 0 4 0 8 0 0 0 16 0 0 0 8 4-4cyli.dat
|
||||||
|
1 16 0 20 0 1 0 0 0 1 0 0 0 1 axlehol3.dat
|
||||||
|
1 16 0 0 0 1 0 0 0 20 0 0 0 1 axlehole.dat
|
||||||
|
1 16 0 0 0 1 0 0 0 1 0 0 0 1 axlehol2.dat
|
||||||
|
1 16 0 0 0 20 0 0 0 1 0 0 0 20 4-4edge.dat
|
||||||
|
1 16 0 20 0 18.47759 0 7.65367 0 4 0 -7.65367 0 18.47759 1-8cyli.dat
|
||||||
|
1 16 0 24 0 18.47759 0 7.65367 0 1 0 -7.65367 0 18.47759 1-8edge.dat
|
||||||
|
1 16 0 24 0 18.47759 0 7.65367 0 -1 0 -7.65367 0 18.47759 1-8chrd.dat
|
||||||
|
1 16 0 20 0 -7.65367 0 18.47759 0 4 0 -18.47759 0 -7.65367 1-8cyli.dat
|
||||||
|
1 16 0 24 0 -7.65367 0 18.47759 0 1 0 -18.47759 0 -7.65367 1-8edge.dat
|
||||||
|
1 16 0 24 0 -7.65367 0 18.47759 0 -1 0 -18.47759 0 -7.65367 1-8chrd.dat
|
||||||
|
1 16 0 20 0 -18.47759 0 -7.65367 0 4 0 7.65367 0 -18.47759 1-8cyli.dat
|
||||||
|
1 16 0 24 0 -18.47759 0 -7.65367 0 1 0 7.65367 0 -18.47759 1-8edge.dat
|
||||||
|
1 16 0 24 0 -18.47759 0 -7.65367 0 -1 0 7.65367 0 -18.47759 1-8chrd.dat
|
||||||
|
1 16 0 20 0 7.65367 0 -18.47759 0 4 0 18.47759 0 7.65367 1-8cyli.dat
|
||||||
|
1 16 0 24 0 7.65367 0 -18.47759 0 1 0 18.47759 0 7.65367 1-8edge.dat
|
||||||
|
1 16 0 24 0 7.65367 0 -18.47759 0 -1 0 18.47759 0 7.65367 1-8chrd.dat
|
||||||
|
|
||||||
|
1 16 16 22 0 0 1 0 -2 0 0 0 0 11.36 rect.dat
|
||||||
|
1 16 0 22 -16 0 0 11.36 -2 0 0 0 -1 0 rect.dat
|
||||||
|
1 16 -16 22 0 0 -1 0 -2 0 0 0 0 -11.36 rect.dat
|
||||||
|
1 16 0 22 16 0 0 -11.36 -2 0 0 0 1 0 rect.dat
|
||||||
|
4 16 11.36 24 16 -11.36 24 16 -7.65 24 18.48 7.65 24 18.48
|
||||||
|
4 16 -16 24 11.36 -16 24 -11.36 -18.48 24 -7.65 -18.48 24 7.65
|
||||||
|
4 16 -11.36 24 -16 11.36 24 -16 7.65 24 -18.48 -7.65 24 -18.48
|
||||||
|
4 16 16 24 -11.36 16 24 11.36 18.48 24 7.65 18.48 24 -7.65
|
||||||
|
1 16 17.24 22 9.505 0 -1 -1.24 2 0 0 0 0 1.855 rect1.dat
|
||||||
|
1 16 9.505 22 17.24 0 0 -1.855 2 0 0 0 -1 1.24 rect1.dat
|
||||||
|
1 16 -17.24 22 9.505 0 1 -1.24 2 0 0 0 0 -1.855 rect1.dat
|
||||||
|
1 16 -9.505 22 17.24 0 0 -1.855 2 0 0 0 -1 -1.24 rect1.dat
|
||||||
|
1 16 17.24 22 -9.505 0 -1 1.24 2 0 0 0 0 1.855 rect1.dat
|
||||||
|
1 16 9.505 22 -17.24 0 0 1.855 2 0 0 0 1 1.24 rect1.dat
|
||||||
|
1 16 -17.24 22 -9.505 0 1 1.24 2 0 0 0 0 -1.855 rect1.dat
|
||||||
|
1 16 -9.505 22 -17.24 0 0 1.855 2 0 0 0 1 -1.24 rect1.dat
|
||||||
|
2 24 16 20 11.36 14.14 20 14.14
|
||||||
|
2 24 14.14 20 14.14 11.36 20 16
|
||||||
|
2 24 -16 20 11.36 -14.14 20 14.14
|
||||||
|
2 24 -14.14 20 14.14 -11.36 20 16
|
||||||
|
2 24 16 20 -11.36 14.14 20 -14.14
|
||||||
|
2 24 14.14 20 -14.14 11.36 20 -16
|
||||||
|
2 24 -16 20 -11.36 -14.14 20 -14.14
|
||||||
|
2 24 -14.14 20 -14.14 -11.36 20 -16
|
||||||
|
|
||||||
|
1 16 0 4 0 8 0 0 0 -1 0 0 0 8 4-4ring1.dat
|
||||||
|
0 BFC INVERTNEXT
|
||||||
|
1 16 0 4 0 16 0 0 0 16 0 0 0 16 4-4cylo.dat
|
||||||
|
3 16 16 20 0 14.78 20 6.12 16 20 11.36
|
||||||
|
4 16 14.78 20 6.12 11.31 20 11.31 14.14 20 14.14 16 20 11.36
|
||||||
|
4 16 6.12 20 14.78 11.36 20 16 14.14 20 14.14 11.31 20 11.31
|
||||||
|
3 16 0 20 16 11.36 20 16 6.12 20 14.78
|
||||||
|
3 16 -16 20 0 -16 20 11.36 -14.78 20 6.12
|
||||||
|
4 16 -14.78 20 6.12 -16 20 11.36 -14.14 20 14.14 -11.31 20 11.31
|
||||||
|
4 16 -6.12 20 14.78 -11.31 20 11.31 -14.14 20 14.14 -11.36 20 16
|
||||||
|
3 16 0 20 16 -6.12 20 14.78 -11.36 20 16
|
||||||
|
3 16 16 20 0 16 20 -11.36 14.78 20 -6.12
|
||||||
|
4 16 14.78 20 -6.12 16 20 -11.36 14.14 20 -14.14 11.31 20 -11.31
|
||||||
|
4 16 6.12 20 -14.78 11.31 20 -11.31 14.14 20 -14.14 11.36 20 -16
|
||||||
|
3 16 0 20 -16 6.12 20 -14.78 11.36 20 -16
|
||||||
|
3 16 -16 20 0 -14.78 20 -6.12 -16 20 -11.36
|
||||||
|
4 16 -14.78 20 -6.12 -11.31 20 -11.31 -14.14 20 -14.14 -16 20 -11.36
|
||||||
|
4 16 -6.12 20 -14.78 -11.36 20 -16 -14.14 20 -14.14 -11.31 20 -11.31
|
||||||
|
3 16 0 20 -16 -11.36 20 -16 -6.12 20 -14.78
|
||||||
|
5 24 -7.65 20 18.48 -7.65 24 18.48 -14.14 20 14.14 0 20 20
|
||||||
|
5 24 -18.48 20 7.65 -18.48 24 7.65 -20 20 0 -14.14 20 14.14
|
||||||
|
5 24 -18.48 20 -7.65 -18.48 24 -7.65 -14.14 20 -14.14 -20 20 0
|
||||||
|
5 24 -7.65 20 -18.48 -7.65 24 -18.48 0 20 -20 -14.14 20 -14.14
|
||||||
|
5 24 7.65 20 -18.48 7.65 24 -18.48 14.14 20 -14.14 0 20 -20
|
||||||
|
5 24 18.48 20 -7.65 18.48 24 -7.65 20 20 0 14.14 20 -14.14
|
||||||
|
5 24 18.48 20 7.65 18.48 24 7.65 14.14 20 14.14 20 20 0
|
||||||
|
5 24 7.65 20 18.48 7.65 24 18.48 0 20 20 14.14 20 14.14
|
||||||
|
|
||||||
|
1 16 0 0 0 4.24264 0 -4.24264 0 1 0 4.24264 0 4.24264 4-4ndis.dat
|
||||||
|
1 16 0 0 0 20 0 0 0 1 0 0 0 20 1-4chrd.dat
|
||||||
|
1 16 0 0 0 -20 0 0 0 1 0 0 0 20 1-4chrd.dat
|
||||||
|
1 16 0 0 0 -20 0 0 0 1 0 0 0 -20 1-4chrd.dat
|
||||||
|
1 16 0 0 0 20 0 0 0 1 0 0 0 -20 1-4chrd.dat
|
||||||
|
4 16 0 0 -20 0 0 -8.4853 -8.4853 0 0 -20 0 0
|
||||||
|
4 16 0 0 20 -20 0 0 -8.4853 0 0 0 0 8.4853
|
||||||
|
4 16 20 0 0 0 0 20 0 0 8.4853 8.4853 0 0
|
||||||
|
4 16 0 0 -20 20 0 0 8.4853 0 0 0 0 -8.4853
|
||||||
|
|
||||||
|
1 16 0 0 0 1 0 0 0 1 0 0 0 1 stug10-2x2.dat
|
||||||
@@ -0,0 +1,20 @@
|
|||||||
|
0 Stud
|
||||||
|
0 Name: stud.dat
|
||||||
|
0 Author: James Jessiman
|
||||||
|
0 !LDRAW_ORG Primitive UPDATE 2012-01
|
||||||
|
0 !LICENSE Licensed under CC BY 4.0 : see CAreadme.txt
|
||||||
|
|
||||||
|
0 BFC CERTIFY CCW
|
||||||
|
|
||||||
|
0 !HISTORY 2002-04-04 [sbliss] Modified for BFC compliance
|
||||||
|
0 !HISTORY 2002-04-25 [PTadmin] Official Update 2002-02
|
||||||
|
0 !HISTORY 2007-06-24 [PTadmin] Header formatted for Contributor Agreement
|
||||||
|
0 !HISTORY 2008-07-01 [PTadmin] Official Update 2008-01
|
||||||
|
0 !HISTORY 2012-02-16 [Philo] Changed to CCW
|
||||||
|
0 !HISTORY 2012-03-30 [PTadmin] Official Update 2012-01
|
||||||
|
|
||||||
|
|
||||||
|
1 16 0 0 0 6 0 0 0 1 0 0 0 6 4-4edge.dat
|
||||||
|
1 16 0 -4 0 6 0 0 0 1 0 0 0 6 4-4edge.dat
|
||||||
|
1 16 0 0 0 6 0 0 0 -4 0 0 0 6 4-4cyli.dat
|
||||||
|
1 16 0 -4 0 6 0 0 0 1 0 0 0 6 4-4disc.dat
|
||||||
@@ -0,0 +1,44 @@
|
|||||||
|
0 Stud Truncated Laterally Curved 40D for Round 2 x 2 Parts
|
||||||
|
0 Name: stud10.dat
|
||||||
|
0 Author: Orion Pobursky [OrionP]
|
||||||
|
0 !LDRAW_ORG Primitive UPDATE 2020-01
|
||||||
|
0 !LICENSE Licensed under CC BY 4.0 : see CAreadme.txt
|
||||||
|
|
||||||
|
0 BFC CERTIFY CCW
|
||||||
|
|
||||||
|
0 !HISTORY 2004-01-06 [Steffen] Fixed Header
|
||||||
|
0 !HISTORY 2004-04-22 [PTadmin] Official Update 2004-02
|
||||||
|
0 !HISTORY 2007-06-24 [PTadmin] Header formatted for Contributor Agreement
|
||||||
|
0 !HISTORY 2008-07-01 [PTadmin] Official Update 2008-01
|
||||||
|
0 !HISTORY 2012-02-16 [Philo] Changed to CCW
|
||||||
|
0 !HISTORY 2012-03-30 [PTadmin] Official Update 2012-01
|
||||||
|
0 !HISTORY 2018-02-25 [MagFors] Corrected and added cond-lines
|
||||||
|
0 !HISTORY 2019-06-28 [PTadmin] Official Update 2019-01
|
||||||
|
0 !HISTORY 2020-06-28 [PTadmin] Official Update 2020-01
|
||||||
|
|
||||||
|
|
||||||
|
2 24 6 0 0 5.6145 0 1.9397
|
||||||
|
2 24 1.9387 0 5.6145 0 0 6
|
||||||
|
2 24 5.6145 -4 1.9397 5.6145 0 1.9397
|
||||||
|
2 24 6 -4 0 5.6145 -4 1.9397
|
||||||
|
2 24 5.6145 -4 1.9397 4.142 -4 4.142
|
||||||
|
2 24 4.142 -4 4.142 1.9397 -4 5.6145
|
||||||
|
2 24 1.9397 -4 5.6145 0 -4 6
|
||||||
|
2 24 1.9397 -4 5.6145 1.9387 0 5.6145
|
||||||
|
|
||||||
|
5 24 4.142 -4 4.142 4.142 0 4.142 1.9397 -4 5.6145 5.6145 -4 1.9397
|
||||||
|
5 24 6 -4 0 6 0 0 5.5434 -4 -2.2962 5.6145 -4 1.9397
|
||||||
|
5 24 0 -4 6 0 0 6 1.9397 -4 5.6145 -2.2962 -4 5.5434
|
||||||
|
|
||||||
|
1 16 0 -4 0 0 0 -6 0 4 0 6 0 0 3-4cyli.dat
|
||||||
|
1 16 0 0 0 0 0 -6 0 1 0 6 0 0 3-4edge.dat
|
||||||
|
1 16 0 -4 0 0 0 -6 0 1 0 6 0 0 3-4edge.dat
|
||||||
|
1 16 0 -4 0 0 0 -6 0 1 0 6 0 0 3-4disc.dat
|
||||||
|
3 16 6 -4 0 5.6145 -4 1.9397 0 -4 0
|
||||||
|
3 16 5.6145 -4 1.9397 4.142 -4 4.142 0 -4 0
|
||||||
|
3 16 4.142 -4 4.142 1.9397 -4 5.6145 0 -4 0
|
||||||
|
3 16 1.9397 -4 5.6145 0 -4 6 0 -4 0
|
||||||
|
4 16 6 0 0 5.6145 0 1.9397 5.6145 -4 1.9397 6 -4 0
|
||||||
|
4 16 5.6145 0 1.9397 4.142 0 4.142 4.142 -4 4.142 5.6145 -4 1.9397
|
||||||
|
4 16 4.142 0 4.142 1.9387 0 5.6145 1.9397 -4 5.6145 4.142 -4 4.142
|
||||||
|
4 16 1.9387 0 5.6145 0 0 6 0 -4 6 1.9397 -4 5.6145
|
||||||
@@ -0,0 +1,24 @@
|
|||||||
|
0 Stud Open without Base Edges
|
||||||
|
0 Name: stud2a.dat
|
||||||
|
0 Author: James Jessiman
|
||||||
|
0 !LDRAW_ORG Primitive UPDATE 2009-02
|
||||||
|
0 !LICENSE Licensed under CC BY 4.0 : see CAreadme.txt
|
||||||
|
|
||||||
|
0 BFC CERTIFY CCW
|
||||||
|
|
||||||
|
0 !HISTORY 1999-07-05 [PTadmin] Official Update 1999-05
|
||||||
|
0 !HISTORY 2002-04-04 [sbliss] Modified for BFC compliance
|
||||||
|
0 !HISTORY 2002-04-25 [PTadmin] Official Update 2002-02
|
||||||
|
0 !HISTORY 2007-06-24 [PTadmin] Header formatted for Contributor Agreement
|
||||||
|
0 !HISTORY 2008-07-01 [PTadmin] Official Update 2008-01
|
||||||
|
0 !HISTORY 2009-06-21 [cwdee] Update ring references to 4-4ring
|
||||||
|
0 !HISTORY 2009-09-03 [PTadmin] Official Update 2009-02
|
||||||
|
|
||||||
|
|
||||||
|
1 16 0 -4 0 4 0 0 0 1 0 0 0 4 4-4edge.dat
|
||||||
|
1 16 0 -4 0 6 0 0 0 1 0 0 0 6 4-4edge.dat
|
||||||
|
0 BFC INVERTNEXT
|
||||||
|
1 16 0 -4 0 4 0 0 0 4 0 0 0 4 4-4cyli.dat
|
||||||
|
1 16 0 -4 0 6 0 0 0 4 0 0 0 6 4-4cyli.dat
|
||||||
|
1 16 0 -4 0 2 0 0 0 1 0 0 0 2 4-4ring2.dat
|
||||||
|
0
|
||||||
@@ -0,0 +1,20 @@
|
|||||||
|
0 Stud Tube Solid
|
||||||
|
0 Name: stud3.dat
|
||||||
|
0 Author: James Jessiman
|
||||||
|
0 !LDRAW_ORG Primitive UPDATE 2012-01
|
||||||
|
0 !LICENSE Licensed under CC BY 4.0 : see CAreadme.txt
|
||||||
|
|
||||||
|
0 BFC CERTIFY CCW
|
||||||
|
|
||||||
|
0 !HISTORY 2002-04-04 [sbliss] Modified for BFC compliance
|
||||||
|
0 !HISTORY 2002-04-25 [PTadmin] Official Update 2002-02
|
||||||
|
0 !HISTORY 2007-06-24 [PTadmin] Header formatted for Contributor Agreement
|
||||||
|
0 !HISTORY 2008-07-01 [PTadmin] Official Update 2008-01
|
||||||
|
0 !HISTORY 2012-02-16 [Philo] Changed to CCW
|
||||||
|
0 !HISTORY 2012-03-30 [PTadmin] Official Update 2012-01
|
||||||
|
|
||||||
|
|
||||||
|
1 16 0 -4 0 4 0 0 0 1 0 0 0 4 4-4edge.dat
|
||||||
|
1 16 0 0 0 4 0 0 0 1 0 0 0 4 4-4edge.dat
|
||||||
|
1 16 0 -4 0 4 0 0 0 1 0 0 0 4 4-4disc.dat
|
||||||
|
1 16 0 -4 0 4 0 0 0 4 0 0 0 4 4-4cyli.dat
|
||||||
@@ -0,0 +1,19 @@
|
|||||||
|
0 Stud Tube Solid without Base Edges
|
||||||
|
0 Name: stud3a.dat
|
||||||
|
0 Author: James Jessiman
|
||||||
|
0 !LDRAW_ORG Primitive UPDATE 2003-02
|
||||||
|
0 !LICENSE Licensed under CC BY 4.0 : see CAreadme.txt
|
||||||
|
|
||||||
|
0 BFC CERTIFY CCW
|
||||||
|
|
||||||
|
0 !HISTORY 2002-08-31 [izanette] Modified with WINDZ for BFC compliance
|
||||||
|
0 !HISTORY 2003-08-01 [PTadmin] Official Update 2003-02
|
||||||
|
0 !HISTORY 2007-06-24 [PTadmin] Header formatted for Contributor Agreement
|
||||||
|
0 !HISTORY 2008-07-01 [PTadmin] Official Update 2008-01
|
||||||
|
|
||||||
|
|
||||||
|
1 16 0 -4 0 4 0 0 0 1 0 0 0 4 4-4edge.dat
|
||||||
|
1 16 0 -4 0 4 0 0 0 1 0 0 0 4 4-4disc.dat
|
||||||
|
1 16 0 -4 0 4 0 0 0 4 0 0 0 4 4-4cyli.dat
|
||||||
|
0
|
||||||
|
|
||||||
@@ -0,0 +1,26 @@
|
|||||||
|
0 Stud Tube Open
|
||||||
|
0 Name: stud4.dat
|
||||||
|
0 Author: James Jessiman
|
||||||
|
0 !LDRAW_ORG Primitive UPDATE 2009-02
|
||||||
|
0 !LICENSE Licensed under CC BY 4.0 : see CAreadme.txt
|
||||||
|
|
||||||
|
0 BFC CERTIFY CCW
|
||||||
|
|
||||||
|
0 !HISTORY 1999-07-05 [PTadmin] Official Update 1999-05
|
||||||
|
0 !HISTORY 2002-04-04 [sbliss] Modified for BFC compliance
|
||||||
|
0 !HISTORY 2002-04-25 [PTadmin] Official Update 2002-02
|
||||||
|
0 !HISTORY 2007-06-24 [PTadmin] Header formatted for Contributor Agreement
|
||||||
|
0 !HISTORY 2008-07-01 [PTadmin] Official Update 2008-01
|
||||||
|
0 !HISTORY 2009-06-21 [cwdee] Update ring references to 4-4ring
|
||||||
|
0 !HISTORY 2009-09-03 [PTadmin] Official Update 2009-02
|
||||||
|
|
||||||
|
|
||||||
|
1 16 0 -4 0 6 0 0 0 1 0 0 0 6 4-4edge.dat
|
||||||
|
1 16 0 -4 0 8 0 0 0 1 0 0 0 8 4-4edge.dat
|
||||||
|
1 16 0 0 0 6 0 0 0 1 0 0 0 6 4-4edge.dat
|
||||||
|
1 16 0 0 0 8 0 0 0 1 0 0 0 8 4-4edge.dat
|
||||||
|
0 BFC INVERTNEXT
|
||||||
|
1 16 0 -4 0 6 0 0 0 4 0 0 0 6 4-4cyli.dat
|
||||||
|
1 16 0 -4 0 8 0 0 0 4 0 0 0 8 4-4cyli.dat
|
||||||
|
1 16 0 -4 0 2 0 0 0 1 0 0 0 2 4-4ring3.dat
|
||||||
|
0
|
||||||
@@ -0,0 +1,24 @@
|
|||||||
|
0 Stud Tube Open without Base Edges
|
||||||
|
0 Name: stud4a.dat
|
||||||
|
0 Author: James Jessiman
|
||||||
|
0 !LDRAW_ORG Primitive UPDATE 2009-02
|
||||||
|
0 !LICENSE Licensed under CC BY 4.0 : see CAreadme.txt
|
||||||
|
|
||||||
|
0 BFC CERTIFY CCW
|
||||||
|
|
||||||
|
0 !HISTORY 1999-07-05 [PTadmin] Official Update 1999-05
|
||||||
|
0 !HISTORY 2002-04-04 [sbliss] Modified for BFC compliance
|
||||||
|
0 !HISTORY 2002-04-25 [PTadmin] Official Update 2002-02
|
||||||
|
0 !HISTORY 2007-06-24 [PTadmin] Header formatted for Contributor Agreement
|
||||||
|
0 !HISTORY 2008-07-01 [PTadmin] Official Update 2008-01
|
||||||
|
0 !HISTORY 2009-06-21 [cwdee] Update ring references to 4-4ring
|
||||||
|
0 !HISTORY 2009-09-03 [PTadmin] Official Update 2009-02
|
||||||
|
|
||||||
|
|
||||||
|
1 16 0 -4 0 6 0 0 0 1 0 0 0 6 4-4edge.dat
|
||||||
|
1 16 0 -4 0 8 0 0 0 1 0 0 0 8 4-4edge.dat
|
||||||
|
0 BFC INVERTNEXT
|
||||||
|
1 16 0 -4 0 6 0 0 0 4 0 0 0 6 4-4cyli.dat
|
||||||
|
1 16 0 -4 0 8 0 0 0 4 0 0 0 8 4-4cyli.dat
|
||||||
|
1 16 0 -4 0 2 0 0 0 1 0 0 0 2 4-4ring3.dat
|
||||||
|
0
|
||||||
@@ -0,0 +1,18 @@
|
|||||||
|
0 Stud Tube Open without Outer Cylinder and Top Surface
|
||||||
|
0 Name: stud4od.dat
|
||||||
|
0 Author: Philippe Hurbain [Philo]
|
||||||
|
0 !LDRAW_ORG Primitive UPDATE 2013-02
|
||||||
|
0 !LICENSE Licensed under CC BY 4.0 : see CAreadme.txt
|
||||||
|
|
||||||
|
0 !HELP This stud is a "antistud" to be used like a underside stud,
|
||||||
|
0 !HELP but without the outer cylinder.
|
||||||
|
0 !HELP 1 47 0 0 0 1 0 0 0 1 0 0 0 1 stud4.dat
|
||||||
|
|
||||||
|
0 BFC CERTIFY CCW
|
||||||
|
|
||||||
|
0 !HISTORY 2013-12-23 [PTadmin] Official Update 2013-02
|
||||||
|
|
||||||
|
|
||||||
|
1 16 0 -4 0 2 0 0 0 1 0 0 0 2 4-4ring3.dat
|
||||||
|
0 BFC INVERTNEXT
|
||||||
|
1 16 0 0 0 -6 0 0 0 -4 0 0 0 6 4-4cylo.dat
|
||||||
@@ -0,0 +1,13 @@
|
|||||||
|
0 Stud Group 1 x 2
|
||||||
|
0 Name: stug-1x2.dat
|
||||||
|
0 Author: Steffen [Steffen]
|
||||||
|
0 !LDRAW_ORG Primitive UPDATE 2011-01
|
||||||
|
0 !LICENSE Licensed under CC BY 4.0 : see CAreadme.txt
|
||||||
|
|
||||||
|
0 BFC CERTIFY CCW
|
||||||
|
|
||||||
|
0 !HISTORY 2011-07-25 [PTadmin] Official Update 2011-01
|
||||||
|
|
||||||
|
|
||||||
|
1 16 -10 0 0 1 0 0 0 1 0 0 0 1 stud.dat
|
||||||
|
1 16 10 0 0 1 0 0 0 1 0 0 0 1 stud.dat
|
||||||
@@ -0,0 +1,15 @@
|
|||||||
|
0 Stud Group 1 x 4
|
||||||
|
0 Name: stug-1x4.dat
|
||||||
|
0 Author: Steffen [Steffen]
|
||||||
|
0 !LDRAW_ORG Primitive UPDATE 2011-01
|
||||||
|
0 !LICENSE Licensed under CC BY 4.0 : see CAreadme.txt
|
||||||
|
|
||||||
|
0 BFC CERTIFY CCW
|
||||||
|
|
||||||
|
0 !HISTORY 2011-07-25 [PTadmin] Official Update 2011-01
|
||||||
|
|
||||||
|
|
||||||
|
1 16 -30 0 0 1 0 0 0 1 0 0 0 1 stud.dat
|
||||||
|
1 16 -10 0 0 1 0 0 0 1 0 0 0 1 stud.dat
|
||||||
|
1 16 10 0 0 1 0 0 0 1 0 0 0 1 stud.dat
|
||||||
|
1 16 30 0 0 1 0 0 0 1 0 0 0 1 stud.dat
|
||||||
@@ -0,0 +1,21 @@
|
|||||||
|
0 Stud Group 2 x 2
|
||||||
|
0 Name: stug-2x2.dat
|
||||||
|
0 Author: Steffen [Steffen]
|
||||||
|
0 !LDRAW_ORG Primitive UPDATE 2012-01
|
||||||
|
0 !LICENSE Licensed under CC BY 4.0 : see CAreadme.txt
|
||||||
|
|
||||||
|
0 BFC CERTIFY CCW
|
||||||
|
|
||||||
|
0 !HISTORY 2005-12-28 [PTadmin] Official Update 2005-01
|
||||||
|
0 !HISTORY 2007-05-04 [PTadmin] Header formatted for Contributor Agreement
|
||||||
|
0 !HISTORY 2008-07-01 [PTadmin] Official Update 2008-01
|
||||||
|
0 !HISTORY 2011-07-01 [PTadmin] Renamed from stug2
|
||||||
|
0 !HISTORY 2011-07-25 [PTadmin] Official Update 2011-01
|
||||||
|
0 !HISTORY 2012-02-16 [Philo] Changed to CCW
|
||||||
|
0 !HISTORY 2012-03-30 [PTadmin] Official Update 2012-01
|
||||||
|
|
||||||
|
|
||||||
|
1 16 -10 0 -10 1 0 0 0 1 0 0 0 1 stud.dat
|
||||||
|
1 16 10 0 -10 1 0 0 0 1 0 0 0 1 stud.dat
|
||||||
|
1 16 -10 0 10 1 0 0 0 1 0 0 0 1 stud.dat
|
||||||
|
1 16 10 0 10 1 0 0 0 1 0 0 0 1 stud.dat
|
||||||
@@ -0,0 +1,22 @@
|
|||||||
|
0 Stud Group Truncated Laterally Curved 40D for Round 2 x 2 Parts
|
||||||
|
0 Name: stug10-2x2.dat
|
||||||
|
0 Author: Magnus Forsberg [MagFors]
|
||||||
|
0 !LDRAW_ORG Primitive UPDATE 2020-01
|
||||||
|
0 !LICENSE Licensed under CC BY 4.0 : see CAreadme.txt
|
||||||
|
|
||||||
|
0 BFC CERTIFY CCW
|
||||||
|
|
||||||
|
0 !HISTORY 2019-06-28 [PTadmin] Official Update 2019-01
|
||||||
|
0 !HISTORY 2020-06-28 [PTadmin] Official Update 2020-01
|
||||||
|
|
||||||
|
|
||||||
|
0 // activate next lines to add logos on studs
|
||||||
|
0 // 1 16 10 -4 10 1 0 0 0 1 0 0 0 1 logo5.dat
|
||||||
|
0 // 1 16 -10 -4 10 1 0 0 0 1 0 0 0 1 logo5.dat
|
||||||
|
0 // 1 16 -10 -4 -10 1 0 0 0 1 0 0 0 1 logo5.dat
|
||||||
|
0 // 1 16 10 -4 -10 1 0 0 0 1 0 0 0 1 logo5.dat
|
||||||
|
|
||||||
|
1 16 10 0 10 1 0 0 0 1 0 0 0 1 stud10.dat
|
||||||
|
1 16 -10 0 10 0 0 -1 0 1 0 1 0 0 stud10.dat
|
||||||
|
1 16 10 0 -10 0 0 1 0 1 0 -1 0 0 stud10.dat
|
||||||
|
1 16 -10 0 -10 -1 0 0 0 1 0 0 0 -1 stud10.dat
|
||||||
@@ -0,0 +1,14 @@
|
|||||||
|
0 Stud Tube Solid Group 1 x 3
|
||||||
|
0 Name: stug3-1x3.dat
|
||||||
|
0 Author: Steffen [Steffen]
|
||||||
|
0 !LDRAW_ORG Primitive UPDATE 2012-02
|
||||||
|
0 !LICENSE Licensed under CC BY 4.0 : see CAreadme.txt
|
||||||
|
|
||||||
|
0 BFC CERTIFY CCW
|
||||||
|
|
||||||
|
0 !HISTORY 2012-08-09 [PTadmin] Official Update 2012-02
|
||||||
|
|
||||||
|
|
||||||
|
1 16 -20 0 0 1 0 0 0 1 0 0 0 1 stud3.dat
|
||||||
|
1 16 0 0 0 1 0 0 0 1 0 0 0 1 stud3.dat
|
||||||
|
1 16 20 0 0 1 0 0 0 1 0 0 0 1 stud3.dat
|
||||||
+98
-32
@@ -2,20 +2,25 @@
|
|||||||
/* eslint-disable no-unused-vars */
|
/* eslint-disable no-unused-vars */
|
||||||
/* eslint-disable react/prop-types */
|
/* eslint-disable react/prop-types */
|
||||||
/* eslint-disable react/display-name */
|
/* eslint-disable react/display-name */
|
||||||
import React, { useMemo, useEffect, useRef } from "react";
|
import React, { useMemo, useEffect, useRef, useState } from "react";
|
||||||
import {
|
import {
|
||||||
CSSToHex,
|
CSSToHex,
|
||||||
getMeasurementsFromDimensions,
|
getMeasurementsFromDimensions,
|
||||||
base,
|
base,
|
||||||
createGeometry,
|
createGeometry,
|
||||||
|
LDRAW_PARTS,
|
||||||
|
partFootprint,
|
||||||
|
buildPartObject,
|
||||||
} from "../../utils";
|
} from "../../utils";
|
||||||
import { Vector3, Box3 } from "three";
|
import { Vector3, Box3, Color } from "three";
|
||||||
import { motion } from "framer-motion-3d";
|
import { motion } from "framer-motion-3d";
|
||||||
|
import { useStore } from "../../store";
|
||||||
|
|
||||||
export const Brick = ({
|
export const Brick = ({
|
||||||
intersect,
|
intersect,
|
||||||
color = "#ff0000",
|
color = "#ff0000",
|
||||||
dimensions = { x: 1, z: 1 },
|
dimensions,
|
||||||
|
type,
|
||||||
rotation = 0,
|
rotation = 0,
|
||||||
translation = { x: 0, z: 0 },
|
translation = { x: 0, z: 0 },
|
||||||
bricksBoundBox = { current: [] },
|
bricksBoundBox = { current: [] },
|
||||||
@@ -25,17 +30,60 @@ export const Brick = ({
|
|||||||
}) => {
|
}) => {
|
||||||
const brickRef = useRef();
|
const brickRef = useRef();
|
||||||
|
|
||||||
const { height, width, depth } = getMeasurementsFromDimensions(dimensions);
|
// LDraw pieces carry a `type` key into LDRAW_PARTS; their footprint drives the
|
||||||
|
// exact same grid-placement maths as the parametric box, so positioning,
|
||||||
|
// collision and outline stay consistent. Non-LDraw bricks keep `dimensions`.
|
||||||
|
const isLdraw = !!type && !!LDRAW_PARTS[type];
|
||||||
|
const dims = useMemo(
|
||||||
|
() => dimensions || (isLdraw ? partFootprint(type) : { x: 1, z: 1 }),
|
||||||
|
[dimensions, isLdraw, type]
|
||||||
|
);
|
||||||
|
|
||||||
|
const { height, width, depth } = getMeasurementsFromDimensions(dims);
|
||||||
|
|
||||||
const brickGeometry = useMemo(() => {
|
const brickGeometry = useMemo(() => {
|
||||||
return createGeometry({ width, height, depth, dimensions });
|
if (isLdraw) return null;
|
||||||
}, [width, height, depth, dimensions]);
|
return createGeometry({ width, height, depth, dimensions: dims });
|
||||||
|
}, [isLdraw, width, height, depth, dims]);
|
||||||
|
|
||||||
|
// Lazily build (cached) the LDraw object for this type + colour.
|
||||||
|
const [ldrawObject, setLdrawObject] = useState(null);
|
||||||
|
useEffect(() => {
|
||||||
|
if (!isLdraw) return;
|
||||||
|
let alive = true;
|
||||||
|
buildPartObject(type, color).then((obj) => {
|
||||||
|
if (alive) setLdrawObject(obj);
|
||||||
|
});
|
||||||
|
return () => {
|
||||||
|
alive = false;
|
||||||
|
};
|
||||||
|
}, [isLdraw, type, color]);
|
||||||
|
|
||||||
|
// Highlight LDraw pieces when selected in Edit mode (emissive glow).
|
||||||
|
const isSelected = useStore((state) =>
|
||||||
|
state.selectedBricks.some((s) => s.userData && s.userData.uID === uID)
|
||||||
|
);
|
||||||
|
useEffect(() => {
|
||||||
|
if (!ldrawObject) return;
|
||||||
|
const glow = isSelected ? new Color("#55aaff") : new Color("#000000");
|
||||||
|
ldrawObject.traverse((obj) => {
|
||||||
|
if (obj.isMesh && obj.material && obj.material.emissive) {
|
||||||
|
const mats = Array.isArray(obj.material)
|
||||||
|
? obj.material
|
||||||
|
: [obj.material];
|
||||||
|
mats.forEach((m) => {
|
||||||
|
if (m.emissive) {
|
||||||
|
m.emissive.copy(glow);
|
||||||
|
m.emissiveIntensity = isSelected ? 0.6 : 0;
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}, [isSelected, ldrawObject]);
|
||||||
|
|
||||||
const position = useMemo(() => {
|
const position = useMemo(() => {
|
||||||
const evenWidth =
|
const evenWidth = rotation === 0 ? dims.x % 2 === 0 : dims.z % 2 === 0;
|
||||||
rotation === 0 ? dimensions.x % 2 === 0 : dimensions.z % 2 === 0;
|
const evenDepth = rotation === 0 ? dims.z % 2 === 0 : dims.x % 2 === 0;
|
||||||
const evenDepth =
|
|
||||||
rotation === 0 ? dimensions.z % 2 === 0 : dimensions.x % 2 === 0;
|
|
||||||
|
|
||||||
return new Vector3()
|
return new Vector3()
|
||||||
.copy(intersect.point)
|
.copy(intersect.point)
|
||||||
@@ -50,7 +98,7 @@ export const Brick = ({
|
|||||||
evenDepth ? base : base / 2
|
evenDepth ? base : base / 2
|
||||||
)
|
)
|
||||||
);
|
);
|
||||||
}, [intersect, dimensions.x, dimensions.z, height, rotation]);
|
}, [intersect, dims.x, dims.z, height, rotation]);
|
||||||
|
|
||||||
useEffect(() => {
|
useEffect(() => {
|
||||||
const brickBoundingBox = new Box3().setFromObject(brickRef.current);
|
const brickBoundingBox = new Box3().setFromObject(brickRef.current);
|
||||||
@@ -67,11 +115,11 @@ export const Brick = ({
|
|||||||
}
|
}
|
||||||
bricksBoundBox.current = newA;
|
bricksBoundBox.current = newA;
|
||||||
};
|
};
|
||||||
}, [uID, bricksBoundBox]);
|
}, [uID, bricksBoundBox, ldrawObject]);
|
||||||
|
|
||||||
const compansate = {
|
const compansate = {
|
||||||
x: dimensions.x % 2 === 0 ? dimensions.x / 2 : (dimensions.x - 1) / 2,
|
x: dims.x % 2 === 0 ? dims.x / 2 : (dims.x - 1) / 2,
|
||||||
z: dimensions.z % 2 === 0 ? dimensions.z / 2 : (dimensions.z - 1) / 2,
|
z: dims.z % 2 === 0 ? dims.z / 2 : (dims.z - 1) / 2,
|
||||||
};
|
};
|
||||||
|
|
||||||
const offset = {
|
const offset = {
|
||||||
@@ -85,8 +133,22 @@ export const Brick = ({
|
|||||||
: Math.min(translation.z, compansate.z),
|
: Math.min(translation.z, compansate.z),
|
||||||
};
|
};
|
||||||
|
|
||||||
|
// userData mirrors the brick's serialisable data so Edit-mode tooling
|
||||||
|
// (Select / outline / color / delete) works for LDraw pieces too.
|
||||||
|
const userData = {
|
||||||
|
uID,
|
||||||
|
dimensions: dims,
|
||||||
|
type: type || `${dims.x}-${dims.z}`,
|
||||||
|
ldrawType: isLdraw ? type : undefined,
|
||||||
|
offset,
|
||||||
|
width,
|
||||||
|
depth,
|
||||||
|
position,
|
||||||
|
rotation,
|
||||||
|
translation,
|
||||||
|
};
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<>
|
|
||||||
<motion.group
|
<motion.group
|
||||||
ref={brickRef}
|
ref={brickRef}
|
||||||
rotation={[0, rotation, 0]}
|
rotation={[0, rotation, 0]}
|
||||||
@@ -94,28 +156,32 @@ export const Brick = ({
|
|||||||
initial={{ opacity: 0, scale: 0.8 }}
|
initial={{ opacity: 0, scale: 0.8 }}
|
||||||
animate={{ opacity: 1, scale: 1 }}
|
animate={{ opacity: 1, scale: 1 }}
|
||||||
transition={{ type: "spring", stiffness: 250, duration: 2 }}
|
transition={{ type: "spring", stiffness: 250, duration: 2 }}
|
||||||
userData={{
|
userData={{ uID }}
|
||||||
uID,
|
|
||||||
}}
|
|
||||||
>
|
>
|
||||||
|
{isLdraw ? (
|
||||||
|
// The LDraw holder is footprint-centred on X/Z and base-aligned on Y,
|
||||||
|
// so we drop it by height/2 to sit it on the grid like the box brick.
|
||||||
|
<group
|
||||||
|
userData={userData}
|
||||||
|
position={[
|
||||||
|
(offset.x * width) / dims.x,
|
||||||
|
-height / 2,
|
||||||
|
(offset.z * depth) / dims.z,
|
||||||
|
]}
|
||||||
|
onClick={onClick}
|
||||||
|
onPointerMove={mouseMove}
|
||||||
|
>
|
||||||
|
{ldrawObject && <primitive object={ldrawObject} />}
|
||||||
|
</group>
|
||||||
|
) : (
|
||||||
<mesh
|
<mesh
|
||||||
castShadow
|
castShadow
|
||||||
receiveShadow
|
receiveShadow
|
||||||
userData={{
|
userData={userData}
|
||||||
uID,
|
|
||||||
dimensions,
|
|
||||||
offset,
|
|
||||||
width,
|
|
||||||
depth,
|
|
||||||
type: `${dimensions.x}-${dimensions.z}`,
|
|
||||||
position,
|
|
||||||
rotation,
|
|
||||||
translation,
|
|
||||||
}}
|
|
||||||
position={[
|
position={[
|
||||||
(offset.x * width) / dimensions.x,
|
(offset.x * width) / dims.x,
|
||||||
0.5,
|
0.5,
|
||||||
(offset.z * depth) / dimensions.z,
|
(offset.z * depth) / dims.z,
|
||||||
]}
|
]}
|
||||||
onClick={onClick}
|
onClick={onClick}
|
||||||
geometry={brickGeometry}
|
geometry={brickGeometry}
|
||||||
@@ -128,7 +194,7 @@ export const Brick = ({
|
|||||||
roughness={0.5}
|
roughness={0.5}
|
||||||
/>
|
/>
|
||||||
</mesh>
|
</mesh>
|
||||||
|
)}
|
||||||
</motion.group>
|
</motion.group>
|
||||||
</>
|
|
||||||
);
|
);
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -9,6 +9,7 @@ import {
|
|||||||
getMeasurementsFromDimensions,
|
getMeasurementsFromDimensions,
|
||||||
knobSize,
|
knobSize,
|
||||||
outlineWidth,
|
outlineWidth,
|
||||||
|
LDRAW_PARTS,
|
||||||
} from "../../utils";
|
} from "../../utils";
|
||||||
import { BackSide, Object3D } from "three";
|
import { BackSide, Object3D } from "three";
|
||||||
import { useStore } from "../../store";
|
import { useStore } from "../../store";
|
||||||
@@ -92,6 +93,9 @@ export const BrickOutline = () => {
|
|||||||
|
|
||||||
for (let i = 0; i < selected.length; i++) {
|
for (let i = 0; i < selected.length; i++) {
|
||||||
const currentSelected = selected[i];
|
const currentSelected = selected[i];
|
||||||
|
// LDraw pieces are highlighted via their own emissive tint, not the
|
||||||
|
// box-stud wireframe outline (whose maths only fit parametric bricks).
|
||||||
|
if (currentSelected.ldrawType) continue;
|
||||||
if (Object.keys(currentSelected).length > 0) {
|
if (Object.keys(currentSelected).length > 0) {
|
||||||
meshesAccrodingToType[currentSelected.type] = meshesAccrodingToType[
|
meshesAccrodingToType[currentSelected.type] = meshesAccrodingToType[
|
||||||
currentSelected.type
|
currentSelected.type
|
||||||
|
|||||||
@@ -16,9 +16,12 @@ export const ChangeColor = ({ color }) => {
|
|||||||
|
|
||||||
const deferredColor = useDeferredValue(color);
|
const deferredColor = useDeferredValue(color);
|
||||||
|
|
||||||
|
const recordHistory = useStore((state) => state.recordHistory);
|
||||||
|
|
||||||
useEffect(() => {
|
useEffect(() => {
|
||||||
if (selected.length < 1 || prevColor.current === deferredColor) return;
|
if (selected.length < 1 || prevColor.current === deferredColor) return;
|
||||||
|
|
||||||
|
recordHistory();
|
||||||
setBricks((bricks) => {
|
setBricks((bricks) => {
|
||||||
const updatedBricks = [];
|
const updatedBricks = [];
|
||||||
|
|
||||||
@@ -41,7 +44,7 @@ export const ChangeColor = ({ color }) => {
|
|||||||
return () => {
|
return () => {
|
||||||
prevColor.current = deferredColor;
|
prevColor.current = deferredColor;
|
||||||
};
|
};
|
||||||
}, [deferredColor, selected, setBricks]);
|
}, [deferredColor, selected, setBricks, recordHistory]);
|
||||||
|
|
||||||
return null;
|
return null;
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -11,12 +11,14 @@ import { DialogBox } from "../UI";
|
|||||||
import { ModeToggleBar } from "../UI/ModeToggleBar";
|
import { ModeToggleBar } from "../UI/ModeToggleBar";
|
||||||
import { Panel } from "../UI/Panel";
|
import { Panel } from "../UI/Panel";
|
||||||
import { BottomBar } from "../UI/BottomBar";
|
import { BottomBar } from "../UI/BottomBar";
|
||||||
|
import { PartsBar } from "../UI/PartsBar";
|
||||||
|
|
||||||
const UI = () => {
|
const UI = () => {
|
||||||
return (
|
return (
|
||||||
<>
|
<>
|
||||||
<DialogBox />
|
<DialogBox />
|
||||||
<ModeToggleBar />
|
<ModeToggleBar />
|
||||||
|
<PartsBar />
|
||||||
<Panel />
|
<Panel />
|
||||||
<BottomBar />
|
<BottomBar />
|
||||||
</>
|
</>
|
||||||
|
|||||||
@@ -44,7 +44,6 @@ export const Others = () => {
|
|||||||
return (
|
return (
|
||||||
<>
|
<>
|
||||||
{others.map((user) => {
|
{others.map((user) => {
|
||||||
console.log(user);
|
|
||||||
return user.presence?.self ? (
|
return user.presence?.self ? (
|
||||||
<Other
|
<Other
|
||||||
key={user.presence.self.id}
|
key={user.presence.self.id}
|
||||||
|
|||||||
@@ -18,6 +18,8 @@ import {
|
|||||||
useAnchorShorcuts,
|
useAnchorShorcuts,
|
||||||
minWorkSpaceSize,
|
minWorkSpaceSize,
|
||||||
EDIT_MODE,
|
EDIT_MODE,
|
||||||
|
partFootprint,
|
||||||
|
preloadAllParts,
|
||||||
} from "../../utils";
|
} from "../../utils";
|
||||||
import { ChangeColor } from "./ChangeColor";
|
import { ChangeColor } from "./ChangeColor";
|
||||||
import { useStore } from "../../store";
|
import { useStore } from "../../store";
|
||||||
@@ -41,18 +43,28 @@ export const Scene = () => {
|
|||||||
|
|
||||||
const isEditMode = mode === EDIT_MODE;
|
const isEditMode = mode === EDIT_MODE;
|
||||||
|
|
||||||
const width = useStore((state) => state.width);
|
|
||||||
const depth = useStore((state) => state.depth);
|
|
||||||
const anchorX = useStore((state) => state.anchorX);
|
const anchorX = useStore((state) => state.anchorX);
|
||||||
const anchorZ = useStore((state) => state.anchorZ);
|
const anchorZ = useStore((state) => state.anchorZ);
|
||||||
const rotate = useStore((state) => state.rotate);
|
const rotate = useStore((state) => state.rotate);
|
||||||
const color = useStore((state) => state.color);
|
const color = useStore((state) => state.color);
|
||||||
|
const partType = useStore((state) => state.partType);
|
||||||
|
const recordHistory = useStore((state) => state.recordHistory);
|
||||||
|
|
||||||
|
// The active LDraw part's footprint drives placement, cursor and collision —
|
||||||
|
// keeping the exact same grid maths the parametric brick used.
|
||||||
|
const footprint = partFootprint(partType);
|
||||||
|
const width = footprint.x;
|
||||||
|
const depth = footprint.z;
|
||||||
|
|
||||||
const room = useStore((state) => state.liveblocks.room);
|
const room = useStore((state) => state.liveblocks.room);
|
||||||
const self = useStore((state) => state.self);
|
const self = useStore((state) => state.self);
|
||||||
|
|
||||||
useAnchorShorcuts();
|
useAnchorShorcuts();
|
||||||
|
|
||||||
|
useEffect(() => {
|
||||||
|
preloadAllParts();
|
||||||
|
}, []);
|
||||||
|
|
||||||
const addBrick = (e) => {
|
const addBrick = (e) => {
|
||||||
e.stopPropagation();
|
e.stopPropagation();
|
||||||
|
|
||||||
@@ -102,12 +114,14 @@ export const Scene = () => {
|
|||||||
const brickData = {
|
const brickData = {
|
||||||
intersect: { point: e.point, face: e.face },
|
intersect: { point: e.point, face: e.face },
|
||||||
uID: uID(),
|
uID: uID(),
|
||||||
|
type: partType,
|
||||||
dimensions: { x: width, z: depth },
|
dimensions: { x: width, z: depth },
|
||||||
rotation: rotate ? Math.PI / 2 : 0,
|
rotation: rotate ? Math.PI / 2 : 0,
|
||||||
color: color,
|
color: color,
|
||||||
translation: { x: anchorX, z: anchorZ },
|
translation: { x: anchorX, z: anchorZ },
|
||||||
};
|
};
|
||||||
|
|
||||||
|
recordHistory();
|
||||||
setBricks((prevBricks) => [...prevBricks, brickData]);
|
setBricks((prevBricks) => [...prevBricks, brickData]);
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
|
|||||||
@@ -29,16 +29,27 @@ export function Select({
|
|||||||
|
|
||||||
const setSelectedBricks = useStore((state) => state.setSelectedBricks);
|
const setSelectedBricks = useStore((state) => state.setSelectedBricks);
|
||||||
|
|
||||||
|
// A click can land on an inner mesh (LDraw pieces are multi-mesh groups), so
|
||||||
|
// walk up to the nearest ancestor that carries a brick `uID` in userData.
|
||||||
|
const resolveBrick = React.useCallback((object) => {
|
||||||
|
let node = object;
|
||||||
|
while (node) {
|
||||||
|
if (node.userData && node.userData.uID) return node;
|
||||||
|
node = node.parent;
|
||||||
|
}
|
||||||
|
return object;
|
||||||
|
}, []);
|
||||||
|
|
||||||
const onClick = React.useCallback(
|
const onClick = React.useCallback(
|
||||||
(e) => {
|
(e) => {
|
||||||
e.stopPropagation();
|
e.stopPropagation();
|
||||||
if (!enable) return;
|
if (!enable) return;
|
||||||
setSelectedBricks({
|
setSelectedBricks({
|
||||||
object: customFilter([e.object])[0],
|
object: customFilter([resolveBrick(e.object)])[0],
|
||||||
shift: multiple && e.shiftKey,
|
shift: multiple && e.shiftKey,
|
||||||
});
|
});
|
||||||
},
|
},
|
||||||
[enable, multiple]
|
[enable, multiple, resolveBrick]
|
||||||
);
|
);
|
||||||
|
|
||||||
React.useEffect(() => {
|
React.useEffect(() => {
|
||||||
@@ -162,10 +173,19 @@ export function Select({
|
|||||||
if (isDown) {
|
if (isDown) {
|
||||||
onSelectMove(event);
|
onSelectMove(event);
|
||||||
prepareRay(event, selBox.endPoint);
|
prepareRay(event, selBox.endPoint);
|
||||||
|
// Resolve inner LDraw meshes up to their brick group and dedupe by uID.
|
||||||
|
const seen = new Set();
|
||||||
const allSelected = selBox
|
const allSelected = selBox
|
||||||
.select()
|
.select()
|
||||||
.sort((o) => o.uuid)
|
.sort((o) => o.uuid)
|
||||||
.filter((o) => o.isMesh);
|
.filter((o) => o.isMesh)
|
||||||
|
.map((o) => resolveBrick(o))
|
||||||
|
.filter((o) => {
|
||||||
|
const id = o.userData && o.userData.uID;
|
||||||
|
if (!id || seen.has(id)) return false;
|
||||||
|
seen.add(id);
|
||||||
|
return true;
|
||||||
|
});
|
||||||
if (!shallow(allSelected, previous)) {
|
if (!shallow(allSelected, previous)) {
|
||||||
previous = allSelected;
|
previous = allSelected;
|
||||||
setSelectedBricks({ object: customFilter(allSelected) });
|
setSelectedBricks({ object: customFilter(allSelected) });
|
||||||
@@ -189,7 +209,16 @@ export function Select({
|
|||||||
document.removeEventListener("pointermove", pointerMove);
|
document.removeEventListener("pointermove", pointerMove);
|
||||||
document.removeEventListener("pointerup", pointerUp);
|
document.removeEventListener("pointerup", pointerUp);
|
||||||
};
|
};
|
||||||
}, [size.width, size.height, raycaster, camera, controls, gl, enable]);
|
}, [
|
||||||
|
size.width,
|
||||||
|
size.height,
|
||||||
|
raycaster,
|
||||||
|
camera,
|
||||||
|
controls,
|
||||||
|
gl,
|
||||||
|
enable,
|
||||||
|
resolveBrick,
|
||||||
|
]);
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<group
|
<group
|
||||||
|
|||||||
@@ -0,0 +1,73 @@
|
|||||||
|
import { useState } from "react";
|
||||||
|
import "./styles.css";
|
||||||
|
import { useStore } from "../../../store";
|
||||||
|
import {
|
||||||
|
LDRAW_PARTS,
|
||||||
|
PART_CATEGORIES,
|
||||||
|
LDRAW_COLORS,
|
||||||
|
} from "../../../utils";
|
||||||
|
|
||||||
|
// LeoCAD-style parts bin: a colour row + category tabs + the curated LDraw
|
||||||
|
// parts. The active part + active colour decide what gets placed in Create mode.
|
||||||
|
export const PartsBar = () => {
|
||||||
|
const partType = useStore((state) => state.partType);
|
||||||
|
const setPartType = useStore((state) => state.setPartType);
|
||||||
|
const color = useStore((state) => state.color);
|
||||||
|
const setColor = useStore((state) => state.setColor);
|
||||||
|
|
||||||
|
const [activeCat, setActiveCat] = useState(PART_CATEGORIES[0].id);
|
||||||
|
const category =
|
||||||
|
PART_CATEGORIES.find((c) => c.id === activeCat) || PART_CATEGORIES[0];
|
||||||
|
|
||||||
|
return (
|
||||||
|
<div className="PartsBar">
|
||||||
|
<div className="ColorRow">
|
||||||
|
{LDRAW_COLORS.map((c) => (
|
||||||
|
<button
|
||||||
|
key={c.code}
|
||||||
|
className={
|
||||||
|
"ColorSwatch" +
|
||||||
|
(color.toLowerCase() === c.hex.toLowerCase() ? " active" : "")
|
||||||
|
}
|
||||||
|
style={{ background: c.hex }}
|
||||||
|
title={c.name}
|
||||||
|
aria-label={c.name}
|
||||||
|
onClick={() => setColor(c.hex)}
|
||||||
|
/>
|
||||||
|
))}
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div className="CatTabs">
|
||||||
|
{PART_CATEGORIES.map((c) => (
|
||||||
|
<button
|
||||||
|
key={c.id}
|
||||||
|
className={"CatTab" + (c.id === activeCat ? " active" : "")}
|
||||||
|
onClick={() => setActiveCat(c.id)}
|
||||||
|
title={c.label}
|
||||||
|
>
|
||||||
|
<span className="CatIcon">{c.icon}</span>
|
||||||
|
<span className="CatLabel">{c.label}</span>
|
||||||
|
</button>
|
||||||
|
))}
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div className="PartGrid">
|
||||||
|
{category.keys.map((key) => {
|
||||||
|
const def = LDRAW_PARTS[key];
|
||||||
|
if (!def) return null;
|
||||||
|
return (
|
||||||
|
<button
|
||||||
|
key={key}
|
||||||
|
className={"PartCard" + (key === partType ? " active" : "")}
|
||||||
|
onClick={() => setPartType(key)}
|
||||||
|
title={def.label}
|
||||||
|
>
|
||||||
|
<span className="PartGlyph">{def.glyph}</span>
|
||||||
|
<span className="PartLabel">{def.label}</span>
|
||||||
|
</button>
|
||||||
|
);
|
||||||
|
})}
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
);
|
||||||
|
};
|
||||||
@@ -0,0 +1,131 @@
|
|||||||
|
/* LeoCAD-style parts bin, top-centred, kid-friendly. */
|
||||||
|
|
||||||
|
.PartsBar {
|
||||||
|
position: absolute;
|
||||||
|
top: 16px;
|
||||||
|
left: 50%;
|
||||||
|
transform: translateX(-50%);
|
||||||
|
z-index: 1000;
|
||||||
|
display: flex;
|
||||||
|
flex-direction: column;
|
||||||
|
gap: 8px;
|
||||||
|
padding: 10px 12px;
|
||||||
|
border-radius: 18px;
|
||||||
|
background: rgba(255, 255, 255, 0.96);
|
||||||
|
box-shadow: 0 10px 30px rgba(0, 0, 0, 0.3);
|
||||||
|
font-family: system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;
|
||||||
|
max-width: 92vw;
|
||||||
|
}
|
||||||
|
|
||||||
|
.ColorRow {
|
||||||
|
display: flex;
|
||||||
|
gap: 6px;
|
||||||
|
justify-content: center;
|
||||||
|
flex-wrap: wrap;
|
||||||
|
}
|
||||||
|
|
||||||
|
.ColorSwatch {
|
||||||
|
all: unset;
|
||||||
|
box-sizing: border-box;
|
||||||
|
width: 26px;
|
||||||
|
height: 26px;
|
||||||
|
border-radius: 50%;
|
||||||
|
cursor: pointer;
|
||||||
|
box-shadow: 0 0 0 2px transparent;
|
||||||
|
transition: transform 0.1s ease, box-shadow 0.1s ease;
|
||||||
|
}
|
||||||
|
|
||||||
|
.ColorSwatch:hover {
|
||||||
|
transform: scale(1.12);
|
||||||
|
}
|
||||||
|
|
||||||
|
.ColorSwatch.active {
|
||||||
|
box-shadow: 0 0 0 3px #1b1b2b;
|
||||||
|
transform: scale(1.16);
|
||||||
|
}
|
||||||
|
|
||||||
|
.CatTabs {
|
||||||
|
display: flex;
|
||||||
|
gap: 4px;
|
||||||
|
justify-content: center;
|
||||||
|
flex-wrap: wrap;
|
||||||
|
}
|
||||||
|
|
||||||
|
.CatTab {
|
||||||
|
all: unset;
|
||||||
|
box-sizing: border-box;
|
||||||
|
display: flex;
|
||||||
|
flex-direction: column;
|
||||||
|
align-items: center;
|
||||||
|
gap: 1px;
|
||||||
|
padding: 5px 9px;
|
||||||
|
border-radius: 12px;
|
||||||
|
cursor: pointer;
|
||||||
|
background: #eef0f6;
|
||||||
|
color: #4a4a5e;
|
||||||
|
transition: background 0.1s ease, color 0.1s ease;
|
||||||
|
}
|
||||||
|
|
||||||
|
.CatTab:hover {
|
||||||
|
background: #e2e5f0;
|
||||||
|
}
|
||||||
|
|
||||||
|
.CatTab.active {
|
||||||
|
background: #2b6cff;
|
||||||
|
color: #ffffff;
|
||||||
|
}
|
||||||
|
|
||||||
|
.CatIcon {
|
||||||
|
font-size: 1.2rem;
|
||||||
|
line-height: 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
.CatLabel {
|
||||||
|
font-size: 0.62rem;
|
||||||
|
font-weight: 700;
|
||||||
|
}
|
||||||
|
|
||||||
|
.PartGrid {
|
||||||
|
display: flex;
|
||||||
|
gap: 6px;
|
||||||
|
justify-content: center;
|
||||||
|
flex-wrap: wrap;
|
||||||
|
max-width: 520px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.PartCard {
|
||||||
|
all: unset;
|
||||||
|
box-sizing: border-box;
|
||||||
|
display: flex;
|
||||||
|
flex-direction: column;
|
||||||
|
align-items: center;
|
||||||
|
gap: 2px;
|
||||||
|
width: 64px;
|
||||||
|
padding: 8px 4px;
|
||||||
|
border-radius: 12px;
|
||||||
|
cursor: pointer;
|
||||||
|
background: #f6f7fb;
|
||||||
|
box-shadow: inset 0 0 0 2px transparent;
|
||||||
|
transition: transform 0.1s ease, box-shadow 0.1s ease;
|
||||||
|
}
|
||||||
|
|
||||||
|
.PartCard:hover {
|
||||||
|
transform: translateY(-2px);
|
||||||
|
}
|
||||||
|
|
||||||
|
.PartCard.active {
|
||||||
|
box-shadow: inset 0 0 0 3px #2b6cff;
|
||||||
|
background: #eaf1ff;
|
||||||
|
}
|
||||||
|
|
||||||
|
.PartGlyph {
|
||||||
|
font-size: 1.7rem;
|
||||||
|
line-height: 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
.PartLabel {
|
||||||
|
font-size: 0.6rem;
|
||||||
|
font-weight: 700;
|
||||||
|
color: #4a4a5e;
|
||||||
|
text-align: center;
|
||||||
|
}
|
||||||
@@ -1,3 +1,4 @@
|
|||||||
export * from "./helpers";
|
export * from "./helpers";
|
||||||
export * from "./constants";
|
export * from "./constants";
|
||||||
export * from "./hooks";
|
export * from "./hooks";
|
||||||
|
export * from "./ldraw";
|
||||||
|
|||||||
@@ -0,0 +1,212 @@
|
|||||||
|
/**
|
||||||
|
* ldraw.js — load real LEGO parts (LDraw .dat) as posable objects in the
|
||||||
|
* builder, LeoCAD-style. Pure data + a cached LDrawLoader.
|
||||||
|
*
|
||||||
|
* The curated part set, footprints, categories and colours come from the
|
||||||
|
* sovereign vendored closure under `public/ldraw/` (served at
|
||||||
|
* `<base>ldraw/` after build). The loader degrades gracefully: every public
|
||||||
|
* function returns null on failure so the builder never throws.
|
||||||
|
*/
|
||||||
|
import { LDrawLoader } from "three/examples/jsm/loaders/LDrawLoader.js";
|
||||||
|
import { Group, Box3, Vector3, Color } from "three";
|
||||||
|
import { base } from "./constants";
|
||||||
|
|
||||||
|
// ── LDraw scale constants ───────────────────────────────────────────────────
|
||||||
|
// LDraw units (LDU): 1 stud pitch = 20 LDU, a brick = 24 LDU tall, a plate =
|
||||||
|
// 8 LDU tall. LDraw uses a Y-down coordinate system. `base` (25) is one stud
|
||||||
|
// in world units, so LDU_SCALE maps a stud (20 LDU) onto exactly one cell.
|
||||||
|
export const LDU_PER_STUD = 20;
|
||||||
|
export const LDU_BRICK_H = 24;
|
||||||
|
export const LDU_PLATE_H = 8;
|
||||||
|
export const LDU_SCALE = base / LDU_PER_STUD; // 25 / 20 = 1.25
|
||||||
|
|
||||||
|
// Resolve the public path the LDraw closure is served from. With Vite
|
||||||
|
// `base: '/blocs-pro/'`, BASE_URL is '/blocs-pro/' in prod and '/' in dev.
|
||||||
|
function ldrawPath() {
|
||||||
|
const b =
|
||||||
|
(typeof import.meta !== "undefined" &&
|
||||||
|
import.meta.env &&
|
||||||
|
import.meta.env.BASE_URL) ||
|
||||||
|
"/";
|
||||||
|
return `${b.replace(/\/?$/, "/")}ldraw/`;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Curated kid-friendly part set (15 LDraw parts). Each entry:
|
||||||
|
* - file: path under public/ldraw/ passed to loader.load
|
||||||
|
* - w, d: footprint in studs (X, Z)
|
||||||
|
* - kind: category glyph hint
|
||||||
|
* - label: short French caption
|
||||||
|
* - glyph: emoji preview for the palette
|
||||||
|
* - category: category id (see PART_CATEGORIES)
|
||||||
|
*/
|
||||||
|
export const LDRAW_PARTS = {
|
||||||
|
// Briques
|
||||||
|
b2x4: { file: "parts/3001.dat", w: 2, d: 4, kind: "brick", label: "Brique 2×4", glyph: "🟥", category: "bricks" },
|
||||||
|
b2x2: { file: "parts/3003.dat", w: 2, d: 2, kind: "brick", label: "Brique 2×2", glyph: "🟧", category: "bricks" },
|
||||||
|
b1x2: { file: "parts/3004.dat", w: 1, d: 2, kind: "brick", label: "Brique 1×2", glyph: "🟨", category: "bricks" },
|
||||||
|
b1x1: { file: "parts/3005.dat", w: 1, d: 1, kind: "brick", label: "Brique 1×1", glyph: "🟩", category: "bricks" },
|
||||||
|
b1x4: { file: "parts/3010.dat", w: 1, d: 4, kind: "brick", label: "Brique 1×4", glyph: "🟦", category: "bricks" },
|
||||||
|
// Plaques (fines)
|
||||||
|
p2x4: { file: "parts/3020.dat", w: 2, d: 4, kind: "plate", label: "Plaque 2×4", glyph: "▭", category: "plates" },
|
||||||
|
p2x2: { file: "parts/3022.dat", w: 2, d: 2, kind: "plate", label: "Plaque 2×2", glyph: "◻", category: "plates" },
|
||||||
|
p1x2: { file: "parts/3023b.dat", w: 1, d: 2, kind: "plate", label: "Plaque 1×2", glyph: "▬", category: "plates" },
|
||||||
|
p1x1: { file: "parts/3024.dat", w: 1, d: 1, kind: "plate", label: "Plaque 1×1", glyph: "▪", category: "plates" },
|
||||||
|
// Tuiles (lisses)
|
||||||
|
t2x2: { file: "parts/3068b.dat", w: 2, d: 2, kind: "tile", label: "Tuile 2×2", glyph: "⬜", category: "tiles" },
|
||||||
|
t1x2: { file: "parts/3069b.dat", w: 1, d: 2, kind: "tile", label: "Tuile 1×2", glyph: "▭", category: "tiles" },
|
||||||
|
// Pentes
|
||||||
|
s2x1: { file: "parts/3040b.dat", w: 2, d: 1, kind: "slope", label: "Pente 2×1", glyph: "◢", category: "slopes" },
|
||||||
|
s2x2: { file: "parts/3039.dat", w: 2, d: 2, kind: "slope", label: "Pente 2×2", glyph: "◣", category: "slopes" },
|
||||||
|
// Ronds
|
||||||
|
r1x1: { file: "parts/3062b.dat", w: 1, d: 1, kind: "round", label: "Rond 1×1", glyph: "⚫", category: "round" },
|
||||||
|
r2x2: { file: "parts/3941.dat", w: 2, d: 2, kind: "round", label: "Rond 2×2", glyph: "⭕", category: "round" },
|
||||||
|
};
|
||||||
|
|
||||||
|
/** Default part type a new room starts with. */
|
||||||
|
export const DEFAULT_PART = "b2x4";
|
||||||
|
|
||||||
|
/** Parts grouped by category for the LeoCAD-style parts bin. */
|
||||||
|
export const PART_CATEGORIES = [
|
||||||
|
{ id: "bricks", label: "Briques", icon: "🧱", keys: ["b1x1", "b1x2", "b2x2", "b1x4", "b2x4"] },
|
||||||
|
{ id: "plates", label: "Plaques", icon: "▭", keys: ["p1x1", "p1x2", "p2x2", "p2x4"] },
|
||||||
|
{ id: "tiles", label: "Tuiles", icon: "⬜", keys: ["t1x2", "t2x2"] },
|
||||||
|
{ id: "slopes", label: "Pentes", icon: "◢", keys: ["s2x1", "s2x2"] },
|
||||||
|
{ id: "round", label: "Ronds", icon: "⭕", keys: ["r1x1", "r2x2"] },
|
||||||
|
];
|
||||||
|
|
||||||
|
/** LDraw kid-friendly colour codes (hex) used as material overrides. */
|
||||||
|
export const LDRAW_COLORS = [
|
||||||
|
{ code: 4, hex: "#C91A09", name: "Rouge" },
|
||||||
|
{ code: 1, hex: "#0055BF", name: "Bleu" },
|
||||||
|
{ code: 2, hex: "#237841", name: "Vert" },
|
||||||
|
{ code: 14, hex: "#F2CD37", name: "Jaune" },
|
||||||
|
{ code: 22, hex: "#81007B", name: "Violet" },
|
||||||
|
{ code: 25, hex: "#FE8A18", name: "Orange" },
|
||||||
|
{ code: 15, hex: "#FFFFFF", name: "Blanc" },
|
||||||
|
{ code: 0, hex: "#05131D", name: "Noir" },
|
||||||
|
];
|
||||||
|
|
||||||
|
/** Footprint (in studs) of a part type, with a 1×1 fallback. */
|
||||||
|
export function partFootprint(type) {
|
||||||
|
const def = LDRAW_PARTS[type];
|
||||||
|
return def ? { x: def.w, z: def.d } : { x: 1, z: 1 };
|
||||||
|
}
|
||||||
|
|
||||||
|
// ── Cached loader + geometry templates ───────────────────────────────────────
|
||||||
|
let _loaderPromise = null; // Promise<LDrawLoader|null>
|
||||||
|
let _manifest = null;
|
||||||
|
const _templateCache = new Map(); // partKey -> Promise<Group|null> (shared template)
|
||||||
|
|
||||||
|
async function _getLoader() {
|
||||||
|
if (_loaderPromise) return _loaderPromise;
|
||||||
|
_loaderPromise = (async () => {
|
||||||
|
try {
|
||||||
|
const path = ldrawPath();
|
||||||
|
_manifest = await (await fetch(`${path}manifest.json`)).json();
|
||||||
|
const loader = new LDrawLoader();
|
||||||
|
// The loader ships a built-in conditional-line material default, so we
|
||||||
|
// don't need to inject one (it isn't a named export in this three build).
|
||||||
|
loader.setPath(path);
|
||||||
|
loader.setPartsLibraryPath(path);
|
||||||
|
if (_manifest && _manifest.fileMap) loader.setFileMap(_manifest.fileMap);
|
||||||
|
loader.smoothNormals = true;
|
||||||
|
return loader;
|
||||||
|
} catch {
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
})();
|
||||||
|
return _loaderPromise;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Load (and cache) the raw LDraw group template for a part key. The returned
|
||||||
|
* group is a SHARED template: callers must `.clone(true)` it. Null on failure.
|
||||||
|
* @returns {Promise<Group|null>}
|
||||||
|
*/
|
||||||
|
export function loadPartTemplate(partKey) {
|
||||||
|
if (_templateCache.has(partKey)) return _templateCache.get(partKey);
|
||||||
|
const promise = (async () => {
|
||||||
|
const def = LDRAW_PARTS[partKey];
|
||||||
|
if (!def) return null;
|
||||||
|
const loader = await _getLoader();
|
||||||
|
if (!loader) return null;
|
||||||
|
return await new Promise((res) => {
|
||||||
|
loader.load(
|
||||||
|
def.file,
|
||||||
|
(group) => res(group),
|
||||||
|
undefined,
|
||||||
|
() => res(null)
|
||||||
|
);
|
||||||
|
});
|
||||||
|
})();
|
||||||
|
_templateCache.set(partKey, promise);
|
||||||
|
return promise;
|
||||||
|
}
|
||||||
|
|
||||||
|
/** Eagerly warm the template cache for every curated part. */
|
||||||
|
export function preloadAllParts() {
|
||||||
|
for (const key of Object.keys(LDRAW_PARTS)) loadPartTemplate(key);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Build a ready-to-render Object3D for a part type, scaled to world units,
|
||||||
|
* flipped Y-up, footprint centred on the local origin in X/Z, and bottom-aligned
|
||||||
|
* so it sits on the group origin — matching the box brick's placement maths.
|
||||||
|
* The chosen colour is applied to surface materials (edges kept).
|
||||||
|
* @returns {Promise<Object3D|null>}
|
||||||
|
*/
|
||||||
|
export async function buildPartObject(partKey, colorHex) {
|
||||||
|
const template = await loadPartTemplate(partKey);
|
||||||
|
if (!template) return null;
|
||||||
|
|
||||||
|
const cloned = template.clone(true);
|
||||||
|
|
||||||
|
// LDraw is Y-down: flip to Y-up, then scale LDU -> world units.
|
||||||
|
const inner = new Group();
|
||||||
|
cloned.rotation.x = Math.PI;
|
||||||
|
cloned.scale.setScalar(LDU_SCALE);
|
||||||
|
inner.add(cloned);
|
||||||
|
|
||||||
|
// Centre the footprint on X/Z and rest the base on y=0 of the holder.
|
||||||
|
const box = new Box3().setFromObject(inner);
|
||||||
|
const center = box.getCenter(new Vector3());
|
||||||
|
inner.position.set(-center.x, -box.min.y, -center.z);
|
||||||
|
|
||||||
|
const holder = new Group();
|
||||||
|
holder.add(inner);
|
||||||
|
|
||||||
|
_tint(holder, colorHex);
|
||||||
|
holder.userData.isLdraw = true;
|
||||||
|
return holder;
|
||||||
|
}
|
||||||
|
|
||||||
|
/** Tint surface materials with the chosen colour; keep edges as-is. */
|
||||||
|
function _tint(root, colorHex) {
|
||||||
|
if (!colorHex) return;
|
||||||
|
const col = new Color(colorHex);
|
||||||
|
root.traverse((obj) => {
|
||||||
|
if (obj.isMesh && obj.material) {
|
||||||
|
const mats = Array.isArray(obj.material) ? obj.material : [obj.material];
|
||||||
|
const cloned = mats.map((m) => {
|
||||||
|
const nm = m.clone();
|
||||||
|
if (nm.color) nm.color.copy(col);
|
||||||
|
nm.roughness = 0.45;
|
||||||
|
nm.metalness = 0.05;
|
||||||
|
return nm;
|
||||||
|
});
|
||||||
|
obj.material = Array.isArray(obj.material) ? cloned : cloned[0];
|
||||||
|
} else if ((obj.isLineSegments || obj.isLine) && obj.material) {
|
||||||
|
const mats = Array.isArray(obj.material) ? obj.material : [obj.material];
|
||||||
|
const cloned = mats.map((m) => m.clone());
|
||||||
|
obj.material = Array.isArray(obj.material) ? cloned : cloned[0];
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
/** Clear caches (frees geometry refs). */
|
||||||
|
export function clearPartCache() {
|
||||||
|
_templateCache.clear();
|
||||||
|
_loaderPromise = null;
|
||||||
|
_manifest = null;
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user