mirror of
https://github.com/ra3xdh/qucs_s
synced 2025-03-28 21:13:26 +00:00
*** empty log message ***
This commit is contained in:
parent
458fc06b97
commit
1be4fa87c7
@ -1,3 +1,9 @@
|
||||
2005-05-01 Michael Margraf <michael.margraf@alumni.tu-berlin.de>
|
||||
|
||||
* fixed floating point error in tabular diagram
|
||||
* fixed some bugs in 3D cartesian
|
||||
* new components: coplanar open and short
|
||||
|
||||
2005-04-23 Michael Margraf <michael.margraf@alumni.tu-berlin.de>
|
||||
|
||||
* edit component properties directly on the schematic
|
||||
|
@ -36,7 +36,8 @@ XPMS = ac_voltage.xpm arrow.xpm capacitor.xpm dc_current.xpm dc_voltage.xpm \
|
||||
nfet.xpm pfet.xpm nmosfet.xpm pmosfet.xpm dmosfet.xpm msgap.xpm npnsub.xpm \
|
||||
pnpsub.xpm dmosfet_sub.xpm nmosfet_sub.xpm pmosfet_sub.xpm ellipsearc.xpm \
|
||||
vpulse.xpm ipulse.xpm vrect.xpm irect.xpm msvia.xpm amplifier.xpm opamp.xpm \
|
||||
ysmith.xpm smithpolar.xpm polarsmith.xpm spicefile.xpm rect3d.xpm curve.xpm
|
||||
ysmith.xpm smithpolar.xpm polarsmith.xpm spicefile.xpm rect3d.xpm curve.xpm \
|
||||
cpwopen.xpm cpwshort.xpm
|
||||
|
||||
PNGS = fileopen.png filesave.png editdelete.png editcut.png editcopy.png \
|
||||
deactiv.png bottom.png editpaste.png equation.png fileclose.png \
|
||||
|
39
qucs/bitmaps/cpwopen.xpm
Normal file
39
qucs/bitmaps/cpwopen.xpm
Normal file
@ -0,0 +1,39 @@
|
||||
/* XPM */
|
||||
static char *cpwopen[]={
|
||||
"32 32 4 1",
|
||||
". c None",
|
||||
"a c None",
|
||||
"# c #000000",
|
||||
"b c #ff0000",
|
||||
"................................",
|
||||
"................................",
|
||||
"................................",
|
||||
"....#....#....#....#....#....#..",
|
||||
".....#....#....#....#....#....#.",
|
||||
"......#....#....#....#....#.....",
|
||||
".......#....#....#....#....#....",
|
||||
"........#....#....#....#....#...",
|
||||
"....########################.#..",
|
||||
"...........................#..#.",
|
||||
"..........................#.....",
|
||||
"..........................##....",
|
||||
"..........###########....#..#...",
|
||||
"..........#.........#....#...#..",
|
||||
".........#.........#....##....#.",
|
||||
".aba.....#.........#....#.#.aa..",
|
||||
"abab#####.........#....#...#aaa.",
|
||||
".aba....#.........#....#....#a..",
|
||||
".......#.........#....#.#....#..",
|
||||
".......#.........#....#..#....#.",
|
||||
".......##########....#....#.....",
|
||||
".....................##....#....",
|
||||
"....................#..#....#...",
|
||||
"....................#...#....#..",
|
||||
"....#################....#....#.",
|
||||
"......#....#....#....#....#.....",
|
||||
".......#....#....#....#....#....",
|
||||
"........#....#....#....#....#...",
|
||||
"....#....#....#....#....#....#..",
|
||||
".....#....#....#....#....#....#.",
|
||||
"................................",
|
||||
"................................"};
|
39
qucs/bitmaps/cpwshort.xpm
Normal file
39
qucs/bitmaps/cpwshort.xpm
Normal file
@ -0,0 +1,39 @@
|
||||
/* XPM */
|
||||
static char *cpwshort[]={
|
||||
"32 32 4 1",
|
||||
". c None",
|
||||
"a c None",
|
||||
"# c #000000",
|
||||
"b c #ff0000",
|
||||
"................................",
|
||||
"................................",
|
||||
"................................",
|
||||
"....#....#....#....#....#....#..",
|
||||
".....#....#....#....#....#....#.",
|
||||
"......#....#....#....#....#.....",
|
||||
".......#....#....#....#....#....",
|
||||
"........#....#....#....#....#...",
|
||||
"....################....#....#..",
|
||||
"...................##....#....#.",
|
||||
"...................#.#....#.....",
|
||||
"...................#..#....#....",
|
||||
"..........##########...#....#...",
|
||||
"..........#.............#....#..",
|
||||
".........#..........#....#....#.",
|
||||
".aba.....#...........#....#.aa..",
|
||||
"abab#####.............#....#aaa.",
|
||||
".aba....#..............#....#a..",
|
||||
".......#................#....#..",
|
||||
".......#............#....#....#.",
|
||||
".......#############.#....#.....",
|
||||
"...................#..#....#....",
|
||||
"...................#...#....#...",
|
||||
"...................#....#....#..",
|
||||
"....#################....#....#.",
|
||||
"......#....#....#....#....#.....",
|
||||
".......#....#....#....#....#....",
|
||||
"........#....#....#....#....#...",
|
||||
"....#....#....#....#....#....#..",
|
||||
".....#....#....#....#....#....#.",
|
||||
"................................",
|
||||
"................................"};
|
@ -38,7 +38,8 @@ libcomponents_a_SOURCES = phaseshifter.cpp gyrator.cpp componentdialog.cpp \
|
||||
component.cpp resistor.cpp iprobe.cpp volt_noise.cpp ampere_noise.cpp \
|
||||
msmbend.cpp msopen.cpp ampere_ac.cpp bjt.cpp jfet.cpp mosfet.cpp \
|
||||
msgap.cpp bjtsub.cpp mosfet_sub.cpp vpulse.cpp ipulse.cpp vrect.cpp \
|
||||
irect.cpp msvia.cpp amplifier.cpp opamp.cpp spicefile.cpp
|
||||
irect.cpp msvia.cpp amplifier.cpp opamp.cpp spicefile.cpp cpwopen.cpp \
|
||||
cpwshort.cpp
|
||||
|
||||
nodist_libcomponents_a_SOURCES = $(MOCFILES)
|
||||
|
||||
@ -51,7 +52,7 @@ noinst_HEADERS = $(MOCHEADERS) resistor.h components.h capacitor.h vccs.h \
|
||||
tline.h tr_sim.h component.h vcvs.h gyrator.h phaseshifter.h \
|
||||
iprobe.h volt_noise.h ampere_noise.h msmbend.h msopen.h ampere_ac.h bjt.h \
|
||||
jfet.h mosfet.h msgap.h bjtsub.h mosfet_sub.h vpulse.h ipulse.h vrect.h \
|
||||
irect.h msvia.h amplifier.h opamp.h spicefile.h
|
||||
irect.h msvia.h amplifier.h opamp.h spicefile.h cpwopen.h cpwshort.h
|
||||
|
||||
INCLUDES = $(X11_INCLUDES) $(QT_INCLUDES) -I$(top_srcdir)/qucs
|
||||
|
||||
|
@ -51,6 +51,11 @@ BiasT::BiasT()
|
||||
ty = y2+4;
|
||||
Model = "BiasT";
|
||||
Name = "X";
|
||||
|
||||
Props.append(new Property("L", "1 uH", false,
|
||||
QObject::tr("for transient simulation: inductance in Henry")));
|
||||
Props.append(new Property("C", "1 uF", false,
|
||||
QObject::tr("for transient simulation: capacitance in Farad")));
|
||||
}
|
||||
|
||||
BiasT::~BiasT()
|
||||
|
@ -762,6 +762,8 @@ Component* getComponentFromName(QString& Line)
|
||||
else if(cstr == "CVS") c = new CCVS();
|
||||
else if(cstr == "irculator") c = new Circulator();
|
||||
else if(cstr == "LIN") c = new Coplanar();
|
||||
else if(cstr == "OPEN") c = new CPWopen();
|
||||
else if(cstr == "SHORT") c = new CPWshort();
|
||||
break;
|
||||
case 'L' : if(cstr.isEmpty()) c = new Inductor();
|
||||
break;
|
||||
|
@ -64,6 +64,8 @@
|
||||
#include "msgap.h"
|
||||
#include "msvia.h"
|
||||
#include "coplanar.h"
|
||||
#include "cpwopen.h"
|
||||
#include "cpwshort.h"
|
||||
#include "diode.h"
|
||||
#include "bjt.h"
|
||||
#include "bjtsub.h"
|
||||
|
91
qucs/components/cpwopen.cpp
Normal file
91
qucs/components/cpwopen.cpp
Normal file
@ -0,0 +1,91 @@
|
||||
/***************************************************************************
|
||||
cpwopen.cpp
|
||||
---------------
|
||||
begin : Sun May 01 2005
|
||||
copyright : (C) 2005 by Michael Margraf
|
||||
email : michael.margraf@alumni.tu-berlin.de
|
||||
***************************************************************************/
|
||||
|
||||
/***************************************************************************
|
||||
* *
|
||||
* This program 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 of the License, or *
|
||||
* (at your option) any later version. *
|
||||
* *
|
||||
***************************************************************************/
|
||||
|
||||
#include "cpwopen.h"
|
||||
|
||||
|
||||
CPWopen::CPWopen()
|
||||
{
|
||||
Description = QObject::tr("coplanar open");
|
||||
|
||||
Lines.append(new Line(-30, 0,-18, 0,QPen(QPen::darkBlue,2)));
|
||||
Lines.append(new Line(-13, -8, 0, -8,QPen(QPen::darkBlue,2)));
|
||||
Lines.append(new Line(-23, 8,-10, 8,QPen(QPen::darkBlue,2)));
|
||||
Lines.append(new Line(-13, -8,-23, 8,QPen(QPen::darkBlue,2)));
|
||||
Lines.append(new Line( 0, -8,-10, 8,QPen(QPen::darkBlue,2)));
|
||||
|
||||
Lines.append(new Line(-25,-13, 11,-13,QPen(QPen::darkBlue,2)));
|
||||
Lines.append(new Line(-25, 13, -5, 13,QPen(QPen::darkBlue,2)));
|
||||
Lines.append(new Line( 11,-13, -5, 13,QPen(QPen::darkBlue,2)));
|
||||
|
||||
Lines.append(new Line(-24,-21,-16,-13,QPen(QPen::darkBlue,2)));
|
||||
Lines.append(new Line(-16,-21, -8,-13,QPen(QPen::darkBlue,2)));
|
||||
Lines.append(new Line( -8,-21, 0,-13,QPen(QPen::darkBlue,2)));
|
||||
Lines.append(new Line( 0,-21, 8,-13,QPen(QPen::darkBlue,2)));
|
||||
Lines.append(new Line( 8,-21, 15,-14,QPen(QPen::darkBlue,2)));
|
||||
|
||||
Lines.append(new Line( 10,-11, 15, -6,QPen(QPen::darkBlue,2)));
|
||||
Lines.append(new Line( 7, -6, 15, 2,QPen(QPen::darkBlue,2)));
|
||||
Lines.append(new Line( 4, -1, 15, 10,QPen(QPen::darkBlue,2)));
|
||||
Lines.append(new Line( 1, 4, 15, 18,QPen(QPen::darkBlue,2)));
|
||||
|
||||
Lines.append(new Line(-25, 18,-22, 21,QPen(QPen::darkBlue,2)));
|
||||
Lines.append(new Line(-22, 13,-14, 21,QPen(QPen::darkBlue,2)));
|
||||
Lines.append(new Line(-14, 13, -6, 21,QPen(QPen::darkBlue,2)));
|
||||
Lines.append(new Line( -6, 13, 2, 21,QPen(QPen::darkBlue,2)));
|
||||
Lines.append(new Line( -2, 9, 10, 21,QPen(QPen::darkBlue,2)));
|
||||
|
||||
Ports.append(new Port(-30, 0));
|
||||
|
||||
x1 = -30; y1 =-24;
|
||||
x2 = 17; y2 = 24;
|
||||
|
||||
tx = x1+4;
|
||||
ty = y2+4;
|
||||
Model = "COPEN";
|
||||
Name = "CL";
|
||||
|
||||
Props.append(new Property("Subst", "Subst1", true,
|
||||
QObject::tr("name of substrate definition")));
|
||||
Props.append(new Property("W", "1 mm", true,
|
||||
QObject::tr("width of the line")));
|
||||
Props.append(new Property("S", "1 mm", true,
|
||||
QObject::tr("width of a gap")));
|
||||
Props.append(new Property("G", "1 mm", true,
|
||||
QObject::tr("width of gap at end of line")));
|
||||
Props.append(new Property("Backside", "Air", false,
|
||||
QObject::tr("material at the backside of the substrate")+
|
||||
" [Metal, Air]"));
|
||||
}
|
||||
|
||||
CPWopen::~CPWopen()
|
||||
{
|
||||
}
|
||||
|
||||
Component* CPWopen::newOne()
|
||||
{
|
||||
return new CPWopen();
|
||||
}
|
||||
|
||||
Component* CPWopen::info(QString& Name, char* &BitmapFile, bool getNewOne)
|
||||
{
|
||||
Name = QObject::tr("Coplanar Open");
|
||||
BitmapFile = "cpwopen";
|
||||
|
||||
if(getNewOne) return new CPWopen();
|
||||
return 0;
|
||||
}
|
32
qucs/components/cpwopen.h
Normal file
32
qucs/components/cpwopen.h
Normal file
@ -0,0 +1,32 @@
|
||||
/***************************************************************************
|
||||
cpwopen.h
|
||||
-------------
|
||||
begin : Sun May 01 2005
|
||||
copyright : (C) 2005 by Michael Margraf
|
||||
email : michael.margraf@alumni.tu-berlin.de
|
||||
***************************************************************************/
|
||||
|
||||
/***************************************************************************
|
||||
* *
|
||||
* This program 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 of the License, or *
|
||||
* (at your option) any later version. *
|
||||
* *
|
||||
***************************************************************************/
|
||||
|
||||
#ifndef CPWOPEN_H
|
||||
#define CPWOPEN_H
|
||||
|
||||
#include "component.h"
|
||||
|
||||
|
||||
class CPWopen : public Component {
|
||||
public:
|
||||
CPWopen();
|
||||
~CPWopen();
|
||||
Component* newOne();
|
||||
static Component* info(QString&, char* &, bool getNewOne=false);
|
||||
};
|
||||
|
||||
#endif
|
88
qucs/components/cpwshort.cpp
Normal file
88
qucs/components/cpwshort.cpp
Normal file
@ -0,0 +1,88 @@
|
||||
/***************************************************************************
|
||||
cpwshort.cpp
|
||||
----------------
|
||||
begin : Sun May 01 2005
|
||||
copyright : (C) 2005 by Michael Margraf
|
||||
email : michael.margraf@alumni.tu-berlin.de
|
||||
***************************************************************************/
|
||||
|
||||
/***************************************************************************
|
||||
* *
|
||||
* This program 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 of the License, or *
|
||||
* (at your option) any later version. *
|
||||
* *
|
||||
***************************************************************************/
|
||||
|
||||
#include "cpwshort.h"
|
||||
|
||||
|
||||
CPWshort::CPWshort()
|
||||
{
|
||||
Description = QObject::tr("coplanar short");
|
||||
|
||||
Lines.append(new Line(-30, 0,-18, 0,QPen(QPen::darkBlue,2)));
|
||||
Lines.append(new Line(-13, -8, 3, -8,QPen(QPen::darkBlue,2)));
|
||||
Lines.append(new Line(-23, 8, -7, 8,QPen(QPen::darkBlue,2)));
|
||||
Lines.append(new Line(-13, -8,-23, 8,QPen(QPen::darkBlue,2)));
|
||||
|
||||
Lines.append(new Line(-25,-13, 6,-13,QPen(QPen::darkBlue,2)));
|
||||
Lines.append(new Line(-25, 13,-10, 13,QPen(QPen::darkBlue,2)));
|
||||
Lines.append(new Line( 6,-13, 3, -8,QPen(QPen::darkBlue,2)));
|
||||
Lines.append(new Line( -7, 8,-10, 13,QPen(QPen::darkBlue,2)));
|
||||
|
||||
Lines.append(new Line(-24,-21,-16,-13,QPen(QPen::darkBlue,2)));
|
||||
Lines.append(new Line(-16,-21, -8,-13,QPen(QPen::darkBlue,2)));
|
||||
Lines.append(new Line( -8,-21, 0,-13,QPen(QPen::darkBlue,2)));
|
||||
Lines.append(new Line( 0,-21, 12, -9,QPen(QPen::darkBlue,2)));
|
||||
Lines.append(new Line( 8,-21, 12,-17,QPen(QPen::darkBlue,2)));
|
||||
|
||||
Lines.append(new Line( 4, -9, 12, -1,QPen(QPen::darkBlue,2)));
|
||||
Lines.append(new Line( 1, -4, 12, 7,QPen(QPen::darkBlue,2)));
|
||||
Lines.append(new Line( -2, 1, 12, 15,QPen(QPen::darkBlue,2)));
|
||||
|
||||
Lines.append(new Line(-25, 18,-22, 21,QPen(QPen::darkBlue,2)));
|
||||
Lines.append(new Line(-22, 13,-14, 21,QPen(QPen::darkBlue,2)));
|
||||
Lines.append(new Line(-14, 13, -6, 21,QPen(QPen::darkBlue,2)));
|
||||
Lines.append(new Line( -8, 11, 2, 21,QPen(QPen::darkBlue,2)));
|
||||
Lines.append(new Line( -5, 6, 10, 21,QPen(QPen::darkBlue,2)));
|
||||
|
||||
Ports.append(new Port(-30, 0));
|
||||
|
||||
x1 = -30; y1 =-24;
|
||||
x2 = 14; y2 = 24;
|
||||
|
||||
tx = x1+4;
|
||||
ty = y2+4;
|
||||
Model = "CSHORT";
|
||||
Name = "CL";
|
||||
|
||||
Props.append(new Property("Subst", "Subst1", true,
|
||||
QObject::tr("name of substrate definition")));
|
||||
Props.append(new Property("W", "1 mm", true,
|
||||
QObject::tr("width of the line")));
|
||||
Props.append(new Property("S", "1 mm", true,
|
||||
QObject::tr("width of a gap")));
|
||||
Props.append(new Property("Backside", "Air", false,
|
||||
QObject::tr("material at the backside of the substrate")+
|
||||
" [Metal, Air]"));
|
||||
}
|
||||
|
||||
CPWshort::~CPWshort()
|
||||
{
|
||||
}
|
||||
|
||||
Component* CPWshort::newOne()
|
||||
{
|
||||
return new CPWshort();
|
||||
}
|
||||
|
||||
Component* CPWshort::info(QString& Name, char* &BitmapFile, bool getNewOne)
|
||||
{
|
||||
Name = QObject::tr("Coplanar Short");
|
||||
BitmapFile = "cpwshort";
|
||||
|
||||
if(getNewOne) return new CPWshort();
|
||||
return 0;
|
||||
}
|
32
qucs/components/cpwshort.h
Normal file
32
qucs/components/cpwshort.h
Normal file
@ -0,0 +1,32 @@
|
||||
/***************************************************************************
|
||||
cpwshort.h
|
||||
--------------
|
||||
begin : Sun May 01 2005
|
||||
copyright : (C) 2005 by Michael Margraf
|
||||
email : michael.margraf@alumni.tu-berlin.de
|
||||
***************************************************************************/
|
||||
|
||||
/***************************************************************************
|
||||
* *
|
||||
* This program 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 of the License, or *
|
||||
* (at your option) any later version. *
|
||||
* *
|
||||
***************************************************************************/
|
||||
|
||||
#ifndef CPWSHORT_H
|
||||
#define CPWSHORT_H
|
||||
|
||||
#include "component.h"
|
||||
|
||||
|
||||
class CPWshort : public Component {
|
||||
public:
|
||||
CPWshort();
|
||||
~CPWshort();
|
||||
Component* newOne();
|
||||
static Component* info(QString&, char* &, bool getNewOne=false);
|
||||
};
|
||||
|
||||
#endif
|
@ -41,6 +41,9 @@ dcBlock::dcBlock()
|
||||
ty = y2+4;
|
||||
Model = "DCBlock";
|
||||
Name = "C";
|
||||
|
||||
Props.append(new Property("C", "1 uF", false,
|
||||
QObject::tr("for transient simulation: capacitance in Farad")));
|
||||
}
|
||||
|
||||
dcBlock::~dcBlock()
|
||||
|
@ -43,6 +43,9 @@ dcFeed::dcFeed()
|
||||
ty = y2+4;
|
||||
Model = "DCFeed";
|
||||
Name = "L";
|
||||
|
||||
Props.append(new Property("L", "1 uH", false,
|
||||
QObject::tr("for transient simulation: inductance in Henry")));
|
||||
}
|
||||
|
||||
dcFeed::~dcFeed()
|
||||
|
@ -187,12 +187,23 @@ else { // not logarithmical
|
||||
zD += zDstep;
|
||||
z = int(zD);
|
||||
}
|
||||
|
||||
if(xAxis.up >= 0.0) if(xAxis.low <= 0.0) { // paint origin cross ?
|
||||
z = int(double(x2) * fabs(xAxis.low / (xAxis.up-xAxis.low)));
|
||||
Lines.append(new Line(z, 0, z, y2, QPen(QPen::black,0)));
|
||||
}
|
||||
} // of "if(xlog) ... else ..."
|
||||
|
||||
|
||||
// ==== y grid =======================================================
|
||||
if(zAxis.numGraphs > 0) if(calcYAxis(&zAxis, x2)) valid |= 2;
|
||||
if(yAxis.numGraphs > 0) if(calcYAxis(&yAxis, 0)) valid |= 1;
|
||||
if(yAxis.numGraphs > 0) if(calcYAxis(&yAxis, 0)) {
|
||||
valid |= 1;
|
||||
if(yAxis.up >= 0.0) if(yAxis.low <= 0.0) { // paint origin cross ?
|
||||
z = int(double(y2) * fabs(yAxis.low / (yAxis.up-yAxis.low)));
|
||||
Lines.append(new Line(0, z, x2, z, QPen(QPen::black,0)));
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Frame:
|
||||
|
@ -1,6 +1,6 @@
|
||||
/***************************************************************************
|
||||
diagram.cpp
|
||||
-------------------
|
||||
-----------------
|
||||
begin : Thu Oct 2 2003
|
||||
copyright : (C) 2003, 2004, 2005 by Michael Margraf
|
||||
email : michael.margraf@alumni.tu-berlin.de
|
||||
@ -415,13 +415,12 @@ void Diagram::clip(int* &p)
|
||||
} \
|
||||
|
||||
// ------------------------------------------------------------
|
||||
// g->Points must already be empty!!!
|
||||
void Diagram::calcData(Graph *g)
|
||||
{
|
||||
if(g->Points != 0) { free(g->Points); g->Points = 0; }
|
||||
if(Name[0] == 'T') return; // no graph within tabulars
|
||||
|
||||
double *px;
|
||||
double *py = 0;
|
||||
double *pz = g->cPointsY;
|
||||
if(!pz) return;
|
||||
if(g->cPointsX.count() < 1) return;
|
||||
@ -434,10 +433,9 @@ void Diagram::calcData(Graph *g)
|
||||
p_end += Size - 5; // limit of buffer
|
||||
|
||||
double Dummy = 0.0; // number for 1-dimensional data in 3D cartesian
|
||||
if(Name == "Rect3D") {
|
||||
double *py = &Dummy;
|
||||
if(Name == "Rect3D")
|
||||
if(g->countY > 1) py = g->cPointsX.at(1)->Points;
|
||||
else py = &Dummy;
|
||||
}
|
||||
|
||||
Axis *pa;
|
||||
if(g->yAxisNo == 0) pa = &yAxis;
|
||||
@ -462,41 +460,47 @@ void Diagram::calcData(Graph *g)
|
||||
}
|
||||
if(*(p-3) == -2) p -= 3; // no single point after "no stroke"
|
||||
*(p++) = -10;
|
||||
py++; // because of Rect3D
|
||||
if(py != &Dummy) { // more-dimensional Rect3D
|
||||
py++;
|
||||
if(py >= (g->cPointsX.at(1)->Points + g->cPointsX.at(1)->count))
|
||||
py = g->cPointsX.at(1)->Points;
|
||||
}
|
||||
}
|
||||
/*qDebug("\n****** p=%p", p);
|
||||
for(int zz=60; zz>0; zz-=2)
|
||||
qDebug("c: %d/%d", *(p-zz), *(p-zz+1));*/
|
||||
|
||||
if(Name == "Rect3D") if(g->countY > 1) {
|
||||
DataX *pD = g->cPointsX.first();
|
||||
px = pD->Points;
|
||||
pz = g->cPointsY;
|
||||
dx = pD->count;
|
||||
pD = g->cPointsX.next();
|
||||
dy = pD->count;
|
||||
for(i=g->cPointsX.getFirst()->count; i>0; i--) { // every branch
|
||||
py = pD->Points;
|
||||
calcCoordinate(px, pz, py, p, p+1, 0);
|
||||
p += 2;
|
||||
px--; // back to the current x coordinate
|
||||
py++; // next y coordinate
|
||||
pz += 2*(dx-1); // next z coordinate
|
||||
for(z=dy-1; z>0; z--) { // every point
|
||||
FIT_MEMORY_SIZE; // need to enlarge memory block ?
|
||||
for(int j=g->countY/g->cPointsX.at(1)->count; j>0; j--) {
|
||||
DataX *pD = g->cPointsX.first();
|
||||
px = pD->Points;
|
||||
dx = pD->count;
|
||||
pD = g->cPointsX.next();
|
||||
dy = pD->count;
|
||||
for(i=g->cPointsX.getFirst()->count; i>0; i--) { // every branch
|
||||
py = pD->Points;
|
||||
calcCoordinate(px, pz, py, p, p+1, 0);
|
||||
p += 2;
|
||||
if(Counter >= 2) // clipping only if an axis is manual
|
||||
rectClip(p);
|
||||
px--; // back to the current x coordinate
|
||||
py++; // next y coordinate
|
||||
pz += 2*(dx-1); // next z coordinate
|
||||
}
|
||||
if(*(p-3) == -2) p -= 3; // no single point after "no stroke"
|
||||
*(p++) = -10;
|
||||
for(z=dy-1; z>0; z--) { // every point
|
||||
FIT_MEMORY_SIZE; // need to enlarge memory block ?
|
||||
calcCoordinate(px, pz, py, p, p+1, 0);
|
||||
p += 2;
|
||||
if(Counter >= 2) // clipping only if an axis is manual
|
||||
rectClip(p);
|
||||
px--; // back to the current x coordinate
|
||||
py++; // next y coordinate
|
||||
pz += 2*(dx-1); // next z coordinate
|
||||
}
|
||||
if(*(p-3) == -2) p -= 3; // no single point after "no stroke"
|
||||
*(p++) = -10;
|
||||
|
||||
px++; // next x coordinate
|
||||
pz -= 2*dx*dy - 2; // next z coordinate
|
||||
px++; // next x coordinate
|
||||
pz -= 2*dx*dy - 2; // next z coordinate
|
||||
}
|
||||
pz += 2*dx*(dy-1);
|
||||
}
|
||||
/*qDebug("\n------ p=%p", p);
|
||||
for(int zz=120; zz>0; zz-=2)
|
||||
@ -527,7 +531,11 @@ for(int zz=120; zz>0; zz-=2)
|
||||
}
|
||||
}
|
||||
*(p++) = -10;
|
||||
py++; // because of Rect3D
|
||||
if(py != &Dummy) { // more-dimensional Rect3D
|
||||
py++;
|
||||
if(py >= (g->cPointsX.at(1)->Points + g->cPointsX.at(1)->count))
|
||||
py = g->cPointsX.at(1)->Points;
|
||||
}
|
||||
}
|
||||
*p = -100;
|
||||
/*qDebug("\n******");
|
||||
@ -591,78 +599,85 @@ for(int zz=0; zz<60; zz+=2)
|
||||
if(*(p-3) == -2)
|
||||
p -= 3; // no single point after "no stroke"
|
||||
*(p++) = -10;
|
||||
py++; // because of Rect3D
|
||||
if(py != &Dummy) { // more-dimensional Rect3D
|
||||
py++;
|
||||
if(py >= (g->cPointsX.at(1)->Points + g->cPointsX.at(1)->count))
|
||||
py = g->cPointsX.at(1)->Points;
|
||||
}
|
||||
} // of y loop
|
||||
|
||||
|
||||
|
||||
if(Name == "Rect3D") if(g->countY > 1) {
|
||||
DataX *pD = g->cPointsX.first();
|
||||
px = pD->Points;
|
||||
pz = g->cPointsY;
|
||||
int xlen = pD->count;
|
||||
pD = g->cPointsX.next();
|
||||
for(i=g->cPointsX.getFirst()->count; i>0; i--) { // every branch
|
||||
Flag = 1;
|
||||
dist = -Stroke;
|
||||
py = pD->Points;
|
||||
calcCoordinate(px, pz, py, &xtmp, &ytmp, 0);
|
||||
*(p++) = xtmp;
|
||||
*(p++) = ytmp;
|
||||
Counter = 1;
|
||||
px--; // back to the current x coordinate
|
||||
py++; // next y coordinate
|
||||
pz += 2*(xlen-1); // next z coordinate
|
||||
for(z=pD->count-1; z>0; z--) { // every point
|
||||
dx = xtmp;
|
||||
dy = ytmp;
|
||||
for(int j=g->countY/g->cPointsX.at(1)->count; j>0; j--) {
|
||||
DataX *pD = g->cPointsX.first();
|
||||
px = pD->Points;
|
||||
int xlen = pD->count;
|
||||
pD = g->cPointsX.next();
|
||||
for(i=g->cPointsX.getFirst()->count; i>0; i--) { // every branch
|
||||
Flag = 1;
|
||||
dist = -Stroke;
|
||||
py = pD->Points;
|
||||
calcCoordinate(px, pz, py, &xtmp, &ytmp, 0);
|
||||
*(p++) = xtmp;
|
||||
*(p++) = ytmp;
|
||||
Counter = 1;
|
||||
px--; // back to the current x coordinate
|
||||
py++; // next y coordinate
|
||||
pz += 2*(xlen-1); // next z coordinate
|
||||
for(z=pD->count-1; z>0; z--) { // every point
|
||||
dx = xtmp;
|
||||
dy = ytmp;
|
||||
calcCoordinate(px, pz, py, &xtmp, &ytmp, 0);
|
||||
px--; // back to the current x coordinate
|
||||
py++; // next y coordinate
|
||||
pz += 2*(xlen-1); // next z coordinate
|
||||
|
||||
dx = xtmp - dx;
|
||||
dy = ytmp - dy;
|
||||
dist += sqrt(double(dx*dx + dy*dy)); // distance between points
|
||||
if(Flag == 1) if(dist <= 0.0) {
|
||||
FIT_MEMORY_SIZE; // need to enlarge memory block ?
|
||||
dx = xtmp - dx;
|
||||
dy = ytmp - dy;
|
||||
dist += sqrt(double(dx*dx + dy*dy)); // distance between points
|
||||
if(Flag == 1) if(dist <= 0.0) {
|
||||
FIT_MEMORY_SIZE; // need to enlarge memory block ?
|
||||
|
||||
*(p++) = xtmp; // if stroke then save points
|
||||
*(p++) = ytmp;
|
||||
if((++Counter) >= 2) clip(p);
|
||||
continue;
|
||||
}
|
||||
alpha = atan2(double(dy), double(dx)); // slope for interpolation
|
||||
while(dist > 0) { // stroke or space finished ?
|
||||
FIT_MEMORY_SIZE; // need to enlarge memory block ?
|
||||
*(p++) = xtmp; // if stroke then save points
|
||||
*(p++) = ytmp;
|
||||
if((++Counter) >= 2) clip(p);
|
||||
continue;
|
||||
}
|
||||
alpha = atan2(double(dy), double(dx)); // slope for interpolation
|
||||
while(dist > 0) { // stroke or space finished ?
|
||||
FIT_MEMORY_SIZE; // need to enlarge memory block ?
|
||||
|
||||
*(p++) = xtmp - int(dist*cos(alpha) + 0.5); // linearly interpolate
|
||||
*(p++) = ytmp - int(dist*sin(alpha) + 0.5);
|
||||
if((++Counter) >= 2) clip(p);
|
||||
*(p++) = xtmp - int(dist*cos(alpha) + 0.5); // linearly interpolate
|
||||
*(p++) = ytmp - int(dist*sin(alpha) + 0.5);
|
||||
if((++Counter) >= 2) clip(p);
|
||||
|
||||
if(Flag == 0) {
|
||||
dist -= Stroke;
|
||||
if(dist <= 0) {
|
||||
*(p++) = xtmp; // don't forget point after ...
|
||||
*(p++) = ytmp; // ... interpolated point
|
||||
if((++Counter) >= 2) clip(p);
|
||||
if(Flag == 0) {
|
||||
dist -= Stroke;
|
||||
if(dist <= 0) {
|
||||
*(p++) = xtmp; // don't forget point after ...
|
||||
*(p++) = ytmp; // ... interpolated point
|
||||
if((++Counter) >= 2) clip(p);
|
||||
}
|
||||
}
|
||||
else {
|
||||
dist -= Space;
|
||||
if(*(p-3) < 0) p -= 2;
|
||||
else *(p++) = -2; // value for interrupt stroke
|
||||
if(Counter < 0) Counter = -50000; // if auto-scale
|
||||
else Counter = 0;
|
||||
}
|
||||
Flag ^= 1; // toggle between stroke and space
|
||||
}
|
||||
else {
|
||||
dist -= Space;
|
||||
if(*(p-3) < 0) p -= 2;
|
||||
else *(p++) = -2; // value for interrupt stroke
|
||||
if(Counter < 0) Counter = -50000; // if auto-scale
|
||||
else Counter = 0;
|
||||
}
|
||||
Flag ^= 1; // toggle between stroke and space
|
||||
}
|
||||
}
|
||||
if(*(p-3) == -2) p -= 3; // no single point after "no stroke"
|
||||
*(p++) = -10;
|
||||
if(*(p-3) == -2) p -= 3; // no single point after "no stroke"
|
||||
*(p++) = -10;
|
||||
|
||||
px++; // next x coordinate
|
||||
pz -= 2*xlen*pD->count - 2; // next z coordinate
|
||||
px++; // next x coordinate
|
||||
pz -= 2*xlen*pD->count - 2; // next z coordinate
|
||||
}
|
||||
pz += 2*xlen*(pD->count-1);
|
||||
}
|
||||
}
|
||||
|
||||
@ -857,6 +872,7 @@ void Diagram::updateGraphData()
|
||||
int valid = calcDiagram(); // do not calculate graph data if invalid
|
||||
|
||||
for(Graph *pg = Graphs.first(); pg != 0; pg = Graphs.next()) {
|
||||
if(pg->Points != 0) { free(pg->Points); pg->Points = 0; }
|
||||
if((valid & (pg->yAxisNo+1)) != 0)
|
||||
calcData(pg); // calculate screen coordinates
|
||||
else if(pg->cPointsY) { delete[] pg->cPointsY; pg->cPointsY = 0; }
|
||||
|
@ -170,7 +170,7 @@ int Graph::getSelected(int x, int y)
|
||||
int *pp = Points;
|
||||
if(pp == 0) return -1;
|
||||
|
||||
int A, zi;
|
||||
int A, z=0, zi;
|
||||
int dx, dx2, x1;
|
||||
int dy, dy2, y1;
|
||||
|
||||
@ -182,7 +182,8 @@ int Graph::getSelected(int x, int y)
|
||||
if(*pp < -10) return -1; // not even one point ?
|
||||
}
|
||||
}
|
||||
for(int z=0; z<countY; z++) { // check every branch of curves
|
||||
// for(int z=0; z<countY; z++) { // check every branch of curves
|
||||
while(*pp > -99) {
|
||||
zi = 0;
|
||||
do {
|
||||
x1 = *(pp++); y1 = *(pp++);
|
||||
@ -223,6 +224,7 @@ int Graph::getSelected(int x, int y)
|
||||
if(A <= 0) return z*countX;// + zi; // lies x/y onto the graph line ?
|
||||
} while(true);
|
||||
pp++;
|
||||
z++;
|
||||
}
|
||||
|
||||
return -1;
|
||||
|
@ -62,16 +62,28 @@ void Marker::initText(int n)
|
||||
Axis *pa;
|
||||
if(pGraph->yAxisNo == 0) pa = &(Diag->yAxis);
|
||||
else pa = &(Diag->zAxis);
|
||||
double *num, *py = 0, *pz = pGraph->cPointsY + 2*n;
|
||||
double *px, *py=0, *pz = pGraph->cPointsY + 2*n;
|
||||
Text = "";
|
||||
nVarPos = 0;
|
||||
DataX *pD = pGraph->cPointsX.first();
|
||||
|
||||
int nn, m, x, y, d, dmin = INT_MAX;
|
||||
DataX *pD = pGraph->cPointsX.first();
|
||||
if(pGraph->cPointsX.next()) { // only for 3D diagram
|
||||
nn = pGraph->countY * pD->count;
|
||||
if(n >= nn) { // is on cross grid ?
|
||||
n -= nn;
|
||||
n /= pD->count;
|
||||
qDebug("n: %d", n);
|
||||
|
||||
/* px = pGraph->cPointsX.first()->Points;
|
||||
py = pGraph->cPointsX.next()->Points;
|
||||
pz = pGraph->cPointsY + 2*n
|
||||
// find exact marker position
|
||||
int nn, x, y, d, dmin = INT_MAX;
|
||||
for(nn=0; nn<pD->count; nn++) {
|
||||
num = pD->Points + nn;
|
||||
Diag->calcCoordinate(num, pz, py, &x, &y, pa);
|
||||
Diag->calcCoordinate(px, pz, py, &x, &y, pa);
|
||||
px--;
|
||||
py++;
|
||||
pz += 2*(pD->count-1);
|
||||
x -= cx;
|
||||
y -= cy;
|
||||
d = x*x + y*y;
|
||||
@ -82,13 +94,38 @@ void Marker::initText(int n)
|
||||
}
|
||||
if(dmin == INT_MAX)
|
||||
n = n + nn - 1; // take last position
|
||||
*/
|
||||
|
||||
}
|
||||
py = pGraph->cPointsX.current()->Points;
|
||||
py += n / pD->count;
|
||||
}
|
||||
|
||||
// find exact marker position
|
||||
m = pD->count-1;
|
||||
px = pD->Points;
|
||||
for(nn=0; nn<pD->count; nn++) {
|
||||
// px = pD->Points + nn;
|
||||
Diag->calcCoordinate(px, pz, py, &x, &y, pa);
|
||||
x -= cx;
|
||||
y -= cy;
|
||||
d = x*x + y*y;
|
||||
if(d < dmin) {
|
||||
dmin = d;
|
||||
m = nn;
|
||||
// n = (n - n % pD->count) + nn;
|
||||
}
|
||||
}
|
||||
// if(dmin == INT_MAX)
|
||||
// n = n + nn - 1; // take last position
|
||||
n += m;
|
||||
|
||||
// gather text of all independent variables
|
||||
nn = n;
|
||||
for(; pD!=0; pD = pGraph->cPointsX.next()) {
|
||||
num = pD->Points + (nn % pD->count);
|
||||
VarPos[nVarPos++] = *num;
|
||||
Text += pD->Var + ": " + QString::number(*num,'g',Precision) + "\n";
|
||||
for(pD = pGraph->cPointsX.first(); pD!=0; pD = pGraph->cPointsX.next()) {
|
||||
px = pD->Points + (nn % pD->count);
|
||||
VarPos[nVarPos++] = *px;
|
||||
Text += pD->Var + ": " + QString::number(*px,'g',Precision) + "\n";
|
||||
nn /= pD->count;
|
||||
}
|
||||
|
||||
@ -104,12 +141,12 @@ void Marker::initText(int n)
|
||||
break;
|
||||
}
|
||||
|
||||
num = VarPos;
|
||||
Diag->calcCoordinate(num, pz, py, &cx, &cy, pa);
|
||||
px = VarPos;
|
||||
Diag->calcCoordinate(px, pz, py, &cx, &cy, pa);
|
||||
|
||||
if(!Diag->insideDiagram(cx, cy))
|
||||
// if marker out of valid bounds, point to origin
|
||||
if((Diag->Name != "Rect") && (Diag->Name != "Curve")) {
|
||||
if((Diag->Name.left(4) != "Rect") && (Diag->Name != "Curve")) {
|
||||
cx = Diag->x2 >> 1;
|
||||
cy = Diag->y2 >> 1;
|
||||
}
|
||||
@ -154,7 +191,13 @@ void Marker::createText()
|
||||
}
|
||||
|
||||
|
||||
double *py = 0, *pz = (pGraph->cPointsY) + 2*n;
|
||||
double *py=0, *pz = pGraph->cPointsY + 2*n;
|
||||
pD = pGraph->cPointsX.first();
|
||||
if(pGraph->cPointsX.next()) {
|
||||
py = pGraph->cPointsX.current()->Points; // only for 3D diagram
|
||||
py += n / pD->count;
|
||||
}
|
||||
|
||||
Text += pGraph->Var + ": ";
|
||||
switch(numMode) {
|
||||
case 0: Text += complexRect(*pz, *(pz+1), Precision);
|
||||
@ -171,9 +214,10 @@ void Marker::createText()
|
||||
pp = &(VarPos[0]);
|
||||
Diag->calcCoordinate(pp, pz, py, &cx, &cy, pa);
|
||||
|
||||
|
||||
if(!Diag->insideDiagram(cx, cy))
|
||||
// if marker out of valid bounds, point to origin
|
||||
if((Diag->Name != "Rect") && (Diag->Name != "Curve")) {
|
||||
if((Diag->Name.left(4) != "Rect") && (Diag->Name != "Curve")) {
|
||||
cx = Diag->x2 >> 1;
|
||||
cy = Diag->y2 >> 1;
|
||||
}
|
||||
@ -190,7 +234,7 @@ void Marker::makeInvalid()
|
||||
{
|
||||
cx = 0;
|
||||
cy = 0;
|
||||
if(Diag) if(Diag->Name != "Rect") if(Diag->Name != "Curve") {
|
||||
if(Diag) if(Diag->Name.left(4) != "Rect") if(Diag->Name != "Curve") {
|
||||
cx = Diag->x2 >> 1;
|
||||
cy = Diag->y2 >> 1;
|
||||
}
|
||||
|
@ -138,7 +138,7 @@ void Rect3DDiagram::calcLimits()
|
||||
|
||||
// --------------------------------------------------------------
|
||||
int Rect3DDiagram::calcAxis(Axis *Axis, int x, int xLen,
|
||||
int y, int yLen, bool Right)
|
||||
int y, int yLen, bool Right)
|
||||
{
|
||||
// int z;
|
||||
double GridStep, /*corr,*/ xD, yD, stepD, GridNum;
|
||||
@ -518,6 +518,12 @@ else { // not logarithmical
|
||||
return 3;
|
||||
}
|
||||
|
||||
// ------------------------------------------------------------
|
||||
bool Rect3DDiagram::insideDiagram(int x, int y)
|
||||
{
|
||||
return (regionCode(x, y) == 0);
|
||||
}
|
||||
|
||||
// ------------------------------------------------------------
|
||||
void Rect3DDiagram::clip(int* &p)
|
||||
{
|
||||
|
@ -38,10 +38,11 @@ public:
|
||||
void calcCoordinate(double* &, double* &, double* &, int*, int*, Axis*);
|
||||
|
||||
void createAxisLabels() {}; // labels created during calcDiagram
|
||||
bool insideDiagram(int, int);
|
||||
void clip(int* &);
|
||||
|
||||
private:
|
||||
void calcCoefficients();
|
||||
void calcCoefficients();
|
||||
double calcX_2D(double, double, double);
|
||||
double calcY_2D(double, double, double);
|
||||
|
||||
|
@ -141,12 +141,15 @@ int TabDiagram::calcDiagram()
|
||||
if(g) if(!g->cPointsX.isEmpty()) {
|
||||
// ................................................
|
||||
counting = g->cPointsX.getFirst()->count * g->countY; // number of values
|
||||
NumAll = counting;
|
||||
|
||||
invisibleCount = counting - y/tHeight;
|
||||
if(invisibleCount <= 0) xAxis.limit_min = 0.0;// height bigger than needed
|
||||
else
|
||||
else {
|
||||
NumLeft = invisibleCount - int(xAxis.limit_min);
|
||||
if(invisibleCount < int(xAxis.limit_min))
|
||||
xAxis.limit_min = double(invisibleCount); // adjust limit of scroll bar
|
||||
}
|
||||
|
||||
for(DataX *pD = g->cPointsX.last(); pD!=0; pD = g->cPointsX.prev()) {
|
||||
colWidth = 0;
|
||||
@ -187,7 +190,7 @@ if(g) if(!g->cPointsX.isEmpty()) {
|
||||
}
|
||||
Lines.current()->style = QPen(QPen::black,2);
|
||||
|
||||
} // of if no data in graphs
|
||||
} // of "if no data in graphs"
|
||||
|
||||
|
||||
// ................................................
|
||||
|
@ -1532,7 +1532,7 @@ pInfoFunc TransmissionLines[] =
|
||||
{&TLine::info, &Substrate::info, &MSline::info, &MScoupled::info,
|
||||
&MScorner::info, &MSmbend::info, &MSstep::info, &MStee::info,
|
||||
&MScross::info, &MSopen::info, &MSgap::info, &MSvia::info,
|
||||
&Coplanar::info, 0};
|
||||
&Coplanar::info, &CPWopen::info, &CPWshort::info, 0};
|
||||
|
||||
pInfoFunc nonlinearComps[] =
|
||||
{&Diode::info, &BJT::info, &BJT::info_pnp, &BJTsub::info,
|
||||
|
@ -2738,6 +2738,34 @@ Verwendung: qucsedit [-r] Datei
|
||||
<source>method for solving the circuit matrix</source>
|
||||
<translation>Gleichungslöser für die Schaltkreismatrix</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>for transient simulation: inductance in Henry</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>for transient simulation: capacitance in Farad</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>coplanar open</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>width of gap at end of line</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Coplanar Open</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>coplanar short</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Coplanar Short</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>QucsActions</name>
|
||||
|
@ -2535,6 +2535,34 @@ Use: qucsedit [-r] archivo
|
||||
<source>method for solving the circuit matrix</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>for transient simulation: inductance in Henry</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>for transient simulation: capacitance in Farad</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>coplanar open</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>width of gap at end of line</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Coplanar Open</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>coplanar short</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Coplanar Short</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>QucsActions</name>
|
||||
|
@ -2523,6 +2523,34 @@ Invocation : qucsedit [-r] fichier
|
||||
<source>method for solving the circuit matrix</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>for transient simulation: inductance in Henry</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>for transient simulation: capacitance in Farad</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>coplanar open</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>width of gap at end of line</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Coplanar Open</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>coplanar short</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Coplanar Short</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>QucsActions</name>
|
||||
|
@ -2453,6 +2453,34 @@ Usage: qucsedit [-r] file
|
||||
<source>method for solving the circuit matrix</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>for transient simulation: inductance in Henry</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>for transient simulation: capacitance in Farad</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>coplanar open</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>width of gap at end of line</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Coplanar Open</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>coplanar short</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Coplanar Short</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>QucsActions</name>
|
||||
|
@ -2510,6 +2510,34 @@ Használat: qucsedit [-r] fájl
|
||||
<source>method for solving the circuit matrix</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>for transient simulation: inductance in Henry</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>for transient simulation: capacitance in Farad</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>coplanar open</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>width of gap at end of line</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Coplanar Open</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>coplanar short</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Coplanar Short</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>QucsActions</name>
|
||||
|
@ -2625,6 +2625,34 @@ Usage: qucsedit [-r] file
|
||||
<source>method for solving the circuit matrix</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>for transient simulation: inductance in Henry</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>for transient simulation: capacitance in Farad</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>coplanar open</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>width of gap at end of line</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Coplanar Open</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>coplanar short</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Coplanar Short</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>QucsActions</name>
|
||||
|
@ -2499,6 +2499,34 @@ Usage: qucsedit [-r] file
|
||||
<source>method for solving the circuit matrix</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>for transient simulation: inductance in Henry</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>for transient simulation: capacitance in Farad</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>coplanar open</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>width of gap at end of line</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Coplanar Open</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>coplanar short</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Coplanar Short</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>QucsActions</name>
|
||||
|
@ -2578,6 +2578,34 @@ Stosowanie: qucsedit [-r] plik
|
||||
<source>method for solving the circuit matrix</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>for transient simulation: inductance in Henry</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>for transient simulation: capacitance in Farad</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>coplanar open</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>width of gap at end of line</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Coplanar Open</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>coplanar short</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Coplanar Short</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>QucsActions</name>
|
||||
|
@ -2462,6 +2462,34 @@ Usage: qucsedit [-r] file
|
||||
<source>method for solving the circuit matrix</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>for transient simulation: inductance in Henry</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>for transient simulation: capacitance in Farad</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>coplanar open</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>width of gap at end of line</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Coplanar Open</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>coplanar short</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Coplanar Short</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>QucsActions</name>
|
||||
|
@ -2538,6 +2538,34 @@ Folosire: qucsedit [-r] file
|
||||
<source>method for solving the circuit matrix</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>for transient simulation: inductance in Henry</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>for transient simulation: capacitance in Farad</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>coplanar open</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>width of gap at end of line</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Coplanar Open</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>coplanar short</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Coplanar Short</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>QucsActions</name>
|
||||
|
@ -2341,6 +2341,34 @@ Usage: qucsedit [-r] file
|
||||
<source>method for solving the circuit matrix</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>for transient simulation: inductance in Henry</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>for transient simulation: capacitance in Farad</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>coplanar open</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>width of gap at end of line</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Coplanar Open</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>coplanar short</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Coplanar Short</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>QucsActions</name>
|
||||
|
@ -96,7 +96,7 @@ QString QucsFile::createClipboardFile()
|
||||
s += "<Paintings>\n";
|
||||
for(pp = Doc->Paints->first(); pp != 0; pp = Doc->Paints->next())
|
||||
if(pp->isSelected)
|
||||
if(pp->Name != "PortSym ") {
|
||||
if(pp->Name.at(0) != '.') { // subcircuit specific -> do not copy
|
||||
s += "<"+pp->save()+">\n"; z++; }
|
||||
s += "</Paintings>\n";
|
||||
|
||||
|
@ -1236,9 +1236,10 @@ void QucsView::MPressSelect(QMouseEvent *Event)
|
||||
return;
|
||||
|
||||
case isDiagramResize: // resize diagram ?
|
||||
if(((Diagram*)focusElement)->Name != "Rect")
|
||||
if(((Diagram*)focusElement)->Name.left(4) != "Rect")
|
||||
if(((Diagram*)focusElement)->Name != "Tab")
|
||||
isMoveEqual = true; // diagram must be square
|
||||
if(((Diagram*)focusElement)->Name != "Curve")
|
||||
isMoveEqual = true; // diagram must be square
|
||||
|
||||
focusElement->Type = isDiagram;
|
||||
MAx1 = focusElement->cx;
|
||||
|
Loading…
x
Reference in New Issue
Block a user