From: Richard <r.c...@ed...> - 2014-01-07 10:16:49
|
Hi, Does anyone know how the standard component png files were made? I want to create a new component for the GUI (similar to the tr_sim component) and want the symbol to look consistent with the others. Regards, Richard -- The University of Edinburgh is a charitable body, registered in Scotland, with registration number SC005336. |
From: Frans S. <fra...@gm...> - 2014-01-07 10:52:39
|
Hi Richard, Last time I made a component (mslange), I just copied an old png file and edited it with gimp. Frans On 01/07/2014 11:16 AM, Richard wrote: > Hi, > > Does anyone know how the standard component png files were made? I want > to create a new component for the GUI (similar to the tr_sim component) > and want the symbol to look consistent with the others. > > Regards, > > Richard > |
From: Guilherme B. T. <gui...@gm...> - 2014-01-07 11:50:34
|
On 07/01/14 11:16, Richard wrote: > Hi, > > Does anyone know how the standard component png files were made? I want > to create a new component for the GUI (similar to the tr_sim component) > and want the symbol to look consistent with the others. > > Regards, > > Richard > Hi Richard. Looking into the logs: $gitk ~/git/qucs/qucs/qucs/bitmaps The the icons started as XPM files, later dropped in favor of PNG files. Maybe you could use a XPM editor to achieve a similar result, or use a raster editor to create PNG. However I have no idea how to match the ports to wires... Note that some components are being drawn directly with Qt (lines, arcs, text...). See 'components/am_modulator.cpp' for example. Regards, Guilherme |
From: Richard <r.c...@ed...> - 2014-01-07 13:03:47
|
ok, thanks for all the tips everyone, I'll have a look at all the options. Richard -- The University of Edinburgh is a charitable body, registered in Scotland, with registration number SC005336. |
From: Richard <r.c...@ed...> - 2014-01-08 09:38:09
|
On 07/01/2014 18:51, Clemens Novak wrote: > On 2014-01-07 14:03, Richard wrote: > > Hi, > > another idea is to draw the component and save it as png file. The > QGraphics framework supports this (more or less) out of the box. In a > QMainWindow simply do (more or less copied from > http://stackoverflow.com/questions/7451183/how-to-create-image-file-from-qgraphicsscene-qgraphicsview) > <snip> > The Qucs components don't draw themselves directly (yet), so there will > be some copy and paste work involved, but it should do the job... > > Regards - Clemens > ok, and is this the preferred method for the future, i.e. is this the route that will probably be used in the long run for future graphics? It seems like the right way to do it to me since you can then easily modify it if necessary. Richard -- The University of Edinburgh is a charitable body, registered in Scotland, with registration number SC005336. |
From: Clemens N. <cl...@fa...> - 2014-01-07 18:51:57
|
On 2014-01-07 14:03, Richard wrote: > ok, thanks for all the tips everyone, I'll have a look at all the > options. > > Richard > > > > Hi, another idea is to draw the component and save it as png file. The QGraphics framework supports this (more or less) out of the box. In a QMainWindow simply do (more or less copied from http://stackoverflow.com/questions/7451183/how-to-create-image-file-from-qgraphicsscene-qgraphicsview) QGraphicsScene *scene = new QGraphicsScene(this); QGraphicsView *view = new QGraphicsView(scene); scene->addLine(0,0,100,100); scene->addLine(100,0,0,100); scene->addEllipse(40,40,20,20); setCentralWidget(view); scene->setSceneRect(scene->itemsBoundingRect()); QImage image(scene->sceneRect().size().toSize(), QImage::Format_ARGB32); image.fill(Qt::transparent); QPainter painter(&image); scene->render(&painter); image.save("file_name.png"); The Qucs components don't draw themselves directly (yet), so there will be some copy and paste work involved, but it should do the job... Regards - Clemens |
From: Clemens N. <cl...@fa...> - 2014-01-09 11:00:39
|
On 2014-01-08 10:37, Richard wrote: > On 07/01/2014 18:51, Clemens Novak wrote: >> On 2014-01-07 14:03, Richard wrote: > >> Hi, >> another idea is to draw the component and save it as png file. The >> QGraphics framework supports this (more or less) out of the box. In a >> QMainWindow simply do (more or less copied from >> http://stackoverflow.com/questions/7451183/how-to-create-image-file-from-qgraphicsscene-qgraphicsview) >> > <snip> >> The Qucs components don't draw themselves directly (yet), so there >> will >> be some copy and paste work involved, but it should do the job... >> Regards - Clemens >> > ok, and is this the preferred method for the future, i.e. is this the > route that will probably be used in the long run for future graphics? > It seems like the right way to do it to me since you can then easily > modify it if necessary. > Richard Hi, maybe my mail was a bit unclear: The code which I posted allows to save "QGraphics drawings" as png files. A drawing may be a new component which you want to add to qucs: As part of the process, you add a new class to the qucs/components subdir and define the Lines, Ports... Q3PtrLists. In parallel (or afterwards), you could use my code to generate the corresponding png file. What is a bit painful is that you need to make a manual conversion from the Lines, Ports... Q3PtrLists to the QGraphics framework. E.g. if you look at components/resistor.cpp you see ... Lines.append(new Line(-30, 0,-18, 0,QPen(Qt::darkBlue,2))); Lines.append(new Line(-18, 0,-15, -7,QPen(Qt::darkBlue,2))); ... and in my code you would need to do ... scene->addLine(-30,0,-18,0); scene->addLine(-18,0,-15,-7); ... to generate the corresponding png file. If one day we switch over to using the QGraphics framework (which is a quite complex and difficult task, but ongoing to some extent), this manual conversion would not be necessary anymore. In the meantime we could extend my program so that it takes Lines, Ports... Q3PtrLists as inputs and generates the corresponding png file -> then you don't need to do this manual conversion. However, I don't know if this necessary, given that new components are not added on a day by day basis(??). Let me know what you think. Regards - Clemens |
From: Guilherme B. T. <gui...@gm...> - 2014-01-09 12:54:40
|
On 09/01/14 12:00, Clemens Novak wrote: > On 2014-01-08 10:37, Richard wrote: >> On 07/01/2014 18:51, Clemens Novak wrote: >>> On 2014-01-07 14:03, Richard wrote: >>> Hi, >>> another idea is to draw the component and save it as png file. The >>> QGraphics framework supports this (more or less) out of the box. In a >>> QMainWindow simply do (more or less copied from >>> http://stackoverflow.com/questions/7451183/how-to-create-image-file-from-qgraphicsscene-qgraphicsview) >>> >> <snip> >>> The Qucs components don't draw themselves directly (yet), so there >>> will >>> be some copy and paste work involved, but it should do the job... >>> Regards - Clemens >>> >> ok, and is this the preferred method for the future, i.e. is this the >> route that will probably be used in the long run for future graphics? >> It seems like the right way to do it to me since you can then easily >> modify it if necessary. >> Richard > Hi, > > maybe my mail was a bit unclear: The code which I posted allows to save > "QGraphics drawings" as png files. A drawing may be a new component > which you want to add to qucs: As part of the process, you add a new > class to the qucs/components subdir and define the Lines, Ports... > Q3PtrLists. In parallel (or afterwards), you could use my code to > generate the corresponding png file. > <snip> > If one day we switch over to using the QGraphics framework (which is a > quite complex and difficult task, but ongoing to some extent), this > manual conversion would not be necessary anymore. > > In the meantime we could extend my program so that it takes Lines, > Ports... Q3PtrLists as inputs and generates the corresponding png file > -> then you don't need to do this manual conversion. However, I don't > know if this necessary, given that new components are not added on a day > by day basis(??). Let me know what you think. > > Regards - Clemens > Hello, Just a few comments. Indeed the PNG icons currently loaded into the dock could be generated on-the-fly from the information on the component constructor (Lines, arcs, text...). Matching icons and component symbols are nice. Currently the icons are 32x32 pixels which fit nicely on the grid, the actual component symbols are not that regular. Anyway, what really matters for the schematic/netlist is the location of the ports. The advantage of having the code to save icons as PNG would be great to create a table/list/reference manual of components. Besides that the component parameters and documentation strings are also very important. Hopefully in a short while user will be able to add/compile Veriog-A components more dynamically, and for that we will have to find an user friendly way to the create and load component symbols. For example, a simple assistant to fill the top/bottom/left/right pins or ports on a generic rectangle will do the job. Inside the rectangle the user can draw or add anything he/she wants. Frankly I really think we should push the QGraphics framework forward. Unfortunately I am a bit short of time... Regards, Guilheme |
From: Clemens N. <cl...@fa...> - 2014-01-10 08:38:39
|
On 2014-01-09 13:54, Guilherme Brondani Torri wrote: > On 09/01/14 12:00, Clemens Novak wrote: >> On 2014-01-08 10:37, Richard wrote: >>> On 07/01/2014 18:51, Clemens Novak wrote: >>>> On 2014-01-07 14:03, Richard wrote: >>>> Hi, >>>> another idea is to draw the component and save it as png file. The >>>> QGraphics framework supports this (more or less) out of the box. In >>>> a >>>> QMainWindow simply do (more or less copied from >>>> http://stackoverflow.com/questions/7451183/how-to-create-image-file-from-qgraphicsscene-qgraphicsview) >>>> >>> <snip> >>>> The Qucs components don't draw themselves directly (yet), so there >>>> will >>>> be some copy and paste work involved, but it should do the job... >>>> Regards - Clemens >>>> >>> ok, and is this the preferred method for the future, i.e. is this >>> the >>> route that will probably be used in the long run for future >>> graphics? >>> It seems like the right way to do it to me since you can then easily >>> modify it if necessary. >>> Richard >> Hi, >> >> maybe my mail was a bit unclear: The code which I posted allows to >> save >> "QGraphics drawings" as png files. A drawing may be a new component >> which you want to add to qucs: As part of the process, you add a new >> class to the qucs/components subdir and define the Lines, Ports... >> Q3PtrLists. In parallel (or afterwards), you could use my code to >> generate the corresponding png file. >> > <snip> >> If one day we switch over to using the QGraphics framework (which is >> a >> quite complex and difficult task, but ongoing to some extent), this >> manual conversion would not be necessary anymore. >> >> In the meantime we could extend my program so that it takes Lines, >> Ports... Q3PtrLists as inputs and generates the corresponding png >> file >> -> then you don't need to do this manual conversion. However, I don't >> know if this necessary, given that new components are not added on a >> day >> by day basis(??). Let me know what you think. >> >> Regards - Clemens >> > Hello, > > Just a few comments. > Indeed the PNG icons currently loaded into the dock could be generated > on-the-fly from the information on the component constructor (Lines, > arcs, text...). Matching icons and component symbols are nice. > Currently > the icons are 32x32 pixels which fit nicely on the grid, the actual > component symbols are not that regular. Anyway, what really matters > for > the schematic/netlist is the location of the ports. > > The advantage of having the code to save icons as PNG would be great > to > create a table/list/reference manual of components. Besides that the > component parameters and documentation strings are also very > important. > Good idea - I'll have a look how to generate icons automatically from the (registered) component classes. Guess I will generate a separate (command-line?) application which produces these icons; maybe taking some options like output size... I'll keep you updated. > Hopefully in a short while user will be able to add/compile Veriog-A > components more dynamically, and for that we will have to find an user > friendly way to the create and load component symbols. > For example, a simple assistant to fill the top/bottom/left/right pins > or ports on a generic rectangle will do the job. Inside the rectangle > the user can draw or add anything he/she wants. > > Frankly I really think we should push the QGraphics framework forward. > Unfortunately I am a bit short of time... > Same here, but I agree :-) > Regards, > Guilheme > |
From: Clemens N. <cl...@fa...> - 2014-01-21 18:41:13
|
On 2014-01-10 09:38, Clemens Novak wrote: > On 2014-01-09 13:54, Guilherme Brondani Torri wrote: >> On 09/01/14 12:00, Clemens Novak wrote: >>> On 2014-01-08 10:37, Richard wrote: >>>> On 07/01/2014 18:51, Clemens Novak wrote: >>>>> On 2014-01-07 14:03, Richard wrote: >>>>> Hi, >>>>> another idea is to draw the component and save it as png file. The >>>>> QGraphics framework supports this (more or less) out of the box. >>>>> In >>>>> a >>>>> QMainWindow simply do (more or less copied from >>>>> http://stackoverflow.com/questions/7451183/how-to-create-image-file-from-qgraphicsscene-qgraphicsview) >>>>> >>>> <snip> >>>>> The Qucs components don't draw themselves directly (yet), so there >>>>> will >>>>> be some copy and paste work involved, but it should do the job... >>>>> Regards - Clemens >>>>> >>>> ok, and is this the preferred method for the future, i.e. is this >>>> the >>>> route that will probably be used in the long run for future >>>> graphics? >>>> It seems like the right way to do it to me since you can then >>>> easily >>>> modify it if necessary. >>>> Richard >>> Hi, >>> >>> maybe my mail was a bit unclear: The code which I posted allows to >>> save >>> "QGraphics drawings" as png files. A drawing may be a new component >>> which you want to add to qucs: As part of the process, you add a new >>> class to the qucs/components subdir and define the Lines, Ports... >>> Q3PtrLists. In parallel (or afterwards), you could use my code to >>> generate the corresponding png file. >>> >> <snip> >>> If one day we switch over to using the QGraphics framework (which is >>> a >>> quite complex and difficult task, but ongoing to some extent), this >>> manual conversion would not be necessary anymore. >>> >>> In the meantime we could extend my program so that it takes Lines, >>> Ports... Q3PtrLists as inputs and generates the corresponding png >>> file >>> -> then you don't need to do this manual conversion. However, I >>> don't >>> know if this necessary, given that new components are not added on a >>> day >>> by day basis(??). Let me know what you think. >>> >>> Regards - Clemens >>> >> Hello, >> >> Just a few comments. >> Indeed the PNG icons currently loaded into the dock could be >> generated >> on-the-fly from the information on the component constructor (Lines, >> arcs, text...). Matching icons and component symbols are nice. >> Currently >> the icons are 32x32 pixels which fit nicely on the grid, the actual >> component symbols are not that regular. Anyway, what really matters >> for >> the schematic/netlist is the location of the ports. >> >> The advantage of having the code to save icons as PNG would be great >> to >> create a table/list/reference manual of components. Besides that the >> component parameters and documentation strings are also very >> important. >> > > Good idea - I'll have a look how to generate icons automatically from > the (registered) component classes. Guess I will generate a separate > (command-line?) application which produces these icons; maybe taking > some options like output size... > > I'll keep you updated. > >> Hopefully in a short while user will be able to add/compile Veriog-A >> components more dynamically, and for that we will have to find an >> user >> friendly way to the create and load component symbols. >> For example, a simple assistant to fill the top/bottom/left/right >> pins >> or ports on a generic rectangle will do the job. Inside the rectangle >> the user can draw or add anything he/she wants. >> >> Frankly I really think we should push the QGraphics framework >> forward. >> Unfortunately I am a bit short of time... >> > > Same here, but I agree :-) > >> Regards, >> Guilheme >> Hi, I created a branch called icons in which I added a new command line option to qucs: qucs -icons . It creates bitmaps from the components and stores them as png files. Although they are generated from the components' data, in some cases the original icons look nicer - maybe they were drawn with some program originally. Let me know what you think - the current implementation saves the icons in the "correct" size (and not scaled down to 32x32); I can add an option controlling this behaviour and another one controlling the output directory, if required. (before I merge back the branch). Regards - Clemens |
From: Richard <r.c...@ed...> - 2014-01-22 09:47:17
|
On 21/01/2014 18:41, Clemens Novak wrote: > On 2014-01-10 09:38, Clemens Novak wrote: >> On 2014-01-09 13:54, Guilherme Brondani Torri wrote: >>> On 09/01/14 12:00, Clemens Novak wrote: >>>> On 2014-01-08 10:37, Richard wrote: >>>>> On 07/01/2014 18:51, Clemens Novak wrote: >>>>>> On 2014-01-07 14:03, Richard wrote: > > > Hi, > > I created a branch called icons in which I added a new command line > option to qucs: qucs -icons . It creates bitmaps from the components and > stores them as png files. Although they are generated from the > components' data, in some cases the original icons look nicer - maybe > they were drawn with some program originally. > > Let me know what you think - the current implementation saves the icons > in the "correct" size (and not scaled down to 32x32); I can add an > option controlling this behaviour and another one controlling the output > directory, if required. (before I merge back the branch). > > Regards - Clemens > Clemens, sounds good! I haven't tried it, but have you turned on antialiasing when generating the pngs? I turned on antialiasing for the schematic editor in my qucs_namespace branch and everything looks much nicer. For the schematics this was done with p->setRenderHint(QPainter::Antialiasing, true); where p is a pointer to a QPainter Regards, Richard -- The University of Edinburgh is a charitable body, registered in Scotland, with registration number SC005336. |