|
Dear all,
I would like to develop a CAD-like GUI for microelectronics.
My first problem is how to design the main screen. Like any software of this kind, you have simply a background where you can put objects. Usually, this background is black or white, it has a grid and you can zoom in/out. (Please check any spice simulator)
Initially, I thought of using some kind of language from Microsoft Visual Studio suite. It allows to do forms, menus, buttons, etc, but it would be slow after adding all the functionalities (I guess).
What's the best programming language and graphical engine to do this?
Appreciate your help.
Best regards,
Pedro
|
|
|
|
|
pcardoso73 wrote: What's the best It depends on your knowledge and experience. Which languages and frameworks do you know, and how much experience do you have working in this field?
|
|
|
|
|
Hi,
Well I am an old guy and have been programming for ages. The language is not really my problem. What I don't know is how to do graphics programming using an engine and which are the languages that will result in a fast piece of software.
Thanks,
Pedro
|
|
|
|
|
|
Thanks for your suggestions.
If I could do everything with Unity and C#, it would be perfect
|
|
|
|
|
Unity, if it is a game. If it is something CAD like Revit or AutoCAD, then it will run fine in WinForms.
Bastard Programmer from Hell
If you can't read my code, try converting it here[^]
"If you just follow the bacon Eddy, wherever it leads you, then you won't have to think about politics." -- Some Bell.
|
|
|
|
|
Hi,
Eddy Vluggen wrote: Unity, if it is a game. If it is something CAD like Revit or AutoCAD, then it will run fine in WinForms.
Honestly, I didn't know about Winforms, it looks great but it is super expensive. I didn't write that, but I would like a free/open-source solution.
I thought of using unity2D with C# as I saw a video of a Microsoft paint like program being made in unity2d. Of course, that's not what I want, but it serves as a starting point.
Cheers,
Pedro
|
|
|
|
|
Ummm... Winforms is "Windows Forms Application", in Visual Studio projects. It's zero cost as it comes with Visual Studio.
|
|
|
|
|
|
pcardoso73 wrote: Honestly, I didn't know about Winforms, it looks great but it is super expensive. It is already present on any modern computer. Its usage is free.
pcardoso73 wrote: I thought of using unity2D with C# as I saw a video of a Microsoft paint like program being made in unity2d. Of course, that's not what I want, but it serves as a starting point. Good starting point for a game
Bastard Programmer from Hell
If you can't read my code, try converting it here[^]
"If you just follow the bacon Eddy, wherever it leads you, then you won't have to think about politics." -- Some Bell.
|
|
|
|
|
pcardoso73 wrote: I would like to develop a CAD-like GUI for microelectronics....but it would be slow after adding all the functionalities (I guess).
If you really mean that then no it is not going to be slow. There are hundreds if not thousands of specialized IDEs that are developed in a variety of languages.
If you want examples in one specific category google for "UML design tools".
Note that if you want to simulate, which is not the same as design, then that has nothing to do with the UI but has to do with creating a simulation engine. That could be slow depending on what you want to do. But that is design/requirements problem not a language problem.
|
|
|
|
|
I just want to do a new graphical interface. All the circuit simulation is done by spice.
|
|
|
|
|
Visio has electrical engineering shape templates: semiconductors; tubes; IC's; etc.
Easier than rolling your own (IMO); can be automated; multiple output formats. License or subscription.
"(I) am amazed to see myself here rather than there ... now rather than then".
― Blaise Pascal
|
|
|
|
|
Gerry Schmitz wrote: Visio has electrical engineering shape templates: semiconductors; tubes; IC's; etc.
Yes, I did my own library with Visio. But then, is it possible to export the symbols to be usable in Unity? That is, the shapes cannot be images.
|
|
|
|
|
You can use "images" in unity. They're just another "asset".
The point is, if you're trying to "model" a circuit, Visio is an option.
Your "requirements" are rather vague as to what you want to "automate" in relation to what you may already have (or not have).
(You had to build 2D circuits in BioShock to get into a safe, for example. Just animated "squares". )
"(I) am amazed to see myself here rather than there ... now rather than then".
― Blaise Pascal
modified 15-Apr-18 14:16pm.
|
|
|
|
|
Hi,
What I want to do is simple (at least in concept ).
I would like to have a background (canvas) where I could draw lines only ( I just need lines), just like in any drawing program, but the lines will be only either horizontal or vertical.
In visio, for example, you can have objects and connect them with lines to their vertices. This is a very important feature to me and that I would like to have.
Based on my requirements I have narrowed down the development to be done either in Visual C# or C++ and Qt.
What do you think ?
Best regards,
Pedro
|
|
|
|
|
I would use C# because I know C# (and WPF).
WPF has a Canvas control for absolute positioning.
WPF can create lines that can be rotated.
Sounds like you're ready to go.
"(I) am amazed to see myself here rather than there ... now rather than then".
― Blaise Pascal
|
|
|
|
|
By the end I guess I will use PyQt since it is cross-platforms.
Many thanks,
Pedro
|
|
|
|
|
C is "cross platform" too; if that's your only criteria.
If there's a compiler / interpreter, it's "cross platform".
"(I) am amazed to see myself here rather than there ... now rather than then".
― Blaise Pascal
|
|
|
|
|
When I design software I like to set it up to be able to work with meaning in code. How do you work with meaning in code? To get the discussion started, here are some definitions for the word 'Meaning' as defined by various organizations:
Meaning Definition 1- Oxford 1
- what is meant by a word, text, concept, or action.
- Cambridge UK1/US2
- The meaning of something is what it expresses or represents.
- Dictionary.com 1
- what is intended to be, or actually is, expressed or indicated; signification; import.
- Wiktionary 1
- The symbolic value of something.
Meaning Definition 2 - Cambridge US1/UK2
- importance or value.
- Free Dictionary 1b
- Something that is conveyed or intended, especially by language; sense or significance.
- Collins BR3
- the inner, symbolic, or true interpretation, value, or message.
- Dictionary.com 2
- the end, purpose, or significance of something.
- Wiktionary 2
- The significance of a thing.
The first group is focused on the simpler definition. The second group is the deeper definition. I am interested in your experiences in dealing with meaning in code for either.
|
|
|
|
|
jonrgrover wrote:
The first group is focused on the simpler definition. The second group is the deeper definition. Semantics. What is meant by a word determines its value.
jonrgrover wrote: I am interested in your experiences in dealing with meaning in code for either. I ignore Cambridge and Oxford, as they are academics.
jonrgrover wrote: How do you work with meaning in code? Code does not explain my intentions, only my actions. It does not convey meaning, it conveys what is happening, and sometimes why I made those decisions.
Comments aren't meant to be a spec; they're meant to explain what the code does.
Bastard Programmer from Hell
If you can't read my code, try converting it here[^]
"If you just follow the bacon Eddy, wherever it leads you, then you won't have to think about politics." -- Some Bell.
|
|
|
|
|
Wow almost 8 years and this is your first post, and what a post it is!
To me the question makes no sense, code is written to achieve a goal/requirement not to have "meaning". When I code I'm focused on 2 things getting the result I am expecting and doing it in the most elegant way I know how.
Never underestimate the power of human stupidity
RAH
|
|
|
|
|
Lewis Carroll said it all: Quote: “Then you should say what you mean,” the March Hare went on.
“I do,” Alice hastily replied; “at least—at least I mean what I say—that’s the same thing, you know.”
“Not the same thing a bit!” said the Hatter. “Why, you might just as well say that ‘I see what I eat’ is the same thing as ‘I eat what I see’!”
“You might just as well say,” added the March Hare, “that ‘I like what I get’ is the same thing as ‘I get what I like’!”
“You might just as well say,” added the Dormouse, which seemed to be talking in his sleep, “that ‘I breathe when I sleep’ is the same thing as ‘I sleep when I breathe’!”
Software rusts. Simon Stephenson, ca 1994. So does this signature. me, 2012
|
|
|
|
|
I get what you "mean".
I've transitioned to using mostly "getters"; instead of coding logic "inline".
e.g. if ( zone.IsRunning ) {}
where IsRunning (for example) is a PROPERTY:
bool IsRunning { get { return this.Status > Zone.Status.Idle && this.Status != Zone.Status.Paused && ... }};
This can be extended to "last", "first", etc. by wrapping SIMPLE queries in a "getter".
The code then takes on the "flavor" of the original "english-like" spec. It then becomes easier to "validate" the two against each other; assuming the spec was reasonably structured to start with.
"(I) am amazed to see myself here rather than there ... now rather than then".
― Blaise Pascal
|
|
|
|
|
I have this problem, but before I tell you the problem I need to tell you what my goal is. I'm building an application where there is a main form(I'm using c# and winforms) and a bunch of mini tool forms that go along with the main one. I understand there are frameworks already like this, but I want to create my own. I would like the tool forms to be able to dock to the main form based off of percentages(unless there are other ideas) so that when you scale the main form the tool windows change with it. The tool forms should also be reshape-able inside the main form, and therefore should have an affect on the other forms in the layout.
Another necessity is that you can save the current "workspace" and load it from a file. So, whichever method I choose has to be able to call a finished loadWorkspaceFromFile(); and saveWorkspaceToFile(); on the main form.
Right now I have all the tool forms as separate forms, and I want to keep it that way. I've messed around with windows tracking other windows in my application, and I think the speed and performance is fine, so I wouldn't want to go to a resize-able panel system.
I know my way around c# I'm just looking for some insight and inspiration on how to go about solving this algorithmic problem. Any help is greatly appreciated. Thanks in advance for your time, Carson
|
|
|
|