qucs / qucs Goto Github PK
View Code? Open in Web Editor NEWQucs Project official mirror
Home Page: http://qucs.sourceforge.net/
License: GNU General Public License v2.0
Qucs Project official mirror
Home Page: http://qucs.sourceforge.net/
License: GNU General Public License v2.0
-- -- README -- -- Copyright (C) 2003, 2005, 2011 Stefan Jahn <[email protected]> -- -- This is free software; you can redistribute it and/or modify -- it under the terms of the GNU General Public License as published by -- the Free Software Foundation; either version 2, or (at your option) -- any later version. -- -- This software is distributed in the hope that it will be useful, -- but WITHOUT ANY WARRANTY; without even the implied warranty of -- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -- GNU General Public License for more details. -- -- You should have received a copy of the GNU General Public License -- along with this package; see the file COPYING. If not, write to -- the Free Software Foundation, Inc., 51 Franklin Street - Fifth Floor, -- Boston, MA 02110-1301, USA. -- Description =========== Qucs is a circuit simulator with graphical user interface. The software aims to support all kinds of circuit simulation types, e.g. DC, AC, S-parameter and harmonic balance analysis. For details see homepage: http://qucs.sourceforge.net Requirements ============ Qucs needs Qt version 4.6 or later. For simplicity, the Qt configuration is currently obtained through pkg-config, which you need to install in addition to Qt. Installation ============ Unpack the distribution tarball: $ tar xvzf qucs-<version>.tar.gz (using GNU tar) $ gzip -cd qucs-<version>.tar.gz | tar xvf - (using another tar) Change into the source directory: $ cd qucs-<version> Configure the source package for your system: $ ./configure Now compile the package: $ make Install Qucs: $ make install You must have root privileges if you want to install the package in the standard location (/usr/local) or in any location that is only writable by root. For further information on installing the package, please consult the file INSTALL included in this distribution. Please note: Users of the FreeBSD OS may use a GNU make (probably gmake) to compile and install the package. Getting the latest Git snapshot =============================== You can always get the latest Qucs version from our Git repository. Please use an official release if you want to work with Qucs. The Git version might not even compile. $ git clone http://git.code.sf.net/p/qucs/git qucs-git Press 'Enter' when asked for a password. Run `sh bootstrap' and `configure' (see above) with the appropriate options. Maintainance currently requires Autoconf version 2.57 and GNU automake 1.7.0.
I just build a windows version to test issue #28 , however I ran into another problem using the full _adder.sch
. https://gist.github.com/guitorri/19d27ae05dda70fd0163
Qucs cannot found simulation script, that is qucsdigi.bat, when starting simulation.
The problem is in dialogs/simmessage.cpp in the function pathName(), it return a empty string.
Here is the code and message I get in pathName();
print code:
const char * lpath = QDir::toNativeSeparators(longpath).ascii();
char spath[2048];
int len = GetShortPathNameA(lpath,spath,sizeof(spath)-1);
spath[len] = '\0';
qDebug("pathName");
qDebug() << "longPath: " << longpath;
qDebug() << "Dir result " << QDir::toNativeSeparators(longpath);
qDebug() << "lpath: " << lpath;
qDebug() << "spath: " << spath;
qDebug() << "len: " << len;
and here is the result:
Debug: pathName
Debug: longPath: "c:qucs-auto/bin/qucsdigi.bat"
Debug: Dir result "c:qucs-auto\bin\qucsdigi.bat"
Debug: lpath: qD
Debug: spath:
Debug: len: 0
Why the lpath cannot print out is maybe the problem of qDebug(). The true problem is that spath become a empty string so that qucs cannot find correct qucsdigi script.
I'm trying to build qucs from git sources with cmake. But it fails when running cmake for qucs-core. Here is my log:
CMake Error at CMakeLists.txt:45 (cmake_policy):
Policy "CMP0048" is not known to this version of CMake.
-- Configuring qucs-core: VERSION 0.0.19
-- Found Git repository, last commit hash: 6d8a7a9
-- Found flex: /usr/bin/flex / Version: 2.5.35
-- Found bison: /usr/bin/bison / Version: 2.7.12-4996
-- Found sed: /bin/sed
-- Found gperf: /usr/bin/gperf
-- Found admsXml: /home/heyyo/Working/ADMS/build/admsXml/admsXml
-- Math lib found at: /usr/lib/x86_64-linux-gnu/libm.so
-- Checking whether system has ANSI C header files
-- ANSI C header files - not found
-- using double type: double; size: 8
-- Checking HAVE_CXX_COMPLEX_ACOS
-- Checking HAVE_CXX_COMPLEX_ACOSH
-- Checking HAVE_CXX_COMPLEX_ASIN
-- Checking HAVE_CXX_COMPLEX_ASINH
-- Checking HAVE_CXX_COMPLEX_ATAN
-- Checking HAVE_CXX_COMPLEX_ATANH
-- Checking HAVE_CXX_COMPLEX_COS
-- Checking HAVE_CXX_COMPLEX_COSH
-- Checking HAVE_CXX_COMPLEX_EXP
-- Checking HAVE_CXX_COMPLEX_LOG
-- Checking HAVE_CXX_COMPLEX_LOG10
-- Checking HAVE_CXX_COMPLEX_SIN
-- Checking HAVE_CXX_COMPLEX_SINH
-- Checking HAVE_CXX_COMPLEX_SQRT
-- Checking HAVE_CXX_COMPLEX_TAN
-- Checking HAVE_CXX_COMPLEX_TANH
-- Checking HAVE_CXX_COMPLEX_LOG2
-- HAVE_CXX_COMPLEX_LOG2 failed
-- Checking HAVE_CXX_COMPLEX_NORM
-- HAVE_CXX_COMPLEX_ATAN2 failed
-- HAVE_CXX_COMPLEX_FMOD failed
-- HAVE_CXX_COMPLEX_POLAR_COMPLEX failed
-- Configuring incomplete, errors occurred!
See also "/home/heyyo/Working/qucs/qucs-core/build/CMakeFiles/CMakeOutput.log".
See also "/home/heyyo/Working/qucs/qucs-core/build/CMakeFiles/CMakeError.log".
My system is Linux Mint Debian.
gcc version: gcc (Debian 4.8.2-1) 4.8.2
cmake version: 2.8.12.1
I have been following instructions from this page, except that I have downloaded the sources from this repository. By the way, I have been able to build GUI.
It does clear the content, but does not delete the directory itself.
There is a crash when attempting to add the first parameter to a new sub-circuit.
Steps to reproduce
0.0.18 crashes on launch under Mac OS X 10.9.4, fwiw. Here's a paste of the crash window, for what it's worth: http://pastebin.com/5cX18SJF
I suspect a recompile may solve the prob., but haven't tried yet.
I have cloned the qucs git repository into a directory called ~/build/qucs/
I have run the bootstrap.sh script and configure with out problems but when I run make I get the following output
make
make all-recursive
make[1]: Entering directory `/home/jesse/build/Qucs_source/qucs/qucs-core'
Making all in adms
make[2]: Entering directory `/home/jesse/build/Qucs_source/qucs/qucs-core/adms'
make all-recursive
make[3]: Entering directory `/home/jesse/build/Qucs_source/qucs/qucs-core/adms'
Making all in scripts
make[4]: Entering directory `/home/jesse/build/Qucs_source/qucs/qucs-core/adms/scripts'
make[4]: Nothing to be done for `all'.
make[4]: Leaving directory `/home/jesse/build/Qucs_source/qucs/qucs-core/adms/scripts'
Making all in images
make[4]: Entering directory `/home/jesse/build/Qucs_source/qucs/qucs-core/adms/images'
make[4]: Nothing to be done for `all'.
make[4]: Leaving directory `/home/jesse/build/Qucs_source/qucs/qucs-core/adms/images'
Making all in admsXml
make[4]: Entering directory `/home/jesse/build/Qucs_source/qucs/qucs-core/adms/admsXml'
make all-am
make[5]: Entering directory `/home/jesse/build/Qucs_source/qucs/qucs-core/adms/admsXml'
/bin/bash ../libtool --tag=CC --mode=compile gcc -DHAVE_CONFIG_H -I. -I.. -DinsideadmstpathYacc -g -O2 -Wall -MT libadmsAdmstpath_la-admstpathYacc.lo -MD -MP -MF .deps/libadmsAdmstpath_la-admstpathYacc.Tpo -c -o libadmsAdmstpath_la-admstpathYacc.lo `test -f 'admstpathYacc.c' || echo './'`admstpathYacc.c
libtool: compile: gcc -DHAVE_CONFIG_H -I. -I.. -DinsideadmstpathYacc -g -O2 -Wall -MT libadmsAdmstpath_la-admstpathYacc.lo -MD -MP -MF .deps/libadmsAdmstpath_la-admstpathYacc.Tpo -c admstpathYacc.c -fPIC -DPIC -o .libs/libadmsAdmstpath_la-admstpathYacc.o
y.tab.c: In function 'admstpathparse':
y.tab.c:14933:7: error: too few arguments to function 'admstpathlex'
./admstpathYacc.y:8:12: note: declared here
static int admstpathlex (p_pparse mypparse);
^
./admstpathYacc.y:13643:43: error: 'mypparse' undeclared (first use in this function)
p_text mytext=adms_text_new(((p_pparse)mypparse)->_transform,"");
^
./admstpathYacc.y:13643:43: note: each undeclared identifier is reported only once for each function it appears in
./admstpathYacc.y: In function 'pparse':
./admstpathYacc.y:14618:5: error: too many arguments to function 'admstpathparse'
admstpathparse (mypparse);
^
y.tab.c:14777:1: note: declared here
./admstpathYacc.y: In function 'tparse':
./admstpathYacc.y:14651:5: error: too many arguments to function 'admstpathparse'
admstpathparse (mypparse);
^
y.tab.c:14777:1: note: declared here
./admstpathYacc.y: In function 'apath_main':
./admstpathYacc.y:14690:5: error: too many arguments to function 'admstpathparse'
admstpathparse (mypparse);
^
y.tab.c:14777:1: note: declared here
make[5]: *** [libadmsAdmstpath_la-admstpathYacc.lo] Error 1
make[5]: Leaving directory `/home/jesse/build/Qucs_source/qucs/qucs-core/adms/admsXml'
make[4]: *** [all] Error 2
make[4]: Leaving directory `/home/jesse/build/Qucs_source/qucs/qucs-core/adms/admsXml'
make[3]: *** [all-recursive] Error 1
make[3]: Leaving directory `/home/jesse/build/Qucs_source/qucs/qucs-core/adms'
make[2]: *** [all] Error 2
make[2]: Leaving directory `/home/jesse/build/Qucs_source/qucs/qucs-core/adms'
make[1]: *** [all-recursive] Error 1
make[1]: Leaving directory `/home/jesse/build/Qucs_source/qucs/qucs-core'
make: *** [all] Error 2
I have installed the dependencies for qucs and ADMS. I have also run the cpan commands in the README. The problem I am having is with qucs-core, qucs compiled and installed just fine.
My system is Xubuntu 14.04 by the way. Any help would be appreciated
Thank you
@ra3xdh has contributed a new application to handle active filters.
See:
An early screenshot can be seen in the pull request #14
What remains to do is to further test it, rebase and merge.
This issue is to track the progress of the merge
@ra3xdh, it would be awesome if you could write a small tutorial (something similar to a blog post that we could add to the Qucs website later on), just to show a bit the features you implemented. Documentation and references are also very much welcome.
Same ticked as in SF: https://sourceforge.net/p/qucs/bugs/157/
Seems related to slotRestToTake
.
Comment this out in diagramdialog.cpp
and the issue is gone. Need to find a proper fix.
connect(GraphInput, SIGNAL(textChanged(const QString&)), SLOT(slotResetToTake(const QString&)));
[ 81%] Building CXX object qucs-core/src/converter/CMakeFiles/qucsconv.dir/qucs_producer.cpp.o
/Users/guitorri/build/qucs-0.0.18-140820-git-df935b6/qucs-core/src/converter/qucs_producer.cpp:502:22: warning: format string is not a string literal
(potentially insecure) [-Wformat-security]
fprintf (qucs_out, txt);
^~~
Now the UIs of qucs are still designed by manual, which is hard work and time wasting. Maybe we can gradually change our UI to UI designer to allow easily modification in the future.
Issue: crash when trying to load a schematic containing a timingdiagram for which the dataset is missing.
Reproduce: see attached files https://gist.github.com/guitorri/c204875db4ae20f89584
With 0.0.18
it loads and empty diagram. If you run with 0.0.18
it fills the diagram with data.
With master
if you try to open the attached .sch
(or delete the dataset vhdl_vector.dat
and open) the schematic with it crashes with (OSX):
Thread 0 Crashed:: Dispatch queue: com.apple.main-thread
0 org.qucs 0x00000001054c363c Q3GList::count() const + 12 (q3glist.h:160)
1 org.qucs 0x000000010590e0f5 Q3PtrList<DataX>::isEmpty() const + 21 (q3ptrlist.h:88)
2 org.qucs 0x000000010592c99a TimingDiagram::calcDiagram() + 3178 (timingdiagram.cpp:171)
3 org.qucs 0x00000001058fb05b Diagram::updateGraphData() + 43 (diagram.cpp:809)
4 org.qucs 0x00000001058f930a Diagram::loadGraphData(QString const&) + 986 (diagram.cpp:771)
5 org.qucs 0x00000001054e0844 Schematic::reloadGraphs() + 212 (schematic.cpp:1275)
Enable users to print schematics to file, from the command line.
Besides other benefits, it is ideal for automating the documentation, test the rendering...
See:
Actions:
Currently it does:
qucs -p -i schematic.sch -o printout.[png, svg, pdf, eps]
Current command line interface:
~/buildarea/qucs-creator $ qucs -h
Usage: qucs [-hv]
qucs -n -i FILENAME -o FILENAME
qucs -p -i FILENAME -o FILENAME.[pdf|png|svg|eps]
-h, --help display this help and exit
-v, --version display version information and exit
-n, --netlist convert Qucs schematic into netlist
-p, --print print Qucs schematic to file (eps needs inskscape)
--page [A4|A3|B4|B5] set print page size (default A4)
--dpi NUMBER set dpi value (default 96)
--color [RGB|RGB] set color mode (default RGB)
--orin [portraid|landscape] set orientation (default portraid)
-i FILENAME use file as input schematic
-o FILENAME use file as output netlist
I'm trying to compile QUCS from github repository according the instructions in the README.md file.
The error that I get seems to me that qrc_qucs.cpp file is not generated accurately during the make process. I still can't understand the issue.
Here is the terminal output of the errors:
g++ -DHAVE_CONFIG_H -I. -I.. -I/usr/include/qt4 -I/usr/include/qt4/Qt -I/usr/include/qt4/QtGui -I/usr/include/qt4/QtCore -I/usr/include/qt4/QtSvg -I/usr/include/qt4/QtXml -I/usr/include/qt4/QtScript -I/usr/include/qt4/Qt3Support -DQT_DEBUG -DQT3_SUPPORT -DQT_THREAD_SUPPORT -D_REENTRANT -I../qucs-lib -g -O2 -pipe -fno-exceptions -W -Wall -O0 -MT octave_window.o -MD -MP -MF .deps/octave_window.Tpo -c -o octave_window.o octave_window.cpp
octave_window.cpp:173:41: warning: unused parameter โobjโ [-Wunused-parameter]
bool OctaveWindow::eventFilter(QObject *obj, QEvent *event) {
^
mv -f .deps/octave_window.Tpo .deps/octave_window.Po
: -o qrc_qucs.cpp qucs.qrc
g++ -DHAVE_CONFIG_H -I. -I.. -I/usr/include/qt4 -I/usr/include/qt4/Qt -I/usr/include/qt4/QtGui -I/usr/include/qt4/QtCore -I/usr/include/qt4/QtSvg -I/usr/include/qt4/QtXml -I/usr/include/qt4/QtScript -I/usr/include/qt4/Qt3Support -DQT_DEBUG -DQT3_SUPPORT -DQT_THREAD_SUPPORT -D_REENTRANT -I../qucs-lib -g -O2 -pipe -fno-exceptions -W -Wall -O0 -MT qrc_qucs.o -MD -MP -MF .deps/qrc_qucs.Tpo -c -o qrc_qucs.o qrc_qucs.cpp
g++: error: qrc_qucs.cpp: No such file or directory
g++: fatal error: no input files
compilation terminated.
Makefile:625: recipe for target 'qrc_qucs.o' failed
make[3]: *** [qrc_qucs.o] Error 1
make[3]: Leaving directory '/home/radoslavb/Home/git/qucs/qucs/qucs'
Makefile:876: recipe for target 'all-recursive' failed
make[2]: *** [all-recursive] Error 1
make[2]: Leaving directory '/home/radoslavb/Home/git/qucs/qucs/qucs'
Makefile:442: recipe for target 'all-recursive' failed
make[1]: *** [all-recursive] Error 1
make[1]: Leaving directory '/home/radoslavb/Home/git/qucs/qucs'
Makefile:382: recipe for target 'all' failed
make: *** [all] Error 2
Using the cmake build process I don't get any errors and QUCS builds.
Can anyone tell me where should I look for this error ?
Now the user has to select one trace and export (either menu or right-mouse button).
Feature:
Related features
When editing a circuit symbol, one may be unable to edit any port properties.
Steps to reproduce:
Expected result:
A dialog pops up, alloing to edit port properties.
Actual result:
Nothing happens.
Recently I tried to do some work on QGraphicsView, I found it extremely difficult. The reason is that qucsapp, schematic, textdoc, and some dialog is linked to each other closely. Move Q3scrollview to QGraphicsView will cause many hard, inefficient work.
My suggestion is that: we first concentrate on some small part refactor, gradually split everything apart. We can create a new branch to do this and merge them into master periodically. Or just keep the master branch, and merge refactor every PR into master.
I will keep this issue to record the refactor works can be done, so anyone wanna help can leave what you are doing now in order to prevent duplicated work with other. Also, any proposal of refactor can be post below, I will add them into the checklist. Also, work already being merged will be removed.
Many work to do, any help is welcome. Instance dungeon need more player
The old issue about Qt3 remove #101 is closed. Merged with this issues:
QucsApp::printCurrentDocument
and slotSaveSchematicToGraphicsFile
should only do 1: create Printer, 2: put file into printer, 3: done. So does main.cppproject manager
and QucsApp. Currently QucsApp handle every function about project. Again not a good design. We need a project manager
class and QucsApp only hold a pointer to these object. The class should have slot to create/open/delete project, also managing files in the project. Function like QucsApp::readProjectFiles
should just a function call to project manager
info
in qucs.cpp, you can find that is a function pointer call to get the component name and component bitmap. I think this kind implementation is not necessary, the name and bitmap can just be a property of the component class, and call a getter to get the name.This is some large goal which cannot be done in one PR, just list here so everyone know what we are doing:
Not conflict with refactor work "theoretically". Usually very hard work in "reality"
Q3PtrList<Painting> SymbolPaints
in SchematicQ3PtrList<Wire>
Q3PtrList<Node>
Q3PtrList<Diagram>
Q3PtrList<DataX>
Q3PtrList<Graph>
Diagrams/graph and Diagrams/diagramdialog:Q3PtrList<Component>
Q3PtrList<Property>
in components/component.hQ3PtrList ElementCache
, #145Q3PtrList<Component>
It wold be great for linux packages maintainers to have possibility of using system adms and asco, not only build-in. And for adms it is critical, qucs with adms support has file conflicts with adms package.
just a quick note and fix; while working on the font size stuff I saw that Qucs crashes in the Edit Component Properties dialog in some cases.
e.g. : place an AC Simulation component (Select Components -> Simulations -> ac simulation), double click it to go to 'Edit Component Properties', select the 'Properties' tab, click on calculate noise voltages
to select yes
, click again to select no
-> Qucs crashes
The problem is in the line
https://github.com/Qucs/qucs/blob/master/qucs/qucs/components/componentdialog.cpp#L629
which should be
if ( row < (prop->rowCount() - 1)) {
Will include this with the font size stuff modifications, hopefully in a few days...
These should be on the binary directory, not source tree.
qucs-core/cmake/test_acos.cpp
qucs-core/cmake/test_acosh.cpp
qucs-core/cmake/test_asin.cpp
qucs-core/cmake/test_asinh.cpp
Add table of contents to http://qucs.sourceforge.net/docs/technical/technical.pdf
Having a space character in the name of the project prevents digital simulation from completing.
The last step fails. When running the created simulation, the simulator
is fine. It can be run from command line and it simulates the circuit
as expected.
Within qucs however, One can not add a truth table, one gets no choice of
signals to add to it.
No warnings or error messages are shown.
However, a file Full that contains the missing truth table will be created.
The issue seems to be fixed if the commands are quoted before calling the qucsdigi
and qucsveri
:
qucsdigi
, qucsveri
on Linux, OSX. #64qucsdigilib
on Linux, OSXRelated to issue
When I clean header files and source files, I found that most file include <QtGui>
, especially that some header file like qucs.h include them. Of course this make all the files easy to compile since most files include qucs.h. Actually in most cpp source files, we don't have to include the Qt header since they are already include in QtGui in qucs.h. However, include a lot of files in header will cause compiler compile slower, which is describe in
http://qt-project.org/forums/viewthread/18766
I think this can be discuss. Should we make a comprehensive check on all the include of Qt headers?
Currently focus on qucs itself, forget other dialog like qucs-rescode.
Progress checklist, started on commit cc8e360:
priority from top to down:
Top Directory Header File (they hide undefined error most):
Subdirectory Header File:
Source file, I think it depends. Since some source file may use A LOT OF Qt classes, like qucs.cpp, include them one by one will create a extremely long include section. I think this case include QtGui is optional.
Top Directory Source File:
Subdirectory Source Files:
After many works, qucs only left some part qt3 components need to remove (about 150 lines). Most of them are Q3Ptrlist<T>
, Q3ValueList<T>
and one is Q3ScrollView
.
There are some branches (contributed by guitorri, fransschreuder and ClemensFMN), which tried to remove them about one years ago, but didn't merge into master branch. I think it's time to take them out and merge them now.
These branches are:
These branches are a little too old, I don't think merge them now is a good idea. I suggest that everyone can examine the commits in these branch, apply modification, make it clean, and resend pull request.
I list all the work we have to do here, so everyone can check the progress.
Tips:
Everyone can get the patches of these all branch by the following command, then using these patches as the basis to modify.
git checkout origin/branchname
git format-patch $(git merge-base HEAD master)
These two are most important I think, since their implement will affect how wire, node, element implementation. I think this got highest priority.
Some work that might block by Schematic:
Q3PtrList<Wire>
Q3PtrList<Node>
Q3PtrList<Diagram>
Q3PtrList<DataX>
Q3PtrList<Graph>
Diagrams/graph and Diagrams/diagramdialog:Q3PtrList<Component>
Q3PtrList<Property>
in components/component.hQ3PtrList ElementCache
Q3PtrList<Component>
.....and many other, I'm not quite sure how to split them into pieces.
Some work that is not relative to schematic change, AKA, we can work on them now.
Q3PtrList<Painting> SymbolPaints
in SchematicQ3PtrList<QString> UndoStack
and UndoSymbol
in Schematic.Q3PtrList
Dialogs/sweepdialog: Though this dialog seems unused now... ?Q3PtrList<QString>
module: Categories:Q3PtrList<QString>
HierarchyHistory in qucsQ3PtrList<subparameter>
in painting/id_textQ3ValueList<DigiSignal>
in schematic_fileI think the alternative to Q3PtrList will be QList mostly. However, keep in mind that Q3PtrList automatically recycle dynamic allocated memory while QList doesn't.
Any suggestion?
The dynamic loader works based that the .va
file and the module
it contains have the same name.
Could check and warn the user.
I just rebase my master to the newest commit:
When I try to compile qucs-core, I first type
$ ./bootstrap.sh
but it shows me:
Could not locate adms autogen script in ./adms, you may use configure with --disable-adms to use installed version
Any reason why?
Whenever there is a Diagram placed on the schematic, mouse actions like dragging components and insert components, the mouse cursor decoration gets drawn on top of the Diagram. Only show up on Mac, not visible on Linux, might be related to use of deprecated stuff.
It uses the transformed coordinates of the Diagram, the wrong paintis are also rotated as the code below
Bug is related to these lines of code:
https://github.com/Qucs/qucs/blob/master/qucs/qucs/diagrams/diagram.cpp#L107-119
Note that setWorldMatrix
and setWorldXForm
are deprecated.
I found that if you magnify to a simulation component (dc, ac...), and moves it.
The scheme it paint will still very large.
Maybe because scheme is painted by Schematic->postpaintEvent but viewpainter?
I didn't figure out this yet.
Related to #69.
To make pushbutton with background color work on Mac OS and Windows (even some Linux), I use stylesheet to fill the color in pushbutton. However, this destroy the size of pushbutton and layout, as shown in the photo below.
https://cloud.githubusercontent.com/assets/1388949/4800913/371ce0b6-5e2b-11e4-9086-0532201287d8.png
The code in #135 could be applied to:
I am trying to simulate simple LCR-circuit. For Qucs0.0.17 all works fine. Qucs0.0.18 has very strange behavior. Schematic under simulation is here:
If DC voltage is 12 V, simualtion results are incorrect. Pr1.Vt voltage always is zero. You cannot obtain voltage waveform. If transient simulation stop time is 20ms, simulation process hangs. Here is voltage waveform plot:
If we set less V1 voltage value (for example 5V), simulation works properly. Voltage waveform is damped oscillations. Here is circuit and waveform plot.
Qucs schematic file is attached:
https://gist.github.com/ra3xdh/9df9d0694d9a4ca6a954/download
So, simulation results are dependent from voltage value even for simple LCR-circuit. What reasons can cause this strange behavior?
The Edit Diagram Propetires (double click any diagram) has a color picker. It should be updated with the assigned color of the selected trace. Mac and Windows.
Replace the headers and method that depend on Qt3Support.
Ex. Q3HBox -> QHBoxLayout...
Version: Qucs 0.0.18 official windows build.
How to reproduce:
Observed outcome: syntax error in netlist
line 12: checker error, subcircuit type
Bridges_KBPC1005' requires 4 nodes in Sub:_net0', found 3
Netlist:
# Qucs 0.0.18 C:/Users/Gyorgy Szekely/.qucs/zxcfjksdn_prj/xdfgf.sch
.Def:Bridges_KBPC1005 _net0 _net1 _net2 _net3
Diode:D1 _net0 _net1 Is="9.2e-9" N="1.75" Rs="42e-3" Cj0="124e-12" Vj="0.75" M="0.333" Fc="0.5" Tt="4.32e-6" Bv="50" Ibv="18e-6" Af="1" Kf="0"
Diode:D2 _net2 _net1 Is="9.2e-9" N="1.75" Rs="42e-3" Cj0="124e-12" Vj="0.75" M="0.333" Fc="0.5" Tt="4.32e-6" Bv="50" Ibv="18e-6" Af="1" Kf="0"
Diode:D3 _net3 _net2 Is="9.2e-9" N="1.75" Rs="42e-3" Cj0="124e-12" Vj="0.75" M="0.333" Fc="0.5" Tt="4.32e-6" Bv="50" Ibv="18e-6" Af="1" Kf="0"
Diode:D4 _net3 _net0 Is="9.2e-9" N="1.75" Rs="42e-3" Cj0="124e-12" Vj="0.75" M="0.333" Fc="0.5" Tt="4.32e-6" Bv="50" Ibv="18e-6" Af="1" Kf="0"
.Def:End
Sub: _net0 _net1 _net2 _net3 Type="Bridges_KBPC1005"
Note the missing subnet name!
Workaround:
The netlist is correct in this case:
# Qucs 0.0.18 C:/Users/Gyorgy Szekely/.qucs/zxcfjksdn_prj/xdfgf.sch
.Def:Bridges_KBPC1005 _net0 _net1 _net2 _net3
Diode:D1 _net0 _net1 Is="9.2e-9" N="1.75" Rs="42e-3" Cj0="124e-12" Vj="0.75" M="0.333" Fc="0.5" Tt="4.32e-6" Bv="50" Ibv="18e-6" Af="1" Kf="0"
Diode:D2 _net2 _net1 Is="9.2e-9" N="1.75" Rs="42e-3" Cj0="124e-12" Vj="0.75" M="0.333" Fc="0.5" Tt="4.32e-6" Bv="50" Ibv="18e-6" Af="1" Kf="0"
Diode:D3 _net3 _net2 Is="9.2e-9" N="1.75" Rs="42e-3" Cj0="124e-12" Vj="0.75" M="0.333" Fc="0.5" Tt="4.32e-6" Bv="50" Ibv="18e-6" Af="1" Kf="0"
Diode:D4 _net3 _net0 Is="9.2e-9" N="1.75" Rs="42e-3" Cj0="124e-12" Vj="0.75" M="0.333" Fc="0.5" Tt="4.32e-6" Bv="50" Ibv="18e-6" Af="1" Kf="0"
.Def:End
Sub:D1 _net0 _net1 _net2 _net3 Type="Bridges_KBPC1005"
Doing a zoom in by one mouse click works fine. If one tries to do a zoom in box with the mouse the zoomed region is not the same as the selected by the box.
Clicking Apply in the Edit Component Properties dialog for an S param. sim. (and other sims.) leads to duplication of the Type, Start, Stop, and Points parameters. If this dialog is then re-opened the Properties tab now includes Type, Start, Stop, and Count. It now omits NoiseOP, saveCVs, and saveAll. Duplicate properties appear under the symbol as well.
I had a look at componentdialog.cpp, but can't figure out where the issue is.
Steps to reproduce.
The list of parameters under the block should now show duplicate entries.
I'm change QucsSettings to a singleton setting class. Here are some weird properties I found during porting:
to be added lol
There may be way to overcome #34 and #41.
I started implementation of spice4qucs
extension. This extension allows you to switch between qucsator
simulation kernel and ngspice
simulation kernel. You can simulate your Qucs circuits with ngspice
using this extension. I am planning to add menu entry Simulation->Simulate with spice
. Spice simulation will be available after execution of this menu. Spice simulation results will be converted to Qucs simulation data and diagrams will be available from the display page. With spice4qucs you can use good old spice to simulate Qucs circuits with it.
You can see current state of work at https://github.com/ra3xdh/qucs/tree/spice4qucs
Now implemented only conversion of the Qucs circuit to Spice netlist.
Not all components conversion is implemented. The list of spice-compatible components:
The list of supported simulations:
Sample schematic is available here: https://gist.github.com/ra3xdh/6c554e32e531c25e6e6b
To test spice4qucs
open this schematic with Qucs, then execute Simulation->Simulate with spice
. Spice netlist is located at $HOME/.qucs/spice4qucs.cir
. Now switch to system terminal and execute ngspice
:
ngspice $HOME/.qucs/spice4qucs.cir
Then run simulation and see waveforms:
run
plot v(drain)
The simulation fails for this schematic with Qucs, but ngspice simulates it correctly.
Have you any suggestions? Should I continue work in this direction?
My current task list:
need to have a lock mechanism on the project when opening a project to prevent some modification by others ... I've wrote a small tool for that, but where to place it ?
Thierry.
I have installed qucs from the official site (qucs-0.0.18-OSX10.7+.pkg, using OS X 10.10.0 Yosemite). Here are the bugs and remarks of this installation:
Bugs:
Features/Nice to have:
Best regards!
During preparing rpm packages for openSUSE I got next errors (our build system detects this warnings as build failure):
[ 944s] ... testing for serious compiler warnings
[ 944s] (using /usr/lib/build/checks-data/check_gcc_output)
[ 944s] (using //.build.log)
[ 944s]
[ 944s] I: Program causes undefined operation
[ 944s] (likely same variable used twiceand post/pre incremented in the same expression).
[ 944s] e.g. x = x++; Split it in two operations.
[ 944s] W: qucs sequence-point tridiag.cpp:246
[ 944s]
[ 944s] I: Program is likely to break with new gcc. Try -fno-strict-aliasing.
[ 944s] W: qucs strict-aliasing-punning matlab_producer.cpp:50
[ 944s]
[ 944s] I: Program returns random data in a function
[ 944s] E: qucs no-return-in-nonvoid-function exportdialog.cpp:341
This is related to PR #87 and bug 170 on SF.
The components text size (Name, Value, Properties, etc.) is often computed using the size of QucsSettings.font
, as in https://github.com/Qucs/qucs/blob/master/qucs/qucs/components/component.cpp#L514 , but this is not necessarily (almost always not, I think) the actual font used by the painter. As an example, the QucsSettings.font
on my system is Helvetica 12
, but the font actually used for the components text is Nimbus Sans L 16
; as far as I understood this is because
Things seems relatively simple up to now, but if an unusual font which has not a close substitution or a weird display resolution is declared the actual absolute font size is not directly proportional to the display DPI.
The right solution will be to let the painter compute the actual font size, but to do this in a straightforward manner every component should belong to a schematic when asked to compute its text size, but this is not always the case, e.g. during the modules registration at startup, https://github.com/Qucs/qucs/blob/master/qucs/qucs/main.cpp#L639 . This can be worked around, but I wonder if there is a better way/place to compute the components text size.
See:
https://github.com/Qucs/qucs/blob/master/qucs-core/src/components/mutualx.h
https://github.com/Qucs/qucs/blob/master/qucs-core/src/components/mutualx.cpp
This component is documented on the technical manual, but not available on the Qucs GUI.
If a new text file is saved as .va
(maybe also on other formats), the syntax highlight is not activated. User needs to close and open again for the highlight.
With this simple circuit qucsator
segfaults (and qucs
does not even realize that, see #132 ); when the noise analysis is disabled simulation works fine.
Schematic file is available at https://gist.github.com/in3otd/b90e9f9b658d4e1db290/download
Edit: works in 0.0.17 but not in 0.0.18 or later
I have a circuit which makes qucsator
crash (with Segmentation fault (core dumped)
, see #133 ) but Qucs does not seem to realize that it crashed and just shows the data display page, with no errors or warnings. Even the Show last messages
window does not contain any hint that qucsator
crashed. On Windows7 there is a system message telling qucsator.exe has stopped working
, but on Linux nothing is shown.
I am currently looking at this, it seems that exitCode
from the QProcess::finished
signal is always zero when its exitStatus
is QProcess::CrashExit
, strange...
Add more information to the qucsconv -h
. Current output is incomplete:
$ qucsconv -h
Usage: qucsconv [OPTION]...
-h, --help display this help and exit
-v, --version display version information and exit
-i FILENAME use file as input file (default stdin)
-o FILENAME use file as output file (default stdout)
-if FORMAT input data specification (e.g. spice)
-of FORMAT output data specification (e.g. qucs)
-a, --noaction do not include netlist actions in the output
-g GNDNODE replace ground node
-d DATANAME data variable specification
-c, --correct enable node correction
See available converters:
https://github.com/Qucs/qucs/blob/master/qucs-core/src/converter/qucsconv.cpp#L76-L90
/* conversion definitions */
struct actionset_t actionset[] = {
{ "spice", "qucs", spice2qucs },
{ "spice", "qucslib", spice2qucs },
{ "vcd", "qucsdata", vcd2qucs },
{ "qucsdata", "csv", qucs2csv },
{ "qucsdata", "touchstone", qucs2touch },
{ "citi", "qucsdata", citi2qucs },
{ "touchstone", "qucsdata", touch2qucs },
{ "csv", "qucsdata", csv2qucs },
{ "zvr", "qucsdata", zvr2qucs },
{ "mdl", "qucsdata", mdl2qucs },
{ "qucsdata", "matlab", qucs2mat },
{ NULL, NULL, NULL}
};
There is a bug on the OpAmp from the Ideal library. See https://sourceforge.net/p/qucs/discussion/311050/thread/cccc70a5/
In the netlist line 5 it complains about the following:
R:R1 _net1 _net3 R="1E3/sqrt(2*pi*fg)" Temp="26.85" Tc1="0.0" Tc2="0.0" Tnom="26.85"
line 5: syntax error, unrecognized character: `/'
line 5: syntax error, unexpected InvalidCharacter, expecting '"'
It declares a resistor which value is defined with an expression. This does not seem to be allowed by the parser. Other devices on the library use a Equ to precompute the values of components.
This error happen when drag component DC simulation into schematic. qucs will crash immediately.
Other component like resistor has no such problem.
The seg fault is happen in Qt3List.
I found there are a lot of files still using q3textstream and q3textedit inside qucs-filter-v2.
However, this dialog seems not used in qucs yet, so it may not so urgent to modify this.
If you Calculate DC bias
the calculated node voltages are plotted on the schematic. However if you try to Export as image
the annotated values are not in the figure.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.