Fwd: status of STEP Class Library in BRL-CAD

6 views
Skip to first unread message

Bryan Bishop

unread,
Jul 6, 2011, 6:24:03 PM7/6/11
to Open Manufacturing, Bryan Bishop, mark pictor
@Mark, I am also sending this message along to the Open Manufacturing group.

---------- Forwarded message ----------
From: Mark <mpi...@gmail.com>
Date: Wed, Jul 6, 2011 at 4:18 PM
Subject: [brlcad-devel] status of STEP Class Library in BRL-CAD
To: brlcad...@lists.sourceforge.net


I worked with SCL a few years ago, and there has been renewed interest in it from various parties. As a result, I copied my version of the source from google code to github( https://github.com/mpictor/StepClassLibrary ).  Today I was searching for more users of scl, and found out that BRL-CAD uses it - a fact that I had not been aware of, in spite of adding information to the wiki page http://brlcad.org/w/index.php?title=STEP ! (When I added the info I thought, mistakenly, that I was the only one working with SCL.)

I have some questions:

* What license are the devs using for SCL? Sourceforge says the project is LGPL/BSD, but I wasn't sure if that was a dual license, or if portions of it were released under one license and portions under another. http://brlcad.svn.sourceforge.net/viewvc/brlcad/brlcad/trunk/src/other/step/CMakeLists.txt?revision=43301&view=markup seems to imply that SCL is (C) US ARL, which does not make sense to me.

* Have you been able to use SCL with modern EXPRESS schemas? I've run into trouble with most of the ones I've tried with my version of SCL, but I don't know a lot about EXPRESS or parsers and haven't found the cause.

* What are your future plans for SCL? Have you generated all the code you will ever need, meaning that you won't ever have reason to work on SCL again? Or do you intend to support more or newer STEP APs?

If the former, I'd like to integrate your work on SCL into my project - assuming the license is compatible. 

If the latter, perhaps we can collaborate. Thomas Paviot, who created OpenCASCADE Community Edition, rounded up a group of people interested in SCL. The group includes people who help run PDES and CAX-IF - if we get SCL to work with new schemas, there should be a lot of people willing to test and improve it.

Thank you
Mark

_______________________________________________
BRL-CAD Developer mailing list
brlcad...@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/brlcad-devel




--
- Bryan
http://heybryan.org/
1 512 203 0507

Clifford Yapp

unread,
Jul 7, 2011, 9:27:42 AM7/7/11
to Developer discussions, Bryan Bishop, mark pictor, openmanu...@googlegroups.com
> I have some questions:
> * What license are the devs using for SCL? Sourceforge says the project is
> LGPL/BSD, but I wasn't sure if that was a dual license, or if portions of it
> were released under one license and portions under another.

The LGPL license is the primary license for BRL-CAD as a whole, which
is why you see it on the sourceforge page. Our build system is BSD
licensed. SCL is more properly regarded as a subproject we include
for build convenience - it happens to be the primary repository for us
since as far as we knew at the time we were the only interested
developers, so we haven't yet made a separate project for just the
SCL.

SCL itself is of course from NIST, and not copyright by ARL. We have
added new build logic, both the autotools logic and the newer CMake
logic. The CMake logic itself is thus copyright by ARL, but that does
not imply that the copyright applies to the remainder of SCL. The
status of the broader SCL code is indicated by the COPYING file in our
repository - if I recall correctly, aside from build logic the main
differences in our repository from the NIST original are the
application of all the compile fixes we could scare up or make at the
time we imported the repository. The subversion history will show
what we did - I tried to make that history reflect the various steps
from the NIST code to the current BRL-CAD repository.

> * Have you been able to use SCL with modern EXPRESS schemas? I've run into
> trouble with most of the ones I've tried with my version of SCL, but I don't
> know a lot about EXPRESS or parsers and haven't found the cause.

I believe the developer who did the primary development work for our
converter found he had to get a newer schema working, but I don't
recall the details - I'd have to scan the commit history.

> * What are your future plans for SCL? Have you generated all the code you
> will ever need, meaning that you won't ever have reason to work on SCL
> again?

We will definitely have reason to work on SCL - the code base needs
quite a lot of modernization (they predate a lot of the modern C++
STL, and we need to scrub out the custom one-off string handling (just
to pick one glaring example) in favor of using STL.) In fact,
scrubbing the SCL code was one of our proposed GSoC activities.

I'm currently exploring options for how to approach SCL from a code
generating standpoint - personally I loathe including machine
generated code in repositories for anything except bootstrapping and
have been exploring cross platform ways to integrate the code
generating process into the CMake build. That's got a ways to go (I'm
currently learning about the re2c lexer and lemon parser, which both
seem to be cross platform and may be a way to move the express
lex/yacc logic to something we can use on Windows). I think our
step-g converter is currently using a tweaked version of SCL's
generated code, but that's not what we (or I at least) want to do long
term.

BRL-CAD is moving to it because we must support MSVC Windows building
and CMake allows us to do it from a single set of build files. Going
forward BRL-CAD will be using CMake to build SCL, so from our
standpoint our SCL autotools build logic is on its way out.

> Or do you intend to support more or newer STEP APs?

It's not an immediate short term goal - 203 is our main focus at this
time, but certainly others are of longer term interest if they
describe geometry (214 I believe is one of the others...)

> If the former, I'd like to integrate your work on SCL into my project - assuming the license is compatible.

I'm not recalling anything we put into the SCL code that would dictate
LGPL licensing - certainly we haven't tossed an LGPL on the whole of
our version of the NIST repository. I don't recall if we made any
non-bug-fix changes that might raise the issue for any code in there.
Certainly the build logic is BSD license - that's standard for all
BRL-CAD's build logic that we have written. If there is any concern I
can check with our project lead to confirm that our SCL is BSD clear.

> If the latter, perhaps we can collaborate.

We are certainly very interested in collaborating!

> Thomas Paviot, who created
> OpenCASCADE Community Edition, rounded up a group of people interested in
> SCL. The group includes people who help run PDES and CAX-IF - if we get SCL
> to work with new schemas, there should be a lot of people willing to test
> and improve it.

What specific schemas did you want to target? Are they online?

Cheers,
CY

Bryan Bishop

unread,
Jul 7, 2011, 11:19:45 AM7/7/11
to Open Manufacturing, Bryan Bishop


---------- Forwarded message ----------
From: Christopher Sean Morrison <brl...@mac.com>
Date: Thu, Jul 7, 2011 at 9:59 AM
Subject: Re: [brlcad-devel] status of STEP Class Library in BRL-CAD
To: BRL-CAD Developer Mailing List <brlcad...@lists.sourceforge.net>



Hi Mark,

On Jul 6, 2011, at 17:18, Mark <mpi...@gmail.com> wrote:

I worked with SCL a few years ago, and there has been renewed interest in it from various parties. As a result, I copied my version of the source from google code to github( https://github.com/mpictor/StepClassLibrary ).  Today I was searching for more users of scl, and found out that BRL-CAD uses it - a fact that I had not been aware of, in spite of adding information to the wiki page http://brlcad.org/w/index.php?title=STEP ! (When I added the info I thought, mistakenly, that I was the only one working with SCL.)

We not only use it, but per prior talks with some of the original NIST developers, we had taken over maintainership of SCL.  Given our need for robust import/export of AP202 & AP214 geometry and lack of activity elsewhere, it was a natural fit.  We just hadn't gotten around to publishing an updated standalone SCL release outside our repo.

* What license are the devs using for SCL?

We haven't changed the original SCL licensing terms.  Portions of the BRL-CAD repo are under different license terms.
If I recall correctly, the majority of the NIST-developed code is BSD or public domain.  Our additions, such as the build system file you reference is BSD just so it matches the rest of the build system.  We strictly interact only with OSI licenses that are unincumbering and readily incorporateable into derivative and collective works, or public domain code.  ;-) 

* Have you been able to use SCL with modern EXPRESS schemas?

I beleive so but that would have been work done several years ago.  We have already made quite a number of mods over the past few years since the takeover so best way to find out is to try one.  You have a particular AP in mind besides 11/203/214 files?

* What are your future plans for SCL? Have you generated all the code you will ever need, meaning that you won't ever have reason to work on SCL again? Or do you intend to support more or newer STEP APs?

We're definitely not done.  ARL funded the development of an initial working STEP-to-BRL-CAD importer over a year ago.  More work on that importer is going on now and I'm hoping we'll get to an exporter sometime next year.

Cliff mentioned several of the SCL dev tasks currently on our radar.  Code modernization, new build system, and portability to Windows being key efforts we need.  Restablishing a new project home is another as we get closer to pushing out an updated SCL release.

If the latter, perhaps we can collaborate.

Collaboration sounds fantastic.  I view STEP as our preferred import/export format for BRL-CAD given the breadth of entities it supports.  It is the only open format I'm aware of capable of representing the majority of BRL-CAD entity types and operations.

Cheers!
Sean


------------------------------------------------------------------------------
All of the data generated in your IT infrastructure is seriously valuable.
Why? It contains a definitive record of application performance, security
threats, fraudulent activity, and more. Splunk takes this data and makes
sense of it. IT sense. And common sense.
http://p.sf.net/sfu/splunk-d2d-c2

_______________________________________________
BRL-CAD Developer mailing list
brlcad...@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/brlcad-devel

Mark

unread,
Jul 7, 2011, 5:30:36 PM7/7/11
to brlcad...@lists.sourceforge.net, openmanu...@googlegroups.com, scl...@googlegroups.com


On Thu, Jul 7, 2011 at 10:59 AM, Christopher Sean Morrison <brl...@mac.com> wrote:

Hi Mark,




We not only use it, but per prior talks with some of the original NIST developers, we had taken over maintainership of SCL.  Given our need for robust import/export of AP202 & AP214 geometry and lack of activity elsewhere, it was a natural fit.  We just hadn't gotten around to publishing an updated standalone SCL release outside our repo.

I talked to a few people at NIST about SCL, but it seems that I didn't talk to the right ones or didn't talk to them at the right time :)
 

* What license are the devs using for SCL?

We haven't changed the original SCL licensing terms.  Portions of the BRL-CAD repo are under different license terms.
If I recall correctly, the majority of the NIST-developed code is BSD or public domain.  Our additions, such as the build system file you reference is BSD just so it matches the rest of the build system.  We strictly interact only with OSI licenses that are unincumbering and readily incorporateable into derivative and collective works, or public domain code.  ;-) 

I believe that the NIST code is public domain. Your explanation of the copyright notice in that file makes sense, though perhaps you should change the text a little: 

#                     C M A K E L I S T S . T X T
# SCL
#
# Copyright (c) 2010 United States Government as represented by
# the U.S. Army Research Laboratory.

I thought this notice was referring to all of SCL, rather than just the build system.


* Have you been able to use SCL with modern EXPRESS schemas?

I beleive so but that would have been work done several years ago.  We have already made quite a number of mods over the past few years since the takeover so best way to find out is to try one.  You have a particular AP in mind besides 11/203/214 files?

Any. All. :)

If we get SCL working, it sounds like a diverse group of organizations will be using it. Apparently someone in ECAD uses SCL internally, and there has been interest in AP242 as well I believe. I'm personally interested in AP224 and AP238, and OCE will want APs related to MCAD (203/214/209(?) ) and possibly others.
 

* What are your future plans for SCL? Have you generated all the code you will ever need, meaning that you won't ever have reason to work on SCL again? Or do you intend to support more or newer STEP APs?

We're definitely not done.  ARL funded the development of an initial working STEP-to-BRL-CAD importer over a year ago.  More work on that importer is going on now and I'm hoping we'll get to an exporter sometime next year.

I'm glad to hear that an open-source CAD is getting funding!

Cliff mentioned several of the SCL dev tasks currently on our radar.  Code modernization, new build system, and portability to Windows being key efforts we need.  Restablishing a new project home is another as we get closer to pushing out an updated SCL release.

These are all things I'd like to see as well. I was even planning on using CMake - so you have saved me quite a bit of effort!

If you are looking for a home for SCL, I suggest GitHub. I can add people to my repo, or they can fork it. And it's quite easy to import a repo or subdirectory from SVN directly into github.

Github's tagline is "Social Coding", and IMO it is very accurate. Github enables people to work together as closely (or independently) as they like. I could ramble on about how much better they are than sourcefrog, but I shan't :)

Almost overnight, I've become a big fan of git. Until several months ago I knew nothing more than SVN and a little CVS. Once Thomas Paviot started the OCE initiative on GitHub, I had to learn git if I wanted to contribute. While the learning curve can be steep, git is far more capable than svn. I've even used it to port, clean up, and split a large patch before committing it via svn.
If the latter, perhaps we can collaborate.

Collaboration sounds fantastic.  I view STEP as our preferred import/export format for BRL-CAD given the breadth of entities it supports.  It is the only open format I'm aware of capable of representing the majority of BRL-CAD entity types and operations.


Great!

I created a mailing list called scl-dev (http://groups.google.com/group/scl-dev). Any and all of you are free to sign up, whether or not we join forces on SCL.
 
Cheers!
Sean

Regards,
Mark
Reply all
Reply to author
Forward
0 new messages