pythoncad-developer Mailing List for PythonCAD (Page 11)
CAD Application entire developed in Python
Status: Beta
Brought to you by:
matteoboscolo
You can subscribe to this list here.
2009 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
(5) |
Nov
|
Dec
(13) |
---|---|---|---|---|---|---|---|---|---|---|---|---|
2010 |
Jan
(30) |
Feb
(65) |
Mar
(32) |
Apr
(42) |
May
(32) |
Jun
(18) |
Jul
(4) |
Aug
(30) |
Sep
(31) |
Oct
(28) |
Nov
(4) |
Dec
(40) |
2011 |
Jan
(18) |
Feb
|
Mar
(1) |
Apr
|
May
(1) |
Jun
(4) |
Jul
|
Aug
|
Sep
(3) |
Oct
|
Nov
|
Dec
|
2012 |
Jan
(7) |
Feb
(3) |
Mar
|
Apr
(3) |
May
|
Jun
(2) |
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
2013 |
Jan
|
Feb
(3) |
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
2014 |
Jan
|
Feb
|
Mar
|
Apr
(2) |
May
(1) |
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
From: SourceForge.net <no...@so...> - 2010-04-18 06:28:13
|
PythoncadWishTraker item #2913581, was opened at 2009-12-13 09:13 Message generated for change (Settings changed) made by matteoboscolo You can respond by visiting: https://sourceforge.net/tracker/?func=detail&atid=1334597&aid=2913581&group_id=263167 Please note that this message will contain a full copy of the comment thread, including the initial issue submission, for this request, not just the latest update. >Category: None Group: None Status: Open Resolution: None Priority: 5 Private: No Submitted By: Nobody/Anonymous (nobody) Assigned to: Nobody/Anonymous (nobody) Summary: Missing an hide/unhide entity comand Initial Comment: As most of the cad pakage Pythoncad need a hide/uncover command .. workaround is to work with layer and hide uncover the layer .. but will be nice to have a specific command for all the entity and that it works in all level not only the current .. Matteo ---------------------------------------------------------------------- Comment By: Gertwin (gertwin) Date: 2009-12-14 21:08 Message: Yes, I see, it is controlled by the self.__visible property of the Entity class. I can check this value when drawing the entities. So what I need for this function is new viewport state in which hidden entities are drawn. Besides that I need to know the color, linestyle and lineweight for the hidden and visible entities. I think these colors can be defined in the program (not variable to the user) there must only be a contrast between the two (gray for normal, white for hidden?) I will add a function to control the viewport state, changing the state means a redraw in the new state. The show() command: 1) change the state of the viewport, viewport draws all hidden entities. 2) user picks some hidden entities. 3) entity properties are updated 4) change the state of the viewport, viewport hides all hidden entities. Same kind of function for locked entities? ---------------------------------------------------------------------- Comment By: Matteo Boscolo (matteoboscolo) Date: 2009-12-14 18:57 Message: the Entity class have already a variable and method that define this state.. we have the show() and hide() method ... so may be we just need a way to show visible entity or hidden entity ... we need to decide how to do this command ... my proposal is: create a hide() comand that allow the use to select the entity and hide it. create a show() command that temporary show the hidden entity with a different color. and allow the user to select only the hidden entity changing the color.. ---------------------------------------------------------------------- Comment By: Gertwin (gertwin) Date: 2009-12-14 13:06 Message: Maybe a solution is to add a set of common properties to the entities. F.i. a variable "visible" (true/false) Also a properties inspector window is needed to view or modify these properties. ---------------------------------------------------------------------- You can respond by visiting: https://sourceforge.net/tracker/?func=detail&atid=1334597&aid=2913581&group_id=263167 |
From: SourceForge.net <no...@so...> - 2010-04-18 06:27:46
|
PythoncadWishTraker item #2820179, was opened at 2009-07-12 00:46 Message generated for change (Settings changed) made by matteoboscolo You can respond by visiting: https://sourceforge.net/tracker/?func=detail&atid=1334597&aid=2820179&group_id=263167 Please note that this message will contain a full copy of the comment thread, including the initial issue submission, for this request, not just the latest update. >Category: None >Group: None Status: Open Resolution: None Priority: 7 Private: No Submitted By: Matteo Boscolo (matteoboscolo) Assigned to: Nobody/Anonymous (nobody) Summary: Need a copy command Initial Comment: In pythoncad there isent a copy command .. the best is to create a vopy command with the possibility to create more then one copy ---------------------------------------------------------------------- You can respond by visiting: https://sourceforge.net/tracker/?func=detail&atid=1334597&aid=2820179&group_id=263167 |
From: SourceForge.net <no...@so...> - 2010-04-18 06:27:24
|
PythoncadWishTraker item #2820180, was opened at 2009-07-12 00:49 Message generated for change (Settings changed) made by matteoboscolo You can respond by visiting: https://sourceforge.net/tracker/?func=detail&atid=1334597&aid=2820180&group_id=263167 Please note that this message will contain a full copy of the comment thread, including the initial issue submission, for this request, not just the latest update. >Category: None >Group: None Status: Open Resolution: None Priority: 7 Private: No Submitted By: Matteo Boscolo (matteoboscolo) Assigned to: Nobody/Anonymous (nobody) Summary: Parallel line Initial Comment: It will be great to have a command to do parallel line whit simmetric possibility. It will be useful when you create symmetrical parts like axis. ---------------------------------------------------------------------- You can respond by visiting: https://sourceforge.net/tracker/?func=detail&atid=1334597&aid=2820180&group_id=263167 |
From: SourceForge.net <no...@so...> - 2010-04-18 06:26:44
|
PythoncadWishTraker item #2897936, was opened at 2009-11-15 11:18 Message generated for change (Settings changed) made by matteoboscolo You can respond by visiting: https://sourceforge.net/tracker/?func=detail&atid=1334597&aid=2897936&group_id=263167 Please note that this message will contain a full copy of the comment thread, including the initial issue submission, for this request, not just the latest update. >Category: None >Group: None Status: Open Resolution: None Priority: 8 Private: No Submitted By: Matteo Boscolo (matteoboscolo) Assigned to: Matteo Boscolo (matteoboscolo) Summary: Need a hatch functionality Initial Comment: Pythoncad dose not have a hatch functionalty.. we need it .. ---------------------------------------------------------------------- You can respond by visiting: https://sourceforge.net/tracker/?func=detail&atid=1334597&aid=2897936&group_id=263167 |
From: SourceForge.net <no...@so...> - 2010-04-18 06:25:20
|
PythoncadWishTraker item #2907458, was opened at 2009-12-02 13:59 Message generated for change (Settings changed) made by matteoboscolo You can respond by visiting: https://sourceforge.net/tracker/?func=detail&atid=1334597&aid=2907458&group_id=263167 Please note that this message will contain a full copy of the comment thread, including the initial issue submission, for this request, not just the latest update. >Category: None Group: None Status: Open Resolution: None Priority: 8 Private: No Submitted By: yndesai (yndesai) Assigned to: Nobody/Anonymous (nobody) Summary: Ellipse entity needed. Initial Comment: Expand the circle entity Top Priority (from wiki feature request) ---------------------------------------------------------------------- Comment By: Matteo Boscolo (matteoboscolo) Date: 2009-12-31 10:44 Message: This track needs more priority. ---------------------------------------------------------------------- Comment By: yndesai (yndesai) Date: 2009-12-30 10:43 Message: Following parameters define Ellipse in DXF 1. Center point (x,y,z) 2. End point of Major axis relative to center point (x,y,z) 3. Ratio of minor axis to major axis 4. Start parameter (this value is 0.0 for a full ellipse) 5. End parameter (this value is 2pi for a full ellipse) ---------------------------------------------------------------------- You can respond by visiting: https://sourceforge.net/tracker/?func=detail&atid=1334597&aid=2907458&group_id=263167 |
From: Paolo Z. <zam...@gm...> - 2010-04-17 12:03:53
|
Hi developers, I ask to be admitted to this mailing list, so I can work with you to develop pythoncad. Thanks Paolo Zambetti |
From: Matteo B. <mat...@bo...> - 2010-04-16 07:04:55
|
Hi Team, I made some change at the R38 repository structure. The old code R37 for the entity command .. is moved in a new folder called oldGeneric . The ...kernel.commands.py file is now a Pakage colled Command so now the new stracture is: PythonCAD/Generic PythonCAD/Generic/Kernel PythonCAD/Generic/Kernel/Command PythonCAD/Generic/Kernel/Entity PythonCAD/Generic/OldGeneric PythonCAD/Generic/OldGeneric/Tools No change are required in your code if you are using the Application api interface. Regards, Matteo |
From: Yagnesh D. <yn...@gm...> - 2010-04-11 13:03:54
|
This is cool . . . |
From: Matteo B. <mat...@bo...> - 2010-04-11 07:59:49
|
There whose a bad import problem with you tube with the ogv format .. now the video is ok http://www.youtube.com/user/pythoncad?feature=mhw5 Enjoy, Pythoncad Team On Sat, 2010-04-10 at 08:59 +0200, Matteo Boscolo wrote: > Hi, > >From today you can see PythonCad R37.1 in action reading and writing dxf > file .. > > YouTube address > http://www.youtube.com/watch?v=6dPPm9XK7Gs > > Enjoy, > PythonCad Team > > > > ------------------------------------------------------------------------------ > Download Intel® Parallel Studio Eval > Try the new software tools for yourself. Speed compiling, find bugs > proactively, and fine-tune applications for parallel performance. > See why Intel Parallel Studio got high marks during beta. > http://p.sf.net/sfu/intel-sw-dev > _______________________________________________ > Pythoncad-developer mailing list > Pyt...@li... > https://lists.sourceforge.net/lists/listinfo/pythoncad-developer > |
From: Gertwin G. <ger...@gm...> - 2010-04-11 07:53:49
|
Hi Matteo, Thank you. I will adjust the code of the Interface to the new names. Regards, Gertwin 2010/4/11 Matteo Boscolo <mat...@bo...>: > Hi Gertwin, > > I update all the name of the Kernel file.. > I made some test an it seems to work .. but please make some more test. > > ..And of course .. update your code call.. > > > Regards, > Matteo > > > On Sat, 2010-04-10 at 14:31 +0200, Gertwin Groen wrote: >> Hi Matteo, >> >> Looks nice! >> >> But I am not all happy with the names in our new code. >> >> For example in PyCadApplication.openDocument, it seams that a document >> is a instance of a PyCadDbKernel class. >> I think it is better to rename the class PyCadDbKernel into >> PyCadDocument, getting a instance of a PyCadDocument class is more >> what I expect. >> >> And I find it a little hard to recognize the modules in a list if the >> filename all begin with 'pycad'. >> Personally I find it easier to find modules/files if the first few >> characters of the name differs. >> >> All the files reside in the package 'PythonCAD.Generic.Kernel', why do >> we need to repeat the name 'pycad' in the module and class names? >> >> Instead of: >> from Generic.Kernel.pycadkernel import PyCadDbKernel >> >> something like: >> from Generic.kernel import Kernel >> >> I think it is easier to read and less characters to type. >> >> Regards, >> Gertwin >> >> >> >> >> >> 2010/4/10 Matteo Boscolo <mat...@bo...>: >> > Hi all, >> > It's now possible from docuwiki to navigate into the class stracture of >> > the new kernel of PythonCAD .. >> > >> > you can find it at: >> > http://pythoncad.sourceforge.net/dokuwiki/doku.php?id=program_code_description#object_hierarchy >> > >> > I will update the structure each time we made some big improvements. >> > >> > Regards, >> > Matteo >> > >> > >> > >> > ------------------------------------------------------------------------------ >> > Download Intel® Parallel Studio Eval >> > Try the new software tools for yourself. Speed compiling, find bugs >> > proactively, and fine-tune applications for parallel performance. >> > See why Intel Parallel Studio got high marks during beta. >> > http://p.sf.net/sfu/intel-sw-dev >> > _______________________________________________ >> > Pythoncad-developer mailing list >> > Pyt...@li... >> > https://lists.sourceforge.net/lists/listinfo/pythoncad-developer >> > >> > > > |
From: Matteo B. <mat...@bo...> - 2010-04-11 07:26:21
|
Hi Gertwin, I update all the name of the Kernel file.. I made some test an it seems to work .. but please make some more test. ..And of course .. update your code call.. Regards, Matteo On Sat, 2010-04-10 at 14:31 +0200, Gertwin Groen wrote: > Hi Matteo, > > Looks nice! > > But I am not all happy with the names in our new code. > > For example in PyCadApplication.openDocument, it seams that a document > is a instance of a PyCadDbKernel class. > I think it is better to rename the class PyCadDbKernel into > PyCadDocument, getting a instance of a PyCadDocument class is more > what I expect. > > And I find it a little hard to recognize the modules in a list if the > filename all begin with 'pycad'. > Personally I find it easier to find modules/files if the first few > characters of the name differs. > > All the files reside in the package 'PythonCAD.Generic.Kernel', why do > we need to repeat the name 'pycad' in the module and class names? > > Instead of: > from Generic.Kernel.pycadkernel import PyCadDbKernel > > something like: > from Generic.kernel import Kernel > > I think it is easier to read and less characters to type. > > Regards, > Gertwin > > > > > > 2010/4/10 Matteo Boscolo <mat...@bo...>: > > Hi all, > > It's now possible from docuwiki to navigate into the class stracture of > > the new kernel of PythonCAD .. > > > > you can find it at: > > http://pythoncad.sourceforge.net/dokuwiki/doku.php?id=program_code_description#object_hierarchy > > > > I will update the structure each time we made some big improvements. > > > > Regards, > > Matteo > > > > > > > > ------------------------------------------------------------------------------ > > Download Intel® Parallel Studio Eval > > Try the new software tools for yourself. Speed compiling, find bugs > > proactively, and fine-tune applications for parallel performance. > > See why Intel Parallel Studio got high marks during beta. > > http://p.sf.net/sfu/intel-sw-dev > > _______________________________________________ > > Pythoncad-developer mailing list > > Pyt...@li... > > https://lists.sourceforge.net/lists/listinfo/pythoncad-developer > > > |
From: Matteo B. <mat...@bo...> - 2010-04-10 15:56:42
|
Hi Gertwin, >But I am not all happy with the names in our new code. You are right.. >For example in PyCadApplication.openDocument, it seams that a document >is a instance of a PyCadDbKernel class. >I think it is better to rename the class PyCadDbKernel into >PyCadDocument, getting a instance of a PyCadDocument class is more >what I expect. OK >And I find it a little hard to recognize the modules in a list if the >filename all begin with 'pycad'. >Personally I find it easier to find modules/files if the first few >characters of the name differs. Ok I can manage it it's difficult for me too .. I will do some modification .. >All the files reside in the package 'PythonCAD.Generic.Kernel', why do >we need to repeat the name 'pycad' in the module and class names? >Instead of: >from Generic.Kernel.pycadkernel import PyCadDbKernel >something like: >from Generic.kernel import Kernel I will follow your recommendation thanks in advance Regards, Matteo 2010/4/10 Matteo Boscolo <mat...@bo...>: > Hi all, > It's now possible from docuwiki to navigate into the class stracture of > the new kernel of PythonCAD .. > > you can find it at: > http://pythoncad.sourceforge.net/dokuwiki/doku.php?id=program_code_descripti on#object_hierarchy > > I will update the structure each time we made some big improvements. > > Regards, > Matteo > > > > ---------------------------------------------------------------------------- -- > Download Intel® Parallel Studio Eval > Try the new software tools for yourself. Speed compiling, find bugs > proactively, and fine-tune applications for parallel performance. > See why Intel Parallel Studio got high marks during beta. > http://p.sf.net/sfu/intel-sw-dev > _______________________________________________ > Pythoncad-developer mailing list > Pyt...@li... > https://lists.sourceforge.net/lists/listinfo/pythoncad-developer > |
From: Gertwin G. <ger...@gm...> - 2010-04-10 12:31:25
|
Hi Matteo, Looks nice! But I am not all happy with the names in our new code. For example in PyCadApplication.openDocument, it seams that a document is a instance of a PyCadDbKernel class. I think it is better to rename the class PyCadDbKernel into PyCadDocument, getting a instance of a PyCadDocument class is more what I expect. And I find it a little hard to recognize the modules in a list if the filename all begin with 'pycad'. Personally I find it easier to find modules/files if the first few characters of the name differs. All the files reside in the package 'PythonCAD.Generic.Kernel', why do we need to repeat the name 'pycad' in the module and class names? Instead of: from Generic.Kernel.pycadkernel import PyCadDbKernel something like: from Generic.kernel import Kernel I think it is easier to read and less characters to type. Regards, Gertwin 2010/4/10 Matteo Boscolo <mat...@bo...>: > Hi all, > It's now possible from docuwiki to navigate into the class stracture of > the new kernel of PythonCAD .. > > you can find it at: > http://pythoncad.sourceforge.net/dokuwiki/doku.php?id=program_code_description#object_hierarchy > > I will update the structure each time we made some big improvements. > > Regards, > Matteo > > > > ------------------------------------------------------------------------------ > Download Intel® Parallel Studio Eval > Try the new software tools for yourself. Speed compiling, find bugs > proactively, and fine-tune applications for parallel performance. > See why Intel Parallel Studio got high marks during beta. > http://p.sf.net/sfu/intel-sw-dev > _______________________________________________ > Pythoncad-developer mailing list > Pyt...@li... > https://lists.sourceforge.net/lists/listinfo/pythoncad-developer > |
From: Matteo B. <mat...@bo...> - 2010-04-10 07:43:15
|
Hi all, It's now possible from docuwiki to navigate into the class stracture of the new kernel of PythonCAD .. you can find it at: http://pythoncad.sourceforge.net/dokuwiki/doku.php?id=program_code_description#object_hierarchy I will update the structure each time we made some big improvements. Regards, Matteo |
From: Matteo B. <mat...@bo...> - 2010-04-10 06:59:36
|
Hi, >From today you can see PythonCad R37.1 in action reading and writing dxf file .. YouTube address http://www.youtube.com/watch?v=6dPPm9XK7Gs Enjoy, PythonCad Team |
From: Matteo B. <mat...@bo...> - 2010-04-09 07:52:56
|
Hi, The Alfa R38 release will take a lot of time to go out. For this we have decide to create a new branch called R37.1 This new Branch will include some bug fixing and the dxf Reading/Writing support. Regards Matteo |
From: Matteo B. <mat...@bo...> - 2010-04-09 06:20:24
|
Hi Yagnesh, I' will do it and let you know .. Regards, Matteo On Fri, 2010-04-09 at 10:37 +0530, Yagnesh Desai wrote: > Dear Matteo; > > As we wanted to have import/export on R37 can you > please edit the gtkmenu code so that I can incorporate > the import/export. > |
From: Yagnesh D. <yn...@gm...> - 2010-04-09 05:07:54
|
Dear Matteo; As we wanted to have import/export on R37 can you please edit the gtkmenu code so that I can incorporate the import/export. -- Best regards Yagnesh Desai Save a tree...please don't print this e-mail. |
From: Matteo B. <mat...@bo...> - 2010-04-08 06:44:16
|
Hi Gertwin, > What if the user switches document in the middle of a getCommand? > Is the command canceled? The command have a pointer to the pycadkernel(document) .. When the user interface ask for a command the document application give at the user interface the complete control at the command.. It's the command that give the apply to perform the end of the command The application provide this event to help the user interface to understand what the application is doing .. You can have more then one command pending for apply at the some time .. And the kernel dose not care .. self.startUpEvent=PyCadkernelEvent() self.beforeOpenDocumentEvent=PyCadkernelEvent() self.afterOpenDocumentEvent=PyCadkernelEvent() self.beforeCloseDocumentEvent=PyCadkernelEvent() self.afterCloseDocumentEvent=PyCadkernelEvent() self.activeteDocumentEvent=PyCadkernelEvent() If the user switch a document the activeteDocumentEvent event is fired .. so it's up to you to decide in witch way the user interface use this method. For my point of view have the command still active even if we switch the document it's quite complex to manage .. But you have a lot of flexibility .. What do you think ? Regards, Matteo > > > > 2010/4/7 Matteo Boscolo <mat...@bo...>: > > Hi Gertwin, > > > > The new application class have some more feature now .. > > > > setActiveDocument > > openDocument > > closeDocument > > getActiveDocuent > > getDocuments > > > > All this feature allows you to open more than one document at the some > > time .. > > > > The command given from the getCommand works on the active document .. > > > > I need to do more test to see if it works properly .... > > > > > > > > Regards, > > Matteo > > > > > >> > >> > >> 2010/4/3 Matteo Boscolo <mat...@bo...>: > >> > Hi Gertwin, > >> > > >> > > >> >> I agree, the function parser is part of the kernel, not the interface. > >> >> I will look at the test_kernel.py for the drawing command structure. > >> > Could you make it part of the pycadapplication ? > >> > > >> >> We must also define a way to get information from the user, picking > >> >> points, selection etc. > >> > My command is an iterable object each element can rise an exception and > >> > tells you witch kind of data the command need .. > >> > This is a piece of code that show you how it works > >> > > >> > cObject=self.__pyCadApplication.getCommand(cmd_Key) # Get The command > >> > for iv in cObject: > >> > try: > >> > raise iv(None) #raise the exception > >> > except ExcPoint: #catch the exception > >> > cObject[iv]=self.imputPoint() #do the job in this > >> > case ask to the user to imput a point from the io > >> > ... > >> > ... > >> > at the end.. > >> > else: > >> > cObject.applyCommand() #apply the command > >> > > >> > I need add the description method at the item exception .. > >> > so we can have the description from the given request... > >> > I let you know how it works as soon I have done the implementation.. > >> > > >> > Do you have any experience in localization with python ? > >> > > >> >> My idea was to do this all by the function parser. > >> > I think that your function parser can parse the input from the user > >> > (menus,textInput,keybord command..) > >> > and call my getcommand to know witch kind of input to ask to the user to > >> > perform the given command > >> > Example: > >> > the user write the Segment command from the input box: > >> > the getCommand return a Segment command > >> > the parser look at the input parameter and ask at the user to give that > >> > request data .. > >> > at the end the parser apply the command > >> > you can fire some event for asking think to the userInterface. > >> > > >> > The user interface will be attached at this event and perform the action > >> > required from the user and from the pycadapplication .. > >> > > >> >> If we define a set of states (pick point, select object, etc.), on > >> >> each mouse move the interface can check the state and react on this. > >> >> > >> >> I agree about the class diagram, we should interact with more people > >> >> on the team. > >> >> If you know some kind of tool to generate class diagrams, we can put > >> >> them on the new wiki. > >> > I'm Working on it .. I'm trying http://epydoc.sourceforge.net/ pakage and let you know.. > >> > > >> > Regards, > >> > Matteo > >> > > >> >> Regards, > >> >> Gertwin > >> >> > >> >> 2010/4/2 Matteo Boscolo <mat...@bo...>: > >> >> > Hi Gertwin, > >> >> > > >> >> > I sow your command line and it working well .. no bugs found .. > >> >> > Could we implement a Multi text viewer where pythoncad put the output > >> >> > If the command succeed say .. "o boy .. well done :-)" > >> >> >> The idea is that every module can register commands that it can handle. > >> >> > I like this idea, but I wold like that the interpret stay under kernel > >> >> > (pycadapplication) > >> >> > > >> >> > I had made some modification at the pythoncad structure .. > >> >> > > >> >> > now the main api file is not pycadkernel but pycadapplication ... > >> >> > > >> >> > I made this change to support the new command class .. > >> >> > This class have not the some functionality of your and is not intend to > >> >> > replace you class .. it's a generic api file in witch all the gui interface > >> >> > are interfaced .. > >> >> > > >> >> > This class will provide hight level functionality to perform drawing > >> >> > operation. > >> >> > for now I have implemented only the getCommand method .. > >> >> > this method give to you the command object so you can fill it with the > >> >> > needed value and perform the applyCommand method to apply the command.. > >> >> > > >> >> > The following line will sow to you an exsample. > >> >> > > >> >> > cObject=pyCadApplication.getCommand("segment") > >> >> > > >> >> > for iv in cObject: #<<-- Loop for all the needed value > >> >> > try: > >> >> > raise iv(None) #<<-- Raise the exception of the needed value > >> >> > except ExcPoint: #<<-- if it's a point came here > >> >> > cObject[iv]=self.imputPoint() #<<--This is my io text imput But > >> >> > could be a function that ask to the user to pick a point > >> >> > except ExcLenght: > >> >> > cObject[iv]=self.inputMsg("Insert A Distance/Radius") > >> >> > except ExcAngle: > >> >> > cObject[iv]=self.inputMsg("Insert An angle") > >> >> > except: > >> >> > print "Bad error !!" > >> >> > raise > >> >> > else: > >> >> > cObject.applyCommand() #<<-- applay the command if all the data are > >> >> > right. > >> >> > > >> >> > you can find a working test if you run the test_kernel.py > >> >> > > >> >> > I intend to provide all the drawing command with this method .. > >> >> > > >> >> > > >> >> > Let me know what you are thinking about it.. > >> >> > I think that your function Parser should be part of the pycadapplication and > >> >> > not part of the interface ..so let me know if you fill the some > >> >> > > >> >> > At this stage there is a lot of code written ..so for my point of view we > >> >> > have to make a class diagram and start to discuss at the new class structure > >> >> > ..so our work can be more profitable. > >> >> > > >> >> > > >> >> > Regards, > >> >> > Matteo > >> >> > > >> >> > On Wed, 2010-03-31 at 23:26 +0200, Gertwin Groen wrote: > >> >> > > >> >> > Hi Matteo, > >> >> > > >> >> > I have just pushed my latest version to git. > >> >> > It has preliminary support for a command line interface with a very > >> >> > very simple command interpreter. > >> >> > > >> >> > The idea is that every module can register commands that it can handle. > >> >> > Also I changed the menu structure, it also works by sending commands > >> >> > to the command interpreter. > >> >> > > >> >> > For now the program understands command like (case insensitive): > >> >> > OPEN > >> >> > REBUILD_IX > >> >> > QUIT > >> >> > REGEN > >> >> > REDRAW > >> >> > ZOOMA > >> >> > > >> >> > I think this is better than the R37 version because command line and > >> >> > menu was handled different. > >> >> > If you have some comments on this, please let me know. > >> >> > > >> >> > I did not test it much, so be prepared for bugs. > >> >> > > >> >> > Regards, > >> >> > Gertwin > >> >> > > >> >> > > >> >> > > >> >> > >> > > >> > > >> > > >> > > > > > > > |
From: Matteo B. <mat...@bo...> - 2010-04-07 17:21:13
|
Hi Gertwin, The new application class have some more feature now .. setActiveDocument openDocument closeDocument getActiveDocuent getDocuments All this feature allows you to open more than one document at the some time .. The command given from the getCommand works on the active document .. I need to do more test to see if it works properly .... Regards, Matteo > > > 2010/4/3 Matteo Boscolo <mat...@bo...>: > > Hi Gertwin, > > > > > >> I agree, the function parser is part of the kernel, not the interface. > >> I will look at the test_kernel.py for the drawing command structure. > > Could you make it part of the pycadapplication ? > > > >> We must also define a way to get information from the user, picking > >> points, selection etc. > > My command is an iterable object each element can rise an exception and > > tells you witch kind of data the command need .. > > This is a piece of code that show you how it works > > > > cObject=self.__pyCadApplication.getCommand(cmd_Key) # Get The command > > for iv in cObject: > > try: > > raise iv(None) #raise the exception > > except ExcPoint: #catch the exception > > cObject[iv]=self.imputPoint() #do the job in this > > case ask to the user to imput a point from the io > > ... > > ... > > at the end.. > > else: > > cObject.applyCommand() #apply the command > > > > I need add the description method at the item exception .. > > so we can have the description from the given request... > > I let you know how it works as soon I have done the implementation.. > > > > Do you have any experience in localization with python ? > > > >> My idea was to do this all by the function parser. > > I think that your function parser can parse the input from the user > > (menus,textInput,keybord command..) > > and call my getcommand to know witch kind of input to ask to the user to > > perform the given command > > Example: > > the user write the Segment command from the input box: > > the getCommand return a Segment command > > the parser look at the input parameter and ask at the user to give that > > request data .. > > at the end the parser apply the command > > you can fire some event for asking think to the userInterface. > > > > The user interface will be attached at this event and perform the action > > required from the user and from the pycadapplication .. > > > >> If we define a set of states (pick point, select object, etc.), on > >> each mouse move the interface can check the state and react on this. > >> > >> I agree about the class diagram, we should interact with more people > >> on the team. > >> If you know some kind of tool to generate class diagrams, we can put > >> them on the new wiki. > > I'm Working on it .. I'm trying http://epydoc.sourceforge.net/ pakage and let you know.. > > > > Regards, > > Matteo > > > >> Regards, > >> Gertwin > >> > >> 2010/4/2 Matteo Boscolo <mat...@bo...>: > >> > Hi Gertwin, > >> > > >> > I sow your command line and it working well .. no bugs found .. > >> > Could we implement a Multi text viewer where pythoncad put the output > >> > If the command succeed say .. "o boy .. well done :-)" > >> >> The idea is that every module can register commands that it can handle. > >> > I like this idea, but I wold like that the interpret stay under kernel > >> > (pycadapplication) > >> > > >> > I had made some modification at the pythoncad structure .. > >> > > >> > now the main api file is not pycadkernel but pycadapplication ... > >> > > >> > I made this change to support the new command class .. > >> > This class have not the some functionality of your and is not intend to > >> > replace you class .. it's a generic api file in witch all the gui interface > >> > are interfaced .. > >> > > >> > This class will provide hight level functionality to perform drawing > >> > operation. > >> > for now I have implemented only the getCommand method .. > >> > this method give to you the command object so you can fill it with the > >> > needed value and perform the applyCommand method to apply the command.. > >> > > >> > The following line will sow to you an exsample. > >> > > >> > cObject=pyCadApplication.getCommand("segment") > >> > > >> > for iv in cObject: #<<-- Loop for all the needed value > >> > try: > >> > raise iv(None) #<<-- Raise the exception of the needed value > >> > except ExcPoint: #<<-- if it's a point came here > >> > cObject[iv]=self.imputPoint() #<<--This is my io text imput But > >> > could be a function that ask to the user to pick a point > >> > except ExcLenght: > >> > cObject[iv]=self.inputMsg("Insert A Distance/Radius") > >> > except ExcAngle: > >> > cObject[iv]=self.inputMsg("Insert An angle") > >> > except: > >> > print "Bad error !!" > >> > raise > >> > else: > >> > cObject.applyCommand() #<<-- applay the command if all the data are > >> > right. > >> > > >> > you can find a working test if you run the test_kernel.py > >> > > >> > I intend to provide all the drawing command with this method .. > >> > > >> > > >> > Let me know what you are thinking about it.. > >> > I think that your function Parser should be part of the pycadapplication and > >> > not part of the interface ..so let me know if you fill the some > >> > > >> > At this stage there is a lot of code written ..so for my point of view we > >> > have to make a class diagram and start to discuss at the new class structure > >> > ..so our work can be more profitable. > >> > > >> > > >> > Regards, > >> > Matteo > >> > > >> > On Wed, 2010-03-31 at 23:26 +0200, Gertwin Groen wrote: > >> > > >> > Hi Matteo, > >> > > >> > I have just pushed my latest version to git. > >> > It has preliminary support for a command line interface with a very > >> > very simple command interpreter. > >> > > >> > The idea is that every module can register commands that it can handle. > >> > Also I changed the menu structure, it also works by sending commands > >> > to the command interpreter. > >> > > >> > For now the program understands command like (case insensitive): > >> > OPEN > >> > REBUILD_IX > >> > QUIT > >> > REGEN > >> > REDRAW > >> > ZOOMA > >> > > >> > I think this is better than the R37 version because command line and > >> > menu was handled different. > >> > If you have some comments on this, please let me know. > >> > > >> > I did not test it much, so be prepared for bugs. > >> > > >> > Regards, > >> > Gertwin > >> > > >> > > >> > > >> > > > > > > > |
From: Yagnesh D. <yn...@gm...> - 2010-04-03 07:38:36
|
I heard http://sphinx.pocoo.org/ is also good at python documentation you might check can compare with epydoc. |
From: Matteo B. <mat...@bo...> - 2010-04-03 06:51:05
|
Hi Gertwin, I made some modification at the command PyCadBaseCommand .. now it support messages .. so the code in the below mail is wrong .. use this instead: cObject=self.__pyCadApplication.getCommand(cmd_Key) for iv in cObject: exception,message=iv #Now the iv contain a tuple with exception + message try: raise exception(None) except ExcPoint: cObject[iv]=self.imputPoint(message) You can find this modification at the last git push I will be out of the net for the Easter period .. till 7-8 April ..I wish you All (PythonCad Team ) a good Easter and all the best for your family too. Regards, Matteo On Sat, 2010-04-03 at 08:25 +0200, Matteo Boscolo wrote: > Hi Gertwin, > > > > I agree, the function parser is part of the kernel, not the interface. > > I will look at the test_kernel.py for the drawing command structure. > Could you make it part of the pycadapplication ? > > > We must also define a way to get information from the user, picking > > points, selection etc. > My command is an iterable object each element can rise an exception and > tells you witch kind of data the command need .. > This is a piece of code that show you how it works > > cObject=self.__pyCadApplication.getCommand(cmd_Key) # Get The command > for iv in cObject: > try: > raise iv(None) #raise the exception > except ExcPoint: #catch the exception > cObject[iv]=self.imputPoint() #do the job in this > case ask to the user to imput a point from the io > ... > ... > at the end.. > else: > cObject.applyCommand() #apply the command > > I need add the description method at the item exception .. > so we can have the description from the given request... > I let you know how it works as soon I have done the implementation.. > > Do you have any experience in localization with python ? > > > My idea was to do this all by the function parser. > I think that your function parser can parse the input from the user > (menus,textInput,keybord command..) > and call my getcommand to know witch kind of input to ask to the user to > perform the given command > Example: > the user write the Segment command from the input box: > the getCommand return a Segment command > the parser look at the input parameter and ask at the user to give that > request data .. > at the end the parser apply the command > you can fire some event for asking think to the userInterface. > > The user interface will be attached at this event and perform the action > required from the user and from the pycadapplication .. > > > If we define a set of states (pick point, select object, etc.), on > > each mouse move the interface can check the state and react on this. > > > > I agree about the class diagram, we should interact with more people > > on the team. > > If you know some kind of tool to generate class diagrams, we can put > > them on the new wiki. > I'm Working on it .. I'm trying http://epydoc.sourceforge.net/ pakage and let you know.. > > Regards, > Matteo > > > Regards, > > Gertwin > > > > 2010/4/2 Matteo Boscolo <mat...@bo...>: > > > Hi Gertwin, > > > > > > I sow your command line and it working well .. no bugs found .. > > > Could we implement a Multi text viewer where pythoncad put the output > > > If the command succeed say .. "o boy .. well done :-)" > > >> The idea is that every module can register commands that it can handle. > > > I like this idea, but I wold like that the interpret stay under kernel > > > (pycadapplication) > > > > > > I had made some modification at the pythoncad structure .. > > > > > > now the main api file is not pycadkernel but pycadapplication ... > > > > > > I made this change to support the new command class .. > > > This class have not the some functionality of your and is not intend to > > > replace you class .. it's a generic api file in witch all the gui interface > > > are interfaced .. > > > > > > This class will provide hight level functionality to perform drawing > > > operation. > > > for now I have implemented only the getCommand method .. > > > this method give to you the command object so you can fill it with the > > > needed value and perform the applyCommand method to apply the command.. > > > > > > The following line will sow to you an exsample. > > > > > > cObject=pyCadApplication.getCommand("segment") > > > > > > for iv in cObject: #<<-- Loop for all the needed value > > > try: > > > raise iv(None) #<<-- Raise the exception of the needed value > > > except ExcPoint: #<<-- if it's a point came here > > > cObject[iv]=self.imputPoint() #<<--This is my io text imput But > > > could be a function that ask to the user to pick a point > > > except ExcLenght: > > > cObject[iv]=self.inputMsg("Insert A Distance/Radius") > > > except ExcAngle: > > > cObject[iv]=self.inputMsg("Insert An angle") > > > except: > > > print "Bad error !!" > > > raise > > > else: > > > cObject.applyCommand() #<<-- applay the command if all the data are > > > right. > > > > > > you can find a working test if you run the test_kernel.py > > > > > > I intend to provide all the drawing command with this method .. > > > > > > > > > Let me know what you are thinking about it.. > > > I think that your function Parser should be part of the pycadapplication and > > > not part of the interface ..so let me know if you fill the some > > > > > > At this stage there is a lot of code written ..so for my point of view we > > > have to make a class diagram and start to discuss at the new class structure > > > ..so our work can be more profitable. > > > > > > > > > Regards, > > > Matteo > > > > > > On Wed, 2010-03-31 at 23:26 +0200, Gertwin Groen wrote: > > > > > > Hi Matteo, > > > > > > I have just pushed my latest version to git. > > > It has preliminary support for a command line interface with a very > > > very simple command interpreter. > > > > > > The idea is that every module can register commands that it can handle. > > > Also I changed the menu structure, it also works by sending commands > > > to the command interpreter. > > > > > > For now the program understands command like (case insensitive): > > > OPEN > > > REBUILD_IX > > > QUIT > > > REGEN > > > REDRAW > > > ZOOMA > > > > > > I think this is better than the R37 version because command line and > > > menu was handled different. > > > If you have some comments on this, please let me know. > > > > > > I did not test it much, so be prepared for bugs. > > > > > > Regards, > > > Gertwin > > > > > > > > > > > > > > > ------------------------------------------------------------------------------ > Download Intel® Parallel Studio Eval > Try the new software tools for yourself. Speed compiling, find bugs > proactively, and fine-tune applications for parallel performance. > See why Intel Parallel Studio got high marks during beta. > http://p.sf.net/sfu/intel-sw-dev > _______________________________________________ > Pythoncad-developer mailing list > Pyt...@li... > https://lists.sourceforge.net/lists/listinfo/pythoncad-developer > |
From: Matteo B. <mat...@bo...> - 2010-04-03 06:25:19
|
Hi Gertwin, > I agree, the function parser is part of the kernel, not the interface. > I will look at the test_kernel.py for the drawing command structure. Could you make it part of the pycadapplication ? > We must also define a way to get information from the user, picking > points, selection etc. My command is an iterable object each element can rise an exception and tells you witch kind of data the command need .. This is a piece of code that show you how it works cObject=self.__pyCadApplication.getCommand(cmd_Key) # Get The command for iv in cObject: try: raise iv(None) #raise the exception except ExcPoint: #catch the exception cObject[iv]=self.imputPoint() #do the job in this case ask to the user to imput a point from the io ... ... at the end.. else: cObject.applyCommand() #apply the command I need add the description method at the item exception .. so we can have the description from the given request... I let you know how it works as soon I have done the implementation.. Do you have any experience in localization with python ? > My idea was to do this all by the function parser. I think that your function parser can parse the input from the user (menus,textInput,keybord command..) and call my getcommand to know witch kind of input to ask to the user to perform the given command Example: the user write the Segment command from the input box: the getCommand return a Segment command the parser look at the input parameter and ask at the user to give that request data .. at the end the parser apply the command you can fire some event for asking think to the userInterface. The user interface will be attached at this event and perform the action required from the user and from the pycadapplication .. > If we define a set of states (pick point, select object, etc.), on > each mouse move the interface can check the state and react on this. > > I agree about the class diagram, we should interact with more people > on the team. > If you know some kind of tool to generate class diagrams, we can put > them on the new wiki. I'm Working on it .. I'm trying http://epydoc.sourceforge.net/ pakage and let you know.. Regards, Matteo > Regards, > Gertwin > > 2010/4/2 Matteo Boscolo <mat...@bo...>: > > Hi Gertwin, > > > > I sow your command line and it working well .. no bugs found .. > > Could we implement a Multi text viewer where pythoncad put the output > > If the command succeed say .. "o boy .. well done :-)" > >> The idea is that every module can register commands that it can handle. > > I like this idea, but I wold like that the interpret stay under kernel > > (pycadapplication) > > > > I had made some modification at the pythoncad structure .. > > > > now the main api file is not pycadkernel but pycadapplication ... > > > > I made this change to support the new command class .. > > This class have not the some functionality of your and is not intend to > > replace you class .. it's a generic api file in witch all the gui interface > > are interfaced .. > > > > This class will provide hight level functionality to perform drawing > > operation. > > for now I have implemented only the getCommand method .. > > this method give to you the command object so you can fill it with the > > needed value and perform the applyCommand method to apply the command.. > > > > The following line will sow to you an exsample. > > > > cObject=pyCadApplication.getCommand("segment") > > > > for iv in cObject: #<<-- Loop for all the needed value > > try: > > raise iv(None) #<<-- Raise the exception of the needed value > > except ExcPoint: #<<-- if it's a point came here > > cObject[iv]=self.imputPoint() #<<--This is my io text imput But > > could be a function that ask to the user to pick a point > > except ExcLenght: > > cObject[iv]=self.inputMsg("Insert A Distance/Radius") > > except ExcAngle: > > cObject[iv]=self.inputMsg("Insert An angle") > > except: > > print "Bad error !!" > > raise > > else: > > cObject.applyCommand() #<<-- applay the command if all the data are > > right. > > > > you can find a working test if you run the test_kernel.py > > > > I intend to provide all the drawing command with this method .. > > > > > > Let me know what you are thinking about it.. > > I think that your function Parser should be part of the pycadapplication and > > not part of the interface ..so let me know if you fill the some > > > > At this stage there is a lot of code written ..so for my point of view we > > have to make a class diagram and start to discuss at the new class structure > > ..so our work can be more profitable. > > > > > > Regards, > > Matteo > > > > On Wed, 2010-03-31 at 23:26 +0200, Gertwin Groen wrote: > > > > Hi Matteo, > > > > I have just pushed my latest version to git. > > It has preliminary support for a command line interface with a very > > very simple command interpreter. > > > > The idea is that every module can register commands that it can handle. > > Also I changed the menu structure, it also works by sending commands > > to the command interpreter. > > > > For now the program understands command like (case insensitive): > > OPEN > > REBUILD_IX > > QUIT > > REGEN > > REDRAW > > ZOOMA > > > > I think this is better than the R37 version because command line and > > menu was handled different. > > If you have some comments on this, please let me know. > > > > I did not test it much, so be prepared for bugs. > > > > Regards, > > Gertwin > > > > > > > |
From: Matteo B. <mat...@bo...> - 2010-04-03 05:54:08
|
Hi Gertwin > I already tried to free the list of objects. > After I created the display list I added a line like > _outObj = [] may be you can try with del(_outObj) this will delete the variable from python but we still have the pick of memory consumption. > Maybe a solution is when the function getEntityFromTypeArray not > returns an list with objects but a list with entity id's. > When I go through the list with id's, I can call the pycadkernel for a > object with an id as parameter. > This way only one object at the time is constructed (and destroyed). > What I mean is split the function getEntityFromTypeArray in two > functions, the first function gives a list of entity id's, the > function gives an object for a id. I made this modification .. Instead of using the getEntityFromTypeArray use the rows=kernel.getMultiFilteredEntity(entityTypeArray) and to convert each row in an object use the obj=kernel.convertRowToDbEnt(rows[i]) a simple example could be: rows=kernel.getMultiFilteredEntity(entityTypeArray) for row in rows: obj=kernel.convertRowToDbEnt(rows[i]) # do your stuff > Question: > The extra 140 mb. which is used by the wx application is for building > the display list in memory (and a few mb's for wx itself). > Do you think 140 mb is too much, if so we can try OpenGL. > I don't think it is to much for such a large drawing. It's not too much for such a file ... I think that we are in a right way .. Regards, Matteo > > Regards, > Gertwin > > > > > 2010/4/2 Matteo Boscolo <mat...@bo...>: > > Hi Gertwin, > > > > Have any comment to this email? > > > > How we can improve this function to perform better display list .. > > > > > > Regard, > > Matteo > > > > > > > > ---------- Doorgestuurd bericht ---------- > > From: Matteo Boscolo <mat...@bo...> > > To: Geon Gertwin <ger...@gm...> > > Date: Sat, 27 Mar 2010 09:54:57 +0100 > > Subject: Re: [Pythoncad-developer] Test Performance > > I did the test and lookign at this function > > def getEntityFromTypeArray(self, typeArray): > > """ > > get entitys from an array of type > > """ > > _outObj=[] > > _dbEntRow=self.getMultiFilteredEntity(entityTypeArray=typeArray) > > > > -->> here we have 31 Mb and all the entity are in the _dbEntRow > > > > for _row in _dbEntRow: > > _style=_row[4] > > _dumpObj=pickle.loads(str(_row[3])) > > _objEnt=PyCadEnt(_row[2],_dumpObj,_style,_row[1]) > > _objEnt.state=_row[5] > > _objEnt.index=_row[6] > > _objEnt.visible=_row[7] > > _objEnt.updateBBox() > > _outObj.append(_objEnt) > > return _outObj > > > > --> here we have 400 Mb approximatively > > > > Regards, > > Matteo > > > > > > > > On Sat, 2010-03-27 at 09:05 +0100, Matteo Boscolo wrote: > >> Hi Gerwin, > >> I did some performance test on the huge dxf layout that you have send to > >> me. > >> > >> This is the result of memory charge > >> > >> with wx 475 Mb > >> with text_interface 338 Mb > >> > >> I will look better to it, but at the first glance I can surly say that > >> all this memory consumption is due to the kernel.getAllDrawingEntity() > >> function. > >> > >> This function create all the geometrical object in memory and of course > >> with about 227250 object created the memory consumption is very hight. > >> Using this method we have replicated R37 ... that is not what we are try > >> to do.. > >> > >> we need to avoid to use this method for get all the entity for the > >> display list.. > >> > >> We need to load the entity just for geometrical operation .. nothing > >> else... as we have discuss in some mail ... > >> > >> May be you can destroy elements from the array after generating the > >> display list..so the python garbage collection remove it from the > >> memory.. > >> But of course remain a pick of memory .. > >> > >> or may be the problem is that I do not close the cursor after giving to > >> you the array .. > >> > >> I will do some more test and let you know... > >> > >> Do you have any alternative way to create the display list without using > >> the kernel.getAllDrawingEntity() function ? > >> > >> Regards, > >> Matteo > >> > >> > >> > >> > >> ------------------------------------------------------------------------------ > >> Download Intel® Parallel Studio Eval > >> Try the new software tools for yourself. Speed compiling, find bugs > >> proactively, and fine-tune applications for parallel performance. > >> See why Intel Parallel Studio got high marks during beta. > >> http://p.sf.net/sfu/intel-sw-dev > >> _______________________________________________ > >> Pythoncad-developer mailing list > >> Pyt...@li... > >> https://lists.sourceforge.net/lists/listinfo/pythoncad-developer > >> > > > > > > > |
From: Matteo B. <mat...@bo...> - 2010-04-02 06:49:28
|
Hi Gertwin, I sow your command line and it working well .. no bugs found .. Could we implement a Multi text viewer where pythoncad put the output If the command succeed say .. "o boy .. well done :-)" > The idea is that every module can register commands that it can handle. I like this idea, but I wold like that the interpret stay under kernel (pycadapplication) I had made some modification at the pythoncad structure .. now the main api file is not pycadkernel but pycadapplication ... I made this change to support the new command class .. This class have not the some functionality of your and is not intend to replace you class .. it's a generic api file in witch all the gui interface are interfaced .. This class will provide hight level functionality to perform drawing operation. for now I have implemented only the getCommand method .. this method give to you the command object so you can fill it with the needed value and perform the applyCommand method to apply the command.. The following line will sow to you an exsample. cObject=pyCadApplication.getCommand("segment") for iv in cObject: #<<-- Loop for all the needed value try: raise iv(None) #<<-- Raise the exception of the needed value except ExcPoint: #<<-- if it's a point came here cObject[iv]=self.imputPoint() #<<--This is my io text imput But could be a function that ask to the user to pick a point except ExcLenght: cObject[iv]=self.inputMsg("Insert A Distance/Radius") except ExcAngle: cObject[iv]=self.inputMsg("Insert An angle") except: print "Bad error !!" raise else: cObject.applyCommand() #<<-- applay the command if all the data are right. you can find a working test if you run the test_kernel.py I intend to provide all the drawing command with this method .. Let me know what you are thinking about it.. I think that your function Parser should be part of the pycadapplication and not part of the interface ..so let me know if you fill the some At this stage there is a lot of code written ..so for my point of view we have to make a class diagram and start to discuss at the new class structure ..so our work can be more profitable. Regards, Matteo On Wed, 2010-03-31 at 23:26 +0200, Gertwin Groen wrote: > Hi Matteo, > > I have just pushed my latest version to git. > It has preliminary support for a command line interface with a very > very simple command interpreter. > > The idea is that every module can register commands that it can handle. > Also I changed the menu structure, it also works by sending commands > to the command interpreter. > > For now the program understands command like (case insensitive): > OPEN > REBUILD_IX > QUIT > REGEN > REDRAW > ZOOMA > > I think this is better than the R37 version because command line and > menu was handled different. > If you have some comments on this, please let me know. > > I did not test it much, so be prepared for bugs. > > Regards, > Gertwin > |