[cad-linux-dev] Re: Drawing entity

  • From: Eric Wilhelm <ewilhelm@xxxxxxxxxxxxx>
  • To: CAD linux development <cad-linux-dev@xxxxxxxxxxxxx>
  • Date: Sat, 21 Aug 2004 10:48:17 -0500

# The following was supposedly scribed by
# Bruno Postle
# on Saturday 21 August 2004 10:16 am:

>The application knows to use the YAML parser from the file
>extension. =A0To access the centre-point, all it needs to do is
>look-up the ./my-circle.yml#version and ./my-circle.yml#type
>attributes and see if it has the code to handle a "foo" or "bar"
>formatted "circle" - Otherwise it skips the file with a warning.
>
>So the "version" and "type" attributes combined have basically the
>same function as an XML DOCTYPE declaration.

ok, but why "./my-circle.yml#version and ./my-circle.yml#type" ?

(btw, ./${circle}.yml#type eq 'circle', so let's call it #format)

I think it is a better plan in the long run to resign each directory to one=
=20
format and version.
  ./#version and ./#format

This gives one place to look for the version and format of the drawing.  Af=
ter=20
all, you don't have mixed versions of entities in one dxf.

What if the directory structure changes?  Yes, rhizopod is flat, but sturge=
on=20
may not be so flat.

In fact, I think rhizopod may actually need to be somehow broken into the=20
following parts:=20
  geometry/
  layers/
  object_styles/
  linetypes/
  text_styles/
  mark_styles/

So, for ($format eq 'rhizopod'), you should be able to count on finding one=
=20
directory structure for any value of $version.  But, for ($version =3D=3D 0=
=2E01),=20
the keys inside the entities may possibly have different names/shapes than=
=20
for ($version =3D=3D 0.05).  This implies a format layer and version layer =
in=20
your code/classes.

=46or starters, I'm just going to write-off mixed formats within a director=
y=20
completely.  I don't see it as even feasible that rhizopod and sturgeon wou=
ld=20
have identical structures and filename conventions.

So, if $format is global to the directory, that leaves only the question as=
 to=20
whether $version is an entity-level variable.

Doesn't it sound easier to switch code classes at drawing-open rather than=
=20
entity-open?  Also, I know it is possible to write code to switch at=20
entity-open, but is it worth it?  What real-world situation justifies it?

=2D-Eric
=2D-=20
"Unthinking respect for authority is the greatest enemy of truth."
                                        --Albert Einstein

Other related posts: