mirror of
https://github.com/ToxicCrack/PrintABrick.git
synced 2025-05-15 20:00:08 -07:00
Cover commands with tests
This commit is contained in:
parent
709e069f02
commit
d94f15d1d3
@ -25,6 +25,7 @@
|
||||
<directory>src/*Bundle/Resources</directory>
|
||||
<directory>src/*Bundle/Api/Client</directory>
|
||||
<directory>src/*Bundle/DataFixtures</directory>
|
||||
<directory>src/*/Exception</directory>
|
||||
<directory>src/*/*Bundle/Resources</directory>
|
||||
<directory>src/*/Bundle/*Bundle/Resources</directory>
|
||||
</exclude>
|
||||
|
@ -15,7 +15,7 @@ class FormatTransformer
|
||||
public function bytesToSize($bytes, $precision = 2)
|
||||
{
|
||||
if ($bytes == 0) {
|
||||
return '0.00 B';
|
||||
return round(0, $precision).' B';
|
||||
}
|
||||
|
||||
$suffix = ['B', 'KB', 'MB', 'GB', 'TB', 'PB'];
|
||||
|
@ -9,6 +9,9 @@ use Symfony\Component\Console\Input\InputInterface;
|
||||
use Symfony\Component\Console\Input\InputOption;
|
||||
use Symfony\Component\Console\Output\OutputInterface;
|
||||
|
||||
/**
|
||||
* @codeCoverageIgnore
|
||||
*/
|
||||
class InitDataCommand extends ContainerAwareCommand
|
||||
{
|
||||
protected function configure()
|
||||
|
@ -48,12 +48,6 @@ class LoadLdrawCommand extends ContainerAwareCommand
|
||||
|
||||
protected function execute(InputInterface $input, OutputInterface $output)
|
||||
{
|
||||
if (!$this->lock()) {
|
||||
$output->writeln('The command is already running in another process.');
|
||||
|
||||
return 1;
|
||||
}
|
||||
|
||||
$this->modelLoader->setOutput($output);
|
||||
$this->modelLoader->setRewrite($input->getOption('update'));
|
||||
|
||||
@ -97,8 +91,6 @@ class LoadLdrawCommand extends ContainerAwareCommand
|
||||
$output->writeln(['Done with "'.$errors.'" errors.']);
|
||||
}
|
||||
|
||||
$this->release();
|
||||
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
|
@ -37,7 +37,6 @@ class LoadRebrickableDataCommand extends ContainerAwareCommand
|
||||
|
||||
protected function execute(InputInterface $input, OutputInterface $output)
|
||||
{
|
||||
$this->rebrickableLoader = $this->getContainer()->get('service.loader.rebrickable');
|
||||
$this->rebrickableLoader->setOutput($output);
|
||||
|
||||
try {
|
||||
|
@ -0,0 +1,16 @@
|
||||
<?php
|
||||
|
||||
namespace LoaderBundle\Exception\Loader;
|
||||
|
||||
use Symfony\Component\Form\Exception\LogicException;
|
||||
use Throwable;
|
||||
|
||||
class LoadingModelFailedException extends LogicException
|
||||
{
|
||||
public function __construct($file, $message = '', $code = 0, Throwable $previous = null)
|
||||
{
|
||||
$message = sprintf('Loading "%s" failed.', $file);
|
||||
|
||||
parent::__construct($message, $code, $previous);
|
||||
}
|
||||
}
|
@ -75,6 +75,9 @@ abstract class BaseLoader
|
||||
$this->progressBar->start();
|
||||
}
|
||||
|
||||
/**
|
||||
* @codeCoverageIgnore
|
||||
*/
|
||||
protected function progressCallback($notification_code, $severity, $message, $message_code, $bytes_transferred, $bytes_max)
|
||||
{
|
||||
switch ($notification_code) {
|
||||
|
@ -15,6 +15,8 @@ use League\Flysystem\Exception;
|
||||
use League\Flysystem\Filesystem;
|
||||
use LoaderBundle\Exception\ConvertingFailedException;
|
||||
use LoaderBundle\Exception\FileException;
|
||||
use LoaderBundle\Exception\Loader\LoadingModelFailedException;
|
||||
use LoaderBundle\Exception\Loader\LoadingRebrickableFailedException;
|
||||
use LoaderBundle\Exception\Loader\MissingContextException;
|
||||
use LoaderBundle\Exception\ParseErrorException;
|
||||
use LoaderBundle\Service\Stl\StlConverterService;
|
||||
@ -78,13 +80,14 @@ class ModelLoader extends BaseLoader
|
||||
*/
|
||||
public function setLDrawLibraryContext($ldrawLibrary)
|
||||
{
|
||||
try {
|
||||
$adapter = new Local($ldrawLibrary);
|
||||
$this->ldrawLibraryContext = new Filesystem($adapter);
|
||||
$this->stlConverter->setLDrawLibraryContext($this->ldrawLibraryContext);
|
||||
} catch (Exception $exception) {
|
||||
$this->logger->error($exception->getMessage());
|
||||
if(!file_exists($ldrawLibrary)) {
|
||||
$this->logger->error('Wrong library context');
|
||||
throw new MissingContextException($ldrawLibrary);
|
||||
}
|
||||
|
||||
$adapter = new Local($ldrawLibrary);
|
||||
$this->ldrawLibraryContext = new Filesystem($adapter);
|
||||
$this->stlConverter->setLDrawLibraryContext($this->ldrawLibraryContext);
|
||||
}
|
||||
|
||||
/**
|
||||
@ -152,6 +155,7 @@ class ModelLoader extends BaseLoader
|
||||
} catch (\Exception $e) {
|
||||
$connection->rollBack();
|
||||
$this->logger->error($e->getMessage());
|
||||
throw new LoadingModelFailedException($file);
|
||||
}
|
||||
}
|
||||
|
||||
@ -374,12 +378,8 @@ class ModelLoader extends BaseLoader
|
||||
*/
|
||||
private function loadFileContext($file)
|
||||
{
|
||||
try {
|
||||
$adapter = new Local(dirname($file));
|
||||
$this->fileContext = new Filesystem($adapter);
|
||||
} catch (Exception $exception) {
|
||||
$this->logger->error($exception->getMessage());
|
||||
}
|
||||
$adapter = new Local(dirname($file));
|
||||
$this->fileContext = new Filesystem($adapter);
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -19,6 +19,7 @@ class FormatTransformerTest extends TestCase
|
||||
|
||||
public function testBytesToSize()
|
||||
{
|
||||
$this->assertEquals('0 B', $this->transformer->bytesToSize(0, 2));
|
||||
$this->assertEquals('1.5 MB', $this->transformer->bytesToSize(512 * 1024 + 1024 * 1024, 2));
|
||||
$this->assertEquals('512 B', $this->transformer->bytesToSize(512, 2));
|
||||
$this->assertEquals('1 KB', $this->transformer->bytesToSize(1024, 2));
|
||||
|
0
tests/LoaderBundle/Command/fixtures/file.dat
Normal file
0
tests/LoaderBundle/Command/fixtures/file.dat
Normal file
40
tests/LoaderBundle/Command/loadImagesCommandTest.php
Normal file
40
tests/LoaderBundle/Command/loadImagesCommandTest.php
Normal file
@ -0,0 +1,40 @@
|
||||
<?php
|
||||
|
||||
namespace Tests\LoaderBundle\Command;
|
||||
|
||||
|
||||
use LoaderBundle\Command\LoadImagesCommand;
|
||||
use LoaderBundle\Command\LoadLdrawCommand;
|
||||
use LoaderBundle\Service\ImageLoader;
|
||||
use LoaderBundle\Service\ModelLoader;
|
||||
use Symfony\Bundle\FrameworkBundle\Console\Application;
|
||||
use Symfony\Bundle\FrameworkBundle\Test\KernelTestCase;
|
||||
use Symfony\Component\Console\Tester\CommandTester;
|
||||
|
||||
class loadImagesCommandTest extends KernelTestCase
|
||||
{
|
||||
public function testLoadRebrickable()
|
||||
{
|
||||
self::bootKernel();
|
||||
$application = new Application(self::$kernel);
|
||||
|
||||
$imageLoader = $this->createMock(ImageLoader::class);
|
||||
$imageLoader->expects($this->once())->method('loadColorFromRebrickable')->with(-1);
|
||||
$imageLoader->expects($this->once())->method('loadMissingModelImages');
|
||||
|
||||
$application->add(new LoadImagesCommand(null,$imageLoader));
|
||||
|
||||
$command = $application->find('app:load:images');
|
||||
|
||||
$tester = new CommandTester($command);
|
||||
$tester->execute(
|
||||
[
|
||||
'--rebrickable' => true,
|
||||
'--color' => -1,
|
||||
'--missing' => true
|
||||
]
|
||||
);
|
||||
|
||||
}
|
||||
|
||||
}
|
107
tests/LoaderBundle/Command/loadLdrawCommandTest.php
Normal file
107
tests/LoaderBundle/Command/loadLdrawCommandTest.php
Normal file
@ -0,0 +1,107 @@
|
||||
<?php
|
||||
|
||||
namespace Tests\LoaderBundle\Command;
|
||||
|
||||
|
||||
use LoaderBundle\Command\LoadLdrawCommand;
|
||||
use LoaderBundle\Service\ModelLoader;
|
||||
use Symfony\Bundle\FrameworkBundle\Console\Application;
|
||||
use Symfony\Bundle\FrameworkBundle\Test\KernelTestCase;
|
||||
use Symfony\Component\Console\Tester\CommandTester;
|
||||
|
||||
class loadLdrawCommandTest extends KernelTestCase
|
||||
{
|
||||
public function testMissingArgument()
|
||||
{
|
||||
self::bootKernel();
|
||||
$application = new Application(self::$kernel);
|
||||
|
||||
$modelLoader = $this->createMock(ModelLoader::class);
|
||||
|
||||
$application->add(new LoadLdrawCommand(null,$modelLoader));
|
||||
|
||||
$command = $application->find('app:load:ldraw');
|
||||
|
||||
$tester = new CommandTester($command);
|
||||
$tester->execute(
|
||||
['--ldraw' => 'path2']
|
||||
);
|
||||
|
||||
$this->assertEquals('Either the --all or --file option is required'."\n",$tester->getDisplay());
|
||||
}
|
||||
|
||||
public function testDownload()
|
||||
{
|
||||
self::bootKernel();
|
||||
$application = new Application(self::$kernel);
|
||||
|
||||
$modelLoader = $this->createMock(ModelLoader::class);
|
||||
$modelLoader->expects($this->once())->method('downloadLibrary');
|
||||
|
||||
$application->add(new LoadLdrawCommand(null , $modelLoader));
|
||||
|
||||
$command = $application->find('app:load:ldraw');
|
||||
|
||||
$tester = new CommandTester($command);
|
||||
$tester->execute([
|
||||
'--all' => true
|
||||
]);
|
||||
}
|
||||
|
||||
public function testLoadAll()
|
||||
{
|
||||
self::bootKernel();
|
||||
$application = new Application(self::$kernel);
|
||||
|
||||
$modelLoader = $this->createMock(ModelLoader::class);
|
||||
$modelLoader->expects($this->once())->method('loadAll');
|
||||
|
||||
$application->add(new LoadLdrawCommand(null,$modelLoader));
|
||||
|
||||
$command = $application->find('app:load:ldraw');
|
||||
|
||||
$tester = new CommandTester($command);
|
||||
$tester->execute(
|
||||
['--ldraw' => 'path', '--all' => true]
|
||||
);
|
||||
}
|
||||
|
||||
public function testLoadFile()
|
||||
{
|
||||
self::bootKernel();
|
||||
$application = new Application(self::$kernel);
|
||||
|
||||
$modelLoader = $this->createMock(ModelLoader::class);
|
||||
$modelLoader->expects($this->once())->method('loadOne');
|
||||
|
||||
$application->add(new LoadLdrawCommand(null,$modelLoader));
|
||||
|
||||
$command = $application->find('app:load:ldraw');
|
||||
|
||||
$tester = new CommandTester($command);
|
||||
$tester->execute(
|
||||
['--ldraw' => 'path', '--file' => __DIR__.'/fixtures/file.dat']
|
||||
);
|
||||
}
|
||||
|
||||
public function testFileNotFound()
|
||||
{
|
||||
self::bootKernel();
|
||||
$application = new Application(self::$kernel);
|
||||
|
||||
$modelLoader = $this->createMock(ModelLoader::class);
|
||||
|
||||
$application->add(new LoadLdrawCommand(null,$modelLoader));
|
||||
|
||||
$command = $application->find('app:load:ldraw');
|
||||
|
||||
$file = __DIR__.'/fixtures/.dat';
|
||||
|
||||
$tester = new CommandTester($command);
|
||||
$tester->execute(
|
||||
['--ldraw' => 'path', '--file' => $file]
|
||||
);
|
||||
|
||||
$this->assertEquals('File '. $file.' not found'."\n",$tester->getDisplay());
|
||||
}
|
||||
}
|
52
tests/LoaderBundle/Command/loadRelationCommandTest.php
Normal file
52
tests/LoaderBundle/Command/loadRelationCommandTest.php
Normal file
@ -0,0 +1,52 @@
|
||||
<?php
|
||||
|
||||
namespace Tests\LoaderBundle\Command;
|
||||
|
||||
|
||||
use LoaderBundle\Command\LoadLdrawCommand;
|
||||
use LoaderBundle\Command\LoadRelationCommand;
|
||||
use LoaderBundle\Service\ModelLoader;
|
||||
use LoaderBundle\Service\RelationLoader;
|
||||
use Symfony\Bundle\FrameworkBundle\Console\Application;
|
||||
use Symfony\Bundle\FrameworkBundle\Test\KernelTestCase;
|
||||
use Symfony\Component\Console\Tester\CommandTester;
|
||||
|
||||
class loadRelationCommandTest extends KernelTestCase
|
||||
{
|
||||
public function testLoadAll()
|
||||
{
|
||||
self::bootKernel();
|
||||
$application = new Application(self::$kernel);
|
||||
|
||||
$relationLoader = $this->createMock(RelationLoader::class);
|
||||
$relationLoader->expects($this->once())->method('loadAll');
|
||||
|
||||
$application->add(new LoadRelationCommand(null,$relationLoader));
|
||||
|
||||
$command = $application->find('app:load:relations');
|
||||
|
||||
$tester = new CommandTester($command);
|
||||
$tester->execute(
|
||||
['--rewrite' => true]
|
||||
);
|
||||
}
|
||||
|
||||
public function testLoadMissing()
|
||||
{
|
||||
self::bootKernel();
|
||||
$application = new Application(self::$kernel);
|
||||
|
||||
$relationLoader = $this->createMock(RelationLoader::class);
|
||||
$relationLoader->expects($this->once())->method('loadNotPaired');
|
||||
|
||||
$application->add(new LoadRelationCommand(null,$relationLoader));
|
||||
|
||||
$command = $application->find('app:load:relations');
|
||||
|
||||
$tester = new CommandTester($command);
|
||||
$tester->execute(
|
||||
['--rewrite' => false]
|
||||
);
|
||||
}
|
||||
|
||||
}
|
@ -8,6 +8,7 @@ use AppBundle\Entity\LDraw\Model;
|
||||
use AppBundle\Repository\LDraw\AliasRepository;
|
||||
use AppBundle\Repository\LDraw\ModelRepository;
|
||||
use League\Flysystem\File;
|
||||
use LoaderBundle\Exception\Loader\MissingContextException;
|
||||
use LoaderBundle\Service\ModelLoader;
|
||||
use LoaderBundle\Service\Stl\StlConverterService;
|
||||
use LoaderBundle\Util\RelationMapper;
|
||||
@ -65,6 +66,14 @@ class ModelLoaderTest extends BaseTest
|
||||
$this->assertEquals('path', $models[0]->getPath());
|
||||
}
|
||||
|
||||
/**
|
||||
* @expectedException LoaderBundle\Exception\Loader\MissingContextException
|
||||
*/
|
||||
public function testFileNonExistingContext()
|
||||
{
|
||||
$this->modelLoader->setLDrawLibraryContext(__DIR__.'/fixtures/nonexisting/');
|
||||
}
|
||||
|
||||
public function testFileContext()
|
||||
{
|
||||
$this->modelLoader->setLDrawLibraryContext(__DIR__.'/fixtures/librarycontext/');
|
||||
@ -102,6 +111,27 @@ class ModelLoaderTest extends BaseTest
|
||||
$this->assertEquals('licensed', $models[0]->getId());
|
||||
}
|
||||
|
||||
public function testLoadSubpart()
|
||||
{
|
||||
$this->modelLoader->setLDrawLibraryContext(__DIR__.'/fixtures/subparts/');
|
||||
$this->modelLoader->loadOne(__DIR__.'/fixtures/subparts/parts/3815c01.dat');
|
||||
|
||||
$models = $this->modelRepository->findAll();
|
||||
|
||||
$this->assertEquals(4, count($models));
|
||||
}
|
||||
|
||||
/**
|
||||
* @expectedException LoaderBundle\Exception\Loader\LoadingModelFailedException
|
||||
*/
|
||||
public function testOneMissing()
|
||||
{
|
||||
$this->modelLoader->setLDrawLibraryContext(__DIR__.'/fixtures/subparts/');
|
||||
$this->modelLoader->loadOne(__DIR__.'/fixtures/subparts/parts/381c01.dat');
|
||||
|
||||
$models = $this->modelRepository->findAll();
|
||||
}
|
||||
|
||||
public function testIsIncluded()
|
||||
{
|
||||
$this->modelLoader->setLDrawLibraryContext(__DIR__.'/fixtures/included/');
|
||||
@ -185,6 +215,10 @@ class ModelLoaderTest extends BaseTest
|
||||
$library = $this->modelLoader->downloadLibrary(__DIR__.'/fixtures/ldraw.zip');
|
||||
|
||||
$this->assertDirectoryExists($library);
|
||||
|
||||
$library = $this->modelLoader->downloadLibrary(__DIR__.'/fixtures/completeCA.zip');
|
||||
|
||||
$this->assertDirectoryExists($library);
|
||||
}
|
||||
|
||||
/**
|
||||
|
BIN
tests/LoaderBundle/Service/ModelLoader/fixtures/completeCA.zip
Normal file
BIN
tests/LoaderBundle/Service/ModelLoader/fixtures/completeCA.zip
Normal file
Binary file not shown.
@ -0,0 +1,49 @@
|
||||
0 Cylinder 1.0
|
||||
0 Name: 4-4cyli.dat
|
||||
0 Author: James Jessiman
|
||||
0 !LDRAW_ORG Primitive UPDATE 2005-01
|
||||
0 !LICENSE Redistributable under CCAL version 2.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,28 @@
|
||||
0 ~Cylinder 2 x 2 with Dome Top with Blocked Stud
|
||||
0 Name: s\30367as01.dat
|
||||
0 Author: Magnus Forsberg [MagFors]
|
||||
0 !LDRAW_ORG Subpart UPDATE 2012-03
|
||||
0 !LICENSE Redistributable under CCAL version 2.0 : see CAreadme.txt
|
||||
|
||||
0 BFC CERTIFY CCW
|
||||
|
||||
0 !HISTORY 2012-12-28 [PTadmin] Official Update 2012-03
|
||||
|
||||
1 16 0 20 0 -1 0 0 0 -1 0 0 0 1 STUD4A.dat
|
||||
0 BFC INVERTNEXT
|
||||
1 16 0 4 0 6 0 0 0 16 0 0 0 6 4-4cyli.dat
|
||||
1 16 0 4 0 6 0 0 0 1 0 0 0 6 4-4edge.dat
|
||||
1 16 0 4 0 0 0 2 0 -1 0 2 0 0 4-4ring2.dat
|
||||
1 16 0 16 0 8 0 0 0 4 0 0 0 8 4-4cyli.dat
|
||||
0 BFC INVERTNEXT
|
||||
1 16 0 16 0 16 0 0 0 4 0 0 0 16 4-4cyli.dat
|
||||
1 16 0 0 0 1 0 0 0 1 0 0 0 1 s\30367s01.dat
|
||||
1 16 0 0 0 0 0 -1 0 1 0 1 0 0 s\30367s01.dat
|
||||
1 16 0 0 0 -1 0 0 0 1 0 0 0 -1 s\30367s01.dat
|
||||
1 16 0 0 0 0 0 1 0 1 0 -1 0 0 s\30367s01.dat
|
||||
0 // stud
|
||||
1 16 0 0 0 1 0 0 0 1 0 0 0 1 filstud3.dat
|
||||
1 16 0 0 0 6 0 0 0 1 0 0 0 6 4-4edge.dat
|
||||
1 16 0 0 0 2 0 0 0 1 0 0 0 2 4-4ring3.dat
|
||||
1 16 0 0 0 1 0 0 0 1 0 0 0 1 stud2a.dat
|
||||
|
@ -0,0 +1,23 @@
|
||||
0 Minifig Hips
|
||||
0 Name: 3815.dat
|
||||
0 Author: Steve Bliss [sbliss]
|
||||
0 !LDRAW_ORG Part UPDATE 2010-02
|
||||
0 !LICENSE Redistributable under CCAL version 2.0 : see CAreadme.txt
|
||||
|
||||
0 BFC CERTIFY CW
|
||||
|
||||
0 !HISTORY 1997-10-29 [PTadmin] Official Update 1997-16
|
||||
0 !HISTORY 1999-01-01 [cwdee] Modifications
|
||||
0 !HISTORY 1999-02-01 [PTadmin] Official Update 1999-01
|
||||
0 !HISTORY 2004-06-15 [nielsk] BFC'd
|
||||
0 !HISTORY 2004-11-06 [PTadmin] Official Update 2004-04
|
||||
0 !HISTORY 2007-07-27 [PTadmin] Header formatted for Contributor Agreement
|
||||
0 !HISTORY 2008-07-01 [PTadmin] Official Update 2008-01
|
||||
0 !HISTORY 2009-01-28 [Philo] Moved crotch to main part
|
||||
0 !HISTORY 2009-08-24 [PTadmin] Renamed from 970
|
||||
0 !HISTORY 2010-07-05 [PTadmin] Official Update 2010-02
|
||||
|
||||
4 16 18 0 -10 18 6 -10 -18 6 -10 -18 0 -10
|
||||
1 16 -2 12 0 0 4 0 -6.364 0 6.364 -6.364 0 -6.364 5-16cyli.dat
|
||||
1 16 0 0 0 1 0 0 0 1 0 0 0 1 s\3815s01.dat
|
||||
0 //
|
@ -0,0 +1,21 @@
|
||||
0 Minifig Hips and Legs
|
||||
0 Name: 3815c01.dat
|
||||
0 Author: Steve Bliss [sbliss]
|
||||
0 !LDRAW_ORG Shortcut UPDATE 2016-01
|
||||
0 !LICENSE Redistributable under CCAL version 2.0 : see CAreadme.txt
|
||||
|
||||
0 BFC CERTIFY CCW
|
||||
|
||||
0 !HISTORY 2002-02-18 [PTadmin] Official Update 2002-01
|
||||
0 !HISTORY 2007-07-27 [PTadmin] Header formatted for Contributor Agreement
|
||||
0 !HISTORY 2008-07-01 [PTadmin] Official Update 2008-01
|
||||
0 !HISTORY 2009-08-24 [PTadmin] Renamed from 970c00
|
||||
0 !HISTORY 2010-07-05 [PTadmin] Official Update 2010-02
|
||||
0 !HISTORY 2015-12-30 [cwdee] Updated description
|
||||
0 !HISTORY 2015-12-30 [PTadmin] Official Update 2015-02
|
||||
0 !HISTORY 2015-12-31 [Steffen] Add BFC statement
|
||||
0 !HISTORY 2016-12-31 [PTadmin] Official Update 2016-01
|
||||
|
||||
1 16 0 0 0 1 0 0 0 1 0 0 0 1 3815.dat
|
||||
1 16 0 12 0 1 0 0 0 1 0 0 0 1 3816.dat
|
||||
1 16 0 12 0 1 0 0 0 1 0 0 0 1 3817.dat
|
@ -0,0 +1,34 @@
|
||||
0 Minifig Leg Right
|
||||
0 Name: 3816.dat
|
||||
0 Author: Steve Bliss [sbliss]
|
||||
0 !LDRAW_ORG Part UPDATE 2009-03
|
||||
0 !LICENSE Redistributable under CCAL version 2.0 : see CAreadme.txt
|
||||
|
||||
0 BFC CERTIFY CCW
|
||||
|
||||
0 !HELP Move down 12 units to align with hips
|
||||
|
||||
0 !HISTORY 1997-10-29 [PTadmin] Official Update 1997-16
|
||||
0 !HISTORY 1999-02-01 [PTadmin] Official Update 1999-01
|
||||
0 !HISTORY 2000-05-07 [PTadmin] Official Update 2000-01
|
||||
0 !HISTORY 2002-04-10 [fwcain] Fixed overlapping quad...
|
||||
0 !HISTORY 2002-04-25 [PTadmin] Official Update 2002-02
|
||||
0 !HISTORY 2002-05-29 [fwcain] Moved all front surfaces to "main" file (from subfile)...
|
||||
0 !HISTORY 2002-08-18 [PTadmin] Official Update 2002-04
|
||||
0 !HISTORY 2007-07-27 [PTadmin] Header formatted for Contributor Agreement
|
||||
0 !HISTORY 2008-07-01 [PTadmin] Official Update 2008-01
|
||||
0 !HISTORY 2008-12-31 [tchang] Add BFC
|
||||
0 !HISTORY 2009-08-24 [PTadmin] Moved from 971
|
||||
0 !HISTORY 2009-12-29 [PTadmin] Official Update 2009-03
|
||||
|
||||
1 16 0 0 0 1 0 0 0 1 0 0 0 1 s\3816s01.dat
|
||||
0
|
||||
4 16 -19.18 20 -6 -19.18 20 -11 -1.5 20 -11 -1.5 20 -6
|
||||
4 16 -19.18 20 -11 -19.5 28 -11 -1.5 28 -11 -1.5 20 -11
|
||||
4 16 -19.18 20 -6 -1.5 20 -6 -1.5 7.7 -6 -18.68 7.7 -6
|
||||
4 16 -18.68 7.7 -6 -2 7.7 -6 -2 6.74 -6 -18.64 6.74 -6
|
||||
4 16 -18.5 3.42 -8.28 -18.64 6.74 -6 -2 6.74 -6 -2 3.42 -8.28
|
||||
4 16 -18.36 0 -9 -18.5 3.42 -8.28 -2 3.42 -8.28 -2 0 -9
|
||||
4 16 -18.36 0 -9 -2 0 -9 -2 -3.42 -8.28 -18.23 -3.42 -8.28
|
||||
4 16 -18.11 -6.3 -6.3 -18.23 -3.42 -8.28 -2 -3.42 -8.28 -2 -6.3 -6.3
|
||||
0
|
@ -0,0 +1,33 @@
|
||||
0 Minifig Leg Left
|
||||
0 Name: 3817.dat
|
||||
0 Author: Steve Bliss [sbliss]
|
||||
0 !LDRAW_ORG Part UPDATE 2009-03
|
||||
0 !LICENSE Redistributable under CCAL version 2.0 : see CAreadme.txt
|
||||
|
||||
0 BFC CERTIFY CCW
|
||||
|
||||
0 !HELP Move down 12 units to align with hips
|
||||
|
||||
0 !HISTORY 1997-10-29 [PTadmin] Official Update 1997-16
|
||||
0 !HISTORY 1999-02-01 [PTadmin] Official Update 1999-01
|
||||
0 !HISTORY 2002-04-10 [fwcain] Fixed overlapping quad...
|
||||
0 !HISTORY 2002-04-25 [PTadmin] Official Update 2002-02
|
||||
0 !HISTORY 2002-05-29 [fwcain] Moved all front surfaces to "main" file (from subfile)...
|
||||
0 !HISTORY 2002-08-18 [PTadmin] Official Update 2002-04
|
||||
0 !HISTORY 2007-07-27 [PTadmin] Header formatted for Contributor Agreement
|
||||
0 !HISTORY 2008-07-01 [PTadmin] Official Update 2008-01
|
||||
0 !HISTORY 2008-12-31 [tchang] Add BFC
|
||||
0 !HISTORY 2009-08-24 [PTadmin] Moved from 972
|
||||
0 !HISTORY 2009-12-29 [PTadmin] Official Update 2009-03
|
||||
|
||||
1 16 0 0 0 1 0 0 0 1 0 0 0 1 s\3817s01.dat
|
||||
0
|
||||
4 16 1.5 20 -6 1.5 20 -11 19.18 20 -11 19.18 20 -6
|
||||
4 16 1.5 20 -11 1.5 28 -11 19.5 28 -11 19.18 20 -11
|
||||
4 16 18.68 7.7 -6 1.5 7.7 -6 1.5 20 -6 19.18 20 -6
|
||||
4 16 18.64 6.74 -6 2 6.74 -6 2 7.7 -6 18.68 7.7 -6
|
||||
4 16 2 3.42 -8.28 2 6.74 -6 18.64 6.74 -6 18.5 3.42 -8.28
|
||||
4 16 2 0 -9 2 3.42 -8.28 18.5 3.42 -8.28 18.36 0 -9
|
||||
4 16 18.23 -3.42 -8.28 2 -3.42 -8.28 2 0 -9 18.36 0 -9
|
||||
4 16 2 -6.3 -6.3 2 -3.42 -8.28 18.23 -3.42 -8.28 18.11 -6.3 -6.3
|
||||
0
|
Loading…
x
Reference in New Issue
Block a user