First off, LibreCad is a good project!
I have been fooling around, testing other similar programs but LibreCad has been working best for me i think!
General drawings works really good!
I have been looking for a plugin for the program that handles Cross-Refrence in a good way.
I have been doing some industrial automation schematics and the result or drawings looks really nice when finished but its a real nightmare keeping track of all the symbol names, contacts, etc.
Also if i start making a schematic for something it would be a good feature to start a "project" instead of a drawing.
A project would hold several pages so instead of adding symbols into a drawing i add them to the project so they could be cross-referenced through the project.
For example. I start a new project and i use my template to all the pages. Every new page of the project
would be auto-named and get its page number.
For a simple schematic i add to the first drawing page a powersupply, a main circuit breaker, power-bus lines, a fuse and an AC to DC powersupply and a fuse for the DC power.
Next page i add a power-bus for the DC voltage from the first page, a switch, a relay, a contact(from the relay) and a signallamp.
So when ever i add a symbol to the project i want to name them. Once they have been named like the relay i could further on add a contact symbol and point it to the relay. This would name it and also give a refrence to where the relay(coil) is page, etc so you can go back in the drawings and check what function makes the relay work and switching its contacts.
This also requires an editor of some sort where you could create a relay, what the coil looks like and input numbers. Also give the relay the right number of contacts and input numbers.
Well i thoght it would be easy to explain this, there is alot to it :)
Keep up the good work!
Of course its possible :)
1, make this a basic feature in engine. Clearly, needs some design first;
2, make a specialized plugin. Since the plugin interface can read from and insert into the document, a plugin can work.
is there any quick and clever way?
I dont know if there is an easy way to implement the functions really. In short terms what is needed
and how this could be structured below.
I have been doing some programming some time ago and i used Qdevelop and i think it could work in a similar way.
These drawings are generally built up like this
p.02-Layout(cabinette, panel layout)
p.03-Symbol declaration, parts list
p.06-External connections going in or out of the panel
Depending on how large the panels are there could be hundreds of pages :)
First we want to create a "Project" that holds everything together in a folder
We choose a template for the drawings
We fill in all the information needed like Creator, Project name, object, description etc
and let the project handler know where these texts will be placed on the drawing template.
Drawing number will be generated automatically for each new drawing
Inside that project we want to create drawing1.
To create a new drawing later on an easy button "create new page" would generate the next drawing.
The new drawing would cointain the information of the project and a new page number automatically.
When we then add a symbol in one of theese drawings we assign a drawing name(for a relaycoil -R1, means realy 1), function name(Relay for external signallamp) etc to it and it will be placed in a refrence list like a block list the refrence to the symbol will also hold page number where it was created and coordinates from the template where on that page its located. In the block list it would be easy to find it and switch to the page where it was created.
For electrical drawings when connecting internal symbols. Lets say to connect a contact to the powerbus you draw a line. That line if you want to is unique and will be assigned a number like 01
on the other side of the contact you draw a line to a coil that line would be assigned 02.
Another way to do this is the line from the powerbus has the same name as the powerbus and the line after
the switch gets the 01 number.
A function for switching between pages/drawings inside the project would be a good thing too.
When the project is finished you could generate a drawing page or the whole project as PDF or print it.
Make a symbol declaration/parts list page from the symbol block list and complete it with manufacturer numbers etc.
So thats the basic of the project idea thing :)
Next object is to have a symbol manager where you can create symbols.
You could use regular symbols from import. But if you want to automate the creation process it would be a good thing to create a symbol in a creator and assign number of connections and where.
If you know the manufacturer layout you could even assign the numbers on the design in the creator.
I guess this could work for other things than electrical drawings aswell?
Of course its possible :)
Your plan seems to very ambitious, but some fundamental concepts are probably missing in LC currently:
1, page. I think we once talked about paperspace and possible support for multiple pages, but the current LC is a single drawing area (conceptually infinite 2D plane);
2, Project. Currently each drawing is independent. Arguably, "blocks" might be treated as sub-projects;
3, templates. There's an "New from template", but the feature is nothing more than loading a drawing for further changes, not specialized template features after the "new" action.
Another thought, whether LC version 3 is better for this type of features. Easier to do everything by scripts, and the cross-reference/projects can be provided as templates.
Yes the plans somewhat ambitious, but its fun with ideas :)
What if a single drawing held the information and the pages was constructed in layers
side by side restricted to A4 papersize distances? you could make a setting for the template and when you want a new page this would create a new layer with the preset template containing your texts.
Symbols would still be handled in the block list?
The only problem that could mess things up would be drawing in the wrong layer.
This could be solved by having different drawing modes. Layer on layer or Layer side by side.
So if you choose to draw on page 1/layer1 you cannot draw somewhere else outside the A4 papersize area of that layer?
Of course its possible :)
Then, join us and make this a fun project!
We need help badly, as you can see: to simply maintain the current features are already overwhelming to small number of developers (5 or so).
Depends on what kind of help you are looking for?
I am no programmer, but i have been programming some. Mostly QT4 on linux, its been a while since.
At the end there i was more into design than function, worked on a simple tool manager program with my own
graphics and it were supposed to handle a SQL database (just started on SQL how to).
Im not sure if i can do any good really!
Of course its possible :)
Right now, all current developers are very busy, on bug fixing, potential GSoC, GUI, and file formats.
Your idea is very interesting, and we should do something about it.
I'm wondering if you are good at design, can we start a design of the system.
How to add another abstraction layer of paperspace, and page structure?
for back references, where do we hold the look up table? On documents, or on page structure, etc.
How to actually use the back references? do we need space characters, like '<>' in dimensions?
As far as there's a sound design with good documentation, there will be some interested developers.
|Free forum by Nabble - Scala forum||Edit this page|