Is this possible with LibreCAD ?

classic Classic list List threaded Threaded
7 messages Options
Reply | Threaded
Open this post in threaded view
|

Is this possible with LibreCAD ?

hcarsten
Hi everybody,
I looking around for a system which might be embbeded into a newly created software I planning and conceptioning for a client. Here CAD is only of the subproblems to be covered. I was checking a bit the docs and the manual and saw that there is a LUA scripting already existing and so partially elements might already exists.
We are going to create a C# version (most probably), but the C++ to C# Wrapper might be existing or could be build by us. Of source we are willing to push back also to the community as long as no patents are touched.

1) The first problem we are targeting is basically to cover a floor with a plates. So definining a "template" plate with a certain size, which is than duplicated to the sides till the walls are touched. The border-plate then have to cutted down. Of course the plates then should be placed edge on edge
No idea how these kind of problems are called in the CAD language but assuming this a kind of filling or collision algorithm been need here. Maybe this would be related to the snaping algos ?

So does LibreCAD offers anything here ? If so is this also accessible from the scripting interface ?

2) As an extra problem we would need the solution for 1) also for a room which is circular but a rectangle !

3) Next we have to working no really in 3D but we have to add extra layers. So there might be fixed installation e.g. of tubes or certain zones with various shapes which have to marked. Also we have in larger setups we might have pillars with will result to a certain "dead-zone" also. Ideally we can place the elements on various layers, so one layer for the pillars, one for the tubes etc.
Here we need finally a way to measure the way between two points, or to the next "dead-zone" on the way. !

So what are our options here ?

4) Finally, and of course this very important, how can be integrated LibreCAD into our system. Perfectly would be a kind of widget or custom control that allows to be scripted and controlled fully externally. So no UI is basically shown in regards to menues, or toolbars.

thanks for your thoughts

Carsten


Reply | Threaded
Open this post in threaded view
|

Re: Is this possible with LibreCAD ?

dxli
hi Carsten,

1) the problem of tiling is commonly supported as "Hatching" in CAD. LibreCAD supports hatching of contours formed by: line, arcs, or elliptic arcs, using patterns or solid fill; We would like to support spline contours as well with a little more work.

2) You don't need any extra work for circular contours, and you can even use elliptic;

3) shapes(called entities in LibreCAD) are children of layers, which supports features you may want to have: hide/show, coloring, etc.;

LibreCAD supports: distance between points, angle between lines (may want to extend this to include angle between curves at intersection), line length (line, arc, elliptic arc, but need to extend to splines), contour area (line,arc, elliptic arc);

4) if your platform has Qt, you may take LibreCAD v2, create a QC_ApplicationWindow widget as a widget instead of an application window, but there's only trivial command line support in v2;

lua scritping is in v3, but v3 doesn't contain enough features yet. We will spend more time to port features from v2 to v3.

Finally, LC v2 is GPLv2 and GPLv2+. We do not own some legacy code, and can not relicense it.

For v3, LibreCAD can relicense it BSD style licenses, when necessary.

Thanks,

hcarsten wrote
Hi everybody,
I looking around for a system which might be embbeded into a newly created software I planning and conceptioning for a client. Here CAD is only of the subproblems to be covered. I was checking a bit the docs and the manual and saw that there is a LUA scripting already existing and so partially elements might already exists.
We are going to create a C# version (most probably), but the C++ to C# Wrapper might be existing or could be build by us. Of source we are willing to push back also to the community as long as no patents are touched.

1) The first problem we are targeting is basically to cover a floor with a plates. So definining a "template" plate with a certain size, which is than duplicated to the sides till the walls are touched. The border-plate then have to cutted down. Of course the plates then should be placed edge on edge
No idea how these kind of problems are called in the CAD language but assuming this a kind of filling or collision algorithm been need here. Maybe this would be related to the snaping algos ?

So does LibreCAD offers anything here ? If so is this also accessible from the scripting interface ?

2) As an extra problem we would need the solution for 1) also for a room which is circular but a rectangle !

3) Next we have to working no really in 3D but we have to add extra layers. So there might be fixed installation e.g. of tubes or certain zones with various shapes which have to marked. Also we have in larger setups we might have pillars with will result to a certain "dead-zone" also. Ideally we can place the elements on various layers, so one layer for the pillars, one for the tubes etc.
Here we need finally a way to measure the way between two points, or to the next "dead-zone" on the way. !

So what are our options here ?

4) Finally, and of course this very important, how can be integrated LibreCAD into our system. Perfectly would be a kind of widget or custom control that allows to be scripted and controlled fully externally. So no UI is basically shown in regards to menues, or toolbars.

thanks for your thoughts

Carsten
Reply | Threaded
Open this post in threaded view
|

Re: Is this possible with LibreCAD ?

ravas
In reply to this post by hcarsten
Someone worked on Python scripting;
however, it has not been touched in years.
https://github.com/LibreCAD/LibreCAD/issues/256#issuecomment-145291168
Reply | Threaded
Open this post in threaded view
|

Re: Is this possible with LibreCAD ?

hcarsten
In reply to this post by dxli
Thanks everybody to the insights here.
Our decision is mostly here to go pro libreCAD !

Actually scripting support is a most for us, so we are thinking about adding it. We are thinking about adding JavaScript, PHP or C# (=dotnet) support currently.

Our first use-case is a Mono-Application (using GTK+) running on Windows / Mac.

You had been talking about v3 / v2 or Version 3 is been production ready when ? Does is make sense to wait for it, so better to go with v2 which is availiable right away? We have to deliver by end of Q1/2016.

best
Reply | Threaded
Open this post in threaded view
|

Re: Is this possible with LibreCAD ?

dxli
currently only v2 is ready for production.

However, v3 might be more suitable for this task. Ries can comment more here, when we have more details.

hcarsten wrote
Thanks everybody to the insights here.
Our decision is mostly here to go pro libreCAD !

Actually scripting support is a most for us, so we are thinking about adding it. We are thinking about adding JavaScript, PHP or C# (=dotnet) support currently.

Our first use-case is a Mono-Application (using GTK+) running on Windows / Mac.

You had been talking about v3 / v2 or Version 3 is been production ready when ? Does is make sense to wait for it, so better to go with v2 which is availiable right away? We have to deliver by end of Q1/2016.

best
Reply | Threaded
Open this post in threaded view
|

Re: Is this possible with LibreCAD ?

hcarsten
The use-case is a 2D measurement of a floor. Think about placing a parquet floor into a room. Anyway in the room there a various disruptions of a straight way. So we have roof pillars but unevennesses on the floor. Basically an operator will create a floor plan first and place disturbances on the floor.

Once done we need to do some kind of algorithm which creates a storyboard. This is describing the way an operator should use to inspect the floor. Certain inregularities e.g. scratches will be marked on the plan later.

So what do you think here ?

best
Reply | Threaded
Open this post in threaded view
|

Re: Is this possible with LibreCAD ?

ravas
I wouldn't use LibreCAD2 unless you are simply going to extend it for your needs;
and it doesn't sound like that's what you will be doing.
It's a C++ / Qt project; therefore, using it with GTK and C# just doesn't make sense to me.
I think trying to understand and working around the system will eat most of your time;
and it would probably still result in a bloated mess.

In theory LibreCAD3 seems much more appropriate.

Of your proposed scripting choices I would go with javascript
due to its pervasiveness.
However, I would recommend python over javascript.
Web programming aside: as an embedded scripting language python is equally pervasive;
and the syntax is vastly superior in my opinion.
It also has a lot more to offer regarding built-in functions and containers.