Subject:
|
Re: Searching for parts
|
Newsgroups:
|
lugnet.cad.dev
|
Date:
|
Tue, 7 Nov 2000 09:45:38 GMT
|
Viewed:
|
2715 times
|
| |
| |
In lugnet.cad.dev, Steve Bliss wrote:
> In lugnet.cad.dev, Lars C. Hassing wrote:
>
> > According to FAQ question 26, LDraw searches for files in the following order:
> > 1.The current catalog.
> > 2.The P catalog.
> > 3.The PARTS catalog.
> > 4.The MODELS catalog.
>
> The FAQ is not quite correct. Step #1 should be last, not first.
>
> Strictly speaking, LDraw 'searches' by trying to access files, named as
> follows. (This is taken directly from the LDraw code).
>
> 'p/' + <filename>
> 'parts/' + <filename>
> 'models/' + <filename>
> <filename>
Really!
> Where <filename> is the file specified either on the LDraw command line, or
> in a subfile command (linetype 1).
>
> Notice that *all* references are relative to the current directory. The
> only way to get out of the current-directory tree is to put an absolute
> path in the <filename>.
>
> > L3P/L3Lab search in the above order, with the addition:
> > 5. The catalog of the model [1]
>
> This is a good thing.
>
> I'm noticing a difference between the way L3Lab renders and the way LDLite
> renders. I've got a multi-file model in a subdirectory, but there are some
> files with the same name in the ldraw/models/ directory. L3Lab renders the
> way I want it to :) , but LDLite doesn't. :(
The very first place to look is inside the model-MPD...
> > IIRC LDraw/LEdit MUST be started from the LDraw directory to work.
> > So for LDraw/LEdit step 1 is always the LDraw directory!
>
> True. Besides the issue with finding the part directories, LDraw needs to
> load its graphic drivers, and it looks in the current directory for them.
Indeed, but we've just learned that P, PARTS and MODELS come first.
So step 1 is not the first step, but comes after step 4.
> > Maybe "the current catalog" actually means the Ldraw directory?
>
> It might actually be more accurate to say "Request <filename> from the file
> system, without specifying any extra path information". Whether the file
> is in the current directory depends on the contents of the <filename>
> reference.
>
> > If so, I have misunderstood "the current catalog" because I have
> > programmed L3P (and L3Lab) to actually use the current working
> > directory from where L3P is started.
>
> Are you specifically looking in a specific directory, or are you allowing
> the OS to track the 'current directory'?
It happens automatically, I simply use "fopen(<filename>)".
> > And this is why LDRAWDIR is needed for L3P!
> >
> > So, should I change step 1 to be the LDraw directory?
>
> No, I don't see any point to that. Long-term, LDraw rendering programs
> should (generally) be searching:
>
> 1. The document's directory
> 2. %LDRAWDIR%\p
> 3. %LDRAWDIR%\parts
>
> ldraw\models should become much less important, over time. Users should be
> able to store their model files whereever they like.
>
> Having ldraw\models is convenient, because you can put unofficial parts
> there (and not disturb the 'official' files in \parts and \p), or use it as
> a temporary location for other people's models, or even put standard
> submodels in it.
>
> > I agree with Travis Cobbs that step 5 should be the first step.
> > Will this have any side effects?
>
> Yes, any same-name files will be taken from the document's directory,
> instead of one of the standard directories. This is generally a good
> thing.
I aggre totally with all you've said.
The Open File dialog in L3Lab does a CD to the model's directory,
so step 1 becomes in effect the same directory as step 5
- exactly like your long-term suggestion is correct.
The FAQ could be updated to:
LDraw/LEdit MUST be started in the LDraw directory. They search for files in:
1. P
2. PARTS
3. MODELS
4. .
Modern programs should search in:
1. Inside the document if it is an MPD
2. The document's directory
3. %LDRAWDIR%\P
4. %LDRAWDIR%\PARTS
5. %LDRAWDIR%\MODELS
where LDRAWDIR is the LDraw directory.
/Lars
|
|
Message has 1 Reply: | | Re: Searching for parts [DAT]
|
| (...) Yeah, I realized (after posting my message), that it was a problem with LDLite handling a subfile which was an MPD. I changed to the equivalent DAT, and everything's fine now. (...) Good point. Your "1. Inside the document if it is an MPD" (...) (24 years ago, 7-Nov-00, to lugnet.cad.dev)
|
Message is in Reply To:
| | Re: Searching for parts
|
| (...) The FAQ is not quite correct. Step #1 should be last, not first. Strictly speaking, LDraw 'searches' by trying to access files, named as follows. (This is taken directly from the LDraw code). 'p/' + <filename> 'parts/' + <filename> 'models/' + (...) (24 years ago, 6-Nov-00, to lugnet.cad.dev)
|
10 Messages in This Thread:
- Entire Thread on One Page:
- Nested:
All | Brief | Compact | Dots
Linear:
All | Brief | Compact
This Message and its Replies on One Page:
- Nested:
All | Brief | Compact | Dots
Linear:
All | Brief | Compact
|
|
|
|