Templot Club forums powered for Martin Wynne by XenForo :

TEMPLOT 3D PLUG TRACK - To get up to speed with this experimental project click here.   To watch an introductory video click here.   See the User Guide at Bexhill West.

   Templot5 - To join this open-source project on GitHub click here.  For news of the latest on-going developments click here.  Templot5 is now included with Templot2 - download.        WIKI

  • The Plug Track functions are experimental and still being developed. Some of the earlier pages of this topic are now out-of-date.

    For an updated overview of this project see this topic.   For some practical modelling aspects of using Plug Track see Building 3D Track.

    The assumption is that you have your own machines on which to experiment, or helpful friends with machines. Please do not send Templot files to commercial laser cutting or 3D printing firms while this project is still experimental, because the results are unpredictable and possibly wasteful.

    Some pages of this and other topics include contributions from members who are creating and posting their own CAD designs for 3D printing and laser-cutting. Do not confuse them with Templot's own exported CAD files. All files derived from Templot are © Martin Wynne.
  • The Plug Track functions are experimental and still being developed.

    For an updated overview of this project see this topic.   For some practical modelling aspects of using Plug Track see Building 3D Track.

    The assumption is that you have your own machines on which to experiment, or helpful friends with machines. Please do not send Templot files to commercial laser cutting or 3D printing firms while this project is still experimental, because the results are unpredictable and possibly wasteful.

    Some pages of this and other topics include contributions from members who are creating and posting their own CAD designs for 3D printing and laser-cutting. Do not confuse them with Templot's own exported CAD files. All files derived from Templot are © Martin Wynne.

Templot5 and plug track - progress discussions

Quick reply >
Hi Martin,
After some fun trying to get the chair outline brush to be w3c Khaki, but getting sometning completely different, I discovered that in the LCL world RGB is held in Tcolor as $ssBBGGRR ie BGR (short form of my expletive), so Khaki instead of being $00F0E6B6 is $008CE6F0!
Oh the joys of the pascal world.

Anyway this is what chair outlines + labels looks like:-
1726164196695.png


I can see a chair_outline_colour parameter appearing soon.....

Now I must add the code in to handle the background templates.

All quite enjoyable really.

Steve
 
_______________
message ref: 13153
Hi Martin,
After some fun trying to get the chair outline brush to be w3c Khaki, but getting sometning completely different, I discovered that in the LCL world RGB is held in Tcolor as $ssBBGGRR ie BGR (short form of my expletive), so Khaki instead of being $00F0E6B6 is $008CE6F0!
Oh the joys of the pascal world.

Anyway this is what chair outlines + labels looks like:-
View attachment 11265

I can see a chair_outline_colour parameter appearing soon.....

Now I must add the code in to handle the background templates.

All quite enjoyable really.

Steve
@Steve_Cornford

Well done Steve. (y)

Yes, red goes in the low-byte, so colours are $AABBGGRR, the high byte being the alpha channel (transparency) -- which doesn't always work and is best left on zero.

Keep the solid colours fairly pale to avoid over-wetting paper prints causing them to cockle (and wasting ink).

TColor is everywhere interchangeable with integer, I never understood why it needed its own Type.

cheers,

Martin.
 
_______________
message ref: 13154
Oh and another thing I don't like about Pascal (the programming language), the array indexing method!
I am sure if you had asked Pascal (the mathematician) to reference a set of n objects I feel sure he would number them from 1 to n, rather than 0 to n-1.

Steve
 
_______________
message ref: 13155
Oh and another thing I don't like about Pascal (the programming language), the array indexing method!
I am sure if you had asked Pascal (the mathematician) to reference a set of n objects I feel sure he would number them from 1 to n, rather than 0 to n-1.

Steve
@Steve_Cornford

Hi Steve

For your own arrays you can have whatever limits you want:

array:abc[7..19] of integer;

But the Lazarus components are all zero-based, such as TStringList, so it's easier to follow suit. It's often convenient that an empty list has a negative index (-1) rather than zero.

If you find it difficult to remember, you can always write:

for n:=LOW(abc) to HIGH(abc) do ...

In fact, I think that's the preferred way.

Note that strings can be treated as 1-based arrays of characters:

str:='xyz';

str[2] = 'y'

cheers,

Martin.
 
_______________
message ref: 13157
Hi Martin,
After some fun trying to get the chair outline brush to be w3c Khaki, but getting sometning completely different, I discovered that in the LCL world RGB is held in Tcolor as $ssBBGGRR ie BGR (short form of my expletive), so Khaki instead of being $00F0E6B6 is $008CE6F0!
Oh the joys of the pascal world.

Anyway this is what chair outlines + labels looks like:-
View attachment 11265

I can see a chair_outline_colour parameter appearing soon.....

Now I must add the code in to handle the background templates.

All quite enjoyable really.

Steve
wow Steve,
thats very impressive. your getting right into this programming. Please don't forget about your railway modelling :)
cheers
Phil
 
_______________
message ref: 13164
Hi Phil,
Thank Martin, not me. I've just cut & pasted his code with a small bit of editing.
We just need to find some youngsters now to help, although it does keep the old grey cells active.

At present my modelling is in hibernation whilst several rooms are being decorated, so am Templotting instead.

Steve
 
_______________
message ref: 13165
Hi Steve,

Sure. I'm back in dxf_unit at present.

cheers,

Martin.
 
_______________
message ref: 13181
Hi Martin,
I have also tried adding chair labels to the PDF output for background templates.

At first I could not work out why I was not getting any, then I realised that you have to have show chair labels ticked when you store to background the control template, as that is when it copies the marks to the box.

Having twigged that, I managed to get this:-
1726299847941.png


Just have to work out if it is my x or my y that is offset to the right?

Steve
 
_______________
message ref: 13200
Just have to work out if it is my x or my y that is offset to the right?
@Steve_Cornford

Hi Steve,

Text gets tricky when going from screen to output because it gets rotated 90 degrees in the process, about the top left corner.

(Unless you get involved in the Windows GDI text angle functions -- which I never have because I just know that they won't work properly, or the same way, on all printers.)

Also remember that background templates include their Y-datum in the Y co-ordinates, and the control template doesn't.

If you would like to push or post some of your code, I will have a look at it. But I'm not feeling too good today so I can't promise to get back to you straight away. Would someone like to reply to new member Tim2014 in Australia?

p.s. in your chairing screenshot you seem to have all L1 chairs? They don't fit (11" wide) on ordinary 10" sleepers of course.

Well done on getting deep in the code! Always remember to test everything on right-hand templates and also on curved, shifted and rotated templates.

cheers,

Martin.
 
_______________
message ref: 13202
Hi Martin,
Have been out & about today since posting earlier.
Also remember that background templates include their Y-datum in the Y co-ordinates, and the control template doesn't.

Thanks for this info which I was not away of.

If you would like to push or post some of your code, I will have a look at it. But I'm not feeling too good today so I can't promise to get back to you straight away. Would someone like to reply to new member Tim2014 in Australia?

I have just posted a reply, but it might not be too helpful.

p.s. in your chairing screenshot you seem to have all L1 chairs? They don't fit (11" wide) on ordinary 10" sleepers of course.
Yes, I had set all chairs to be L1, just to make sure that I got labels other than S1, but forgot to switch them back. You should have seen the turnout that I set to all L1!

Always remember to test everything on right-hand templates and also on curved, shifted and rotated templates.
Will do.

Hope you are feeling better soon.

Steve
 
_______________
message ref: 13215
Hi Martin,
Background templates
A left & right handed turnout as requested, with both chair outlines & chair labels printed to PDF...


1726340712094.png

bit puzzled by the change in label between T7 & T8.

But at least I have cured the y-axis offset thanks to your guidance.

Perhaps I also ought to re-instate your piece of trackpad code that reduces the size of the labels?


Steve
 

Attachments

  • pdf_chair_label_test_pages_2024_09_14_2001_55.pdf
    248.3 KB · Views: 38
_______________
message ref: 13218
Hi Martin,
Hope you are feeling a bit better today.
I have added printchair_infill_color and printlabel_infill_colour (+ save_pcic & save_plic ) variables to print_settings_unit.pas, and (as an experiment) because I didn't want to have to touch pad_unit, the ability to edit those colours to the print_settings_unit.lfm.

I did this as it is necessary to go into the output elements form to tick the chair outlines tickbox, so why not also make the colour change available there too. (similar to the brick_unit form)

My experimental output elements form:-
1726421921288.png

1726422020764.png

1726422098935.png


I have chosen garish colours for the test :cool:

Curved left & right hand background templates!
1726422260258.png


I believe I have solved the problem with some of the chair labels text having a white background.

Just need to tidy up my coding and remove the vestiges of showmessage statements that I used for fault tracing.

I would value your opinion on the chairing group added to the output settings screen.
Might need to just make the panel heading chairing elements, then move the other objects down & add column headings such as:-
infill colour ...

Also it might be worth just edging out the chair labels a tad, or make them smaller.

Steve
 

Attachments

  • pdf_chair_label_test_pages_2024_09_15_1842_59.pdf
    236.7 KB · Views: 38
_______________
message ref: 13228
Hi Martin,
Hope you are feeling a bit better today.
I have added printchair_infill_color and printlabel_infill_colour (+ save_pcic & save_plic ) variables to print_settings_unit.pas, and (as an experiment) because I didn't want to have to touch pad_unit, the ability to edit those colours to the print_settings_unit.lfm.

I did this as it is necessary to go into the output elements form to tick the chair outlines tickbox, so why not also make the colour change available there too. (similar to the brick_unit form)

My experimental output elements form:-
View attachment 11339
View attachment 11340
View attachment 11341

I have chosen garish colours for the test :cool:

Curved left & right hand background templates!
View attachment 11342

I believe I have solved the problem with some of the chair labels text having a white background.

Just need to tidy up my coding and remove the vestiges of showmessage statements that I used for fault tracing.

I would value your opinion on the chairing group added to the output settings screen.
Might need to just make the panel heading chairing elements, then move the other objects down & add column headings such as:-
infill colour ...

Also it might be worth just edging out the chair labels a tad, or make them smaller.

Steve
@Steve_Cornford

Hi Steve,

Looking good. (y)

Please just push/merge it if you are happy with it.

One still irritating quirk is:

select_colour_t2.png


select_colour_t5.png



Which we could probably live with -- but for the American spelling of color. :(

Worth seeing if we can fix it.

Martin.
 
_______________
message ref: 13229
@Steve_Cornford @Alistair Ward

Hi Steve,

(y)

I'm hoping to release 256a/556a in the next 24 hours or so (to get the loose jaw COT option available in time for Scaleforum). If you want these latest changes included, I will wait until you PR/merge.

I'm also still using GitHub Desktop as it works fine for me and Alistair's methods and software is going over my head. Being the dreaded Owner means none of my web pages seem to match anyone else's.

I'm not feeling too good at present, too many hours on the computer. If I go missing you can find me here (with a boiled egg):


offa_country_1732x960.jpg



Martin.
 
_______________
message ref: 13234
Hi Martin,
I have finished my changes, so I created a push request that I believed updated the T556 branch, but github desktop then took me automatically to the online github repository, where I thought I had to press another push button, but this seems to have merged the T556 branch into your main

Sorry if this was premature.

It mentions #41 Martin Wynne commit, and it looks as though it includes your units as well as my units.

I hope I haven't cocked it all up.

It should not have affected your local Lazarus working directory.

Steve
 
_______________
message ref: 13236
Last edited:
Hi Martin,
I have finished my changes, so I created a push request that I believed updated the T556 branch, but github desktop then took me automatically to the online github repository, where I thought I had to press another push button, but this seems to have merged the T556 branch into your main

Sorry if this was premature.

It mentions #41 Martin Wynne commit, and it looks as though it includes your units as well as my units.

I hope I haven't cocked it all up.

It should not have affected your local Lazarus working directory.

Steve
@Steve_Cornford @Alistair Ward

Hi Steve,

Don't worry, it's just as much of a muddle to me.

I will create a new release of 256a/556a using my current Lazarus stuff, and ignore what's in the Git folder.

Then I will sort out the differences using WinMerge here, where I know what I'm doing, and Git can't mess it up.

But for today I'm going back into my own hobby mode. I'm working on the Neptune 4 filing jigs, and I want to improve the backlash correction in the gcode. It made a big difference on the minibo and I want to try it on the Neptune 4 and see what Klipper does with it. The high speed is all very well, but we seem to be losing some dimensional accuracy. That might be backlash under-run or inertial over-run. Need to know. But it's forecast to be a nice sunny day, so I might switch the whole thing off and go out with a boiled egg.

cheers,

Martin.
 
_______________
message ref: 13237
HI Martin,
Here are my latest changes in case you have time to winmerge into your local lazarus development area before publishing 556 etc.

colour_unit > correct title caption
print_settings_unit > chairing output elements infill colours
pdf_laz_unit > output chair outlines, chair labels, using print_settings_unit output field options


Steve
 

Attachments

  • pdf_laz_unit.pas
    293.6 KB · Views: 32
  • print_settings_unit.lfm
    15.9 KB · Views: 33
  • print_settings_unit.pas
    18.6 KB · Views: 37
  • colour_unit.lfm
    1.5 KB · Views: 34
  • colour_unit.pas
    5.6 KB · Views: 32
_______________
message ref: 13239
Hi Martin,
And here is print_unit.pas with optional chair outlines & chair labels.
Obviously it needs the print_settings_unit's and colour_unit's in my previous post.

Preview of a page, forgive the garish colour choice!
1726525448547.png


Steve
 

Attachments

  • print_settings_unit.pas
    18.6 KB · Views: 33
_______________
message ref: 13256
Friends.

These photos have upset me so much it has stopped me in my tracks and made me wonder where I have gone wrong with Templot:

https://85a.uk/templot/club/index.php?attachments/149-jpeg.11287/
https://85a.uk/templot/club/index.php?attachments/142-jpeg.11237/
https://85a.uk/templot/club/index.php?attachments/140-jpeg.11236/
https://85a.uk/templot/club/index.php?attachments/142-jpeg.11244/

Templot is a tool to aid the modelling of track based on prototype designs and practice. Putting a break at the knuckle in a wing rail is the sort of thing they might do at that factory in Devon, but it's not what I created Templot for.

As soon as I can, I shall release 556a with the default COT setting changed to loose jaws for V-crossings, so that one-piece wing rails can be used:


index.php



But probably not today. I can't face spending another sunny day indoors on the computer.

I should never have released the previous COT version. It was only ever intended as an experiment to show what might be possible.

Martin.
 
_______________
message ref: 13258
Hi Martin,

Don't bother answering this now, get out in the sunshine & generate some vitamin D

Just getting my thoughts down so that I can stop worrying about it!

Chair Labels
An anomoly

One thing I have noticed is that in order to have chair labels on background templates, you have to have the Experimental 3D panel showing with the show chair labels option ticked at the time you perform the store & background.
Also, assuming you have stored the templates complete with labels, and saved them in a .box file, when reloading the .box file, unless you have also got the Experimental 3D panel showing with show chair labels ticked, the chair labels are not reloaded.

So far, by inspecting your code (and copying it), I have only worked out how to process the marks that exist in a Template.

I have yet to find out how marks in the 461-479 range get created in the first place. by this I mean that where does a mark entry with a mark coed in the range 461 to 479 get written to the marks list, rather than read from the list?

Solution
A possible solution to this anomoly would be that in process store & background, in broad terms we:-

save existing value of show chair labels as old
if not ticked, tick it & refresh drawing (so that labels created for control template)

[existing store to background code]

if current value of show chair labels <> old value, restore original value of show chair labels and refresh drawing


Then in the Reload from BOX file, we:-

save existing value of show chair labels as old
if not ticked, tick it & refresh drawing (so that labels created for control template)

[existing load from BOX file]

if current value of show chair labels <> old value, restore original value of show chair labels and refresh drawing


Am I completely barking up the wrong tree?

Where do marks 461-479 get added/created in the marks list?

ps I've often wondered about the caption "Store & background", to me it means "Store to background", but am I missing something?

Don't bother answering this now, get out in the sunshine & generate some vitamin D :cool:

Steve

ps dont forget the boiled egg!
 
_______________
message ref: 13259
Martin,
Please don't be upset. Those photos show an ongoing experiment, which has led to some excellent progress aside from the Plug Track concept. What John has proved with his experiment is that the COT principle works, and I'm sure he'll be the first to come along with one piece wing rails in the fullness of time.
Those of us following this progress know that this is not the end, it's just the beginning.
The fact that you already have in mind improvements to the COT version of 3d track, shows that the experiments are working to progress the concept.
I salute you both for doing something which you don't need to do, to give the rest of us excellent options. 💐
 
_______________
message ref: 13262
Friends.

These photos have upset me so much it has stopped me in my tracks and made me wonder where I have gone wrong with Templot:

https://85a.uk/templot/club/index.php?attachments/149-jpeg.11287/
https://85a.uk/templot/club/index.php?attachments/142-jpeg.11237/
https://85a.uk/templot/club/index.php?attachments/140-jpeg.11236/
https://85a.uk/templot/club/index.php?attachments/142-jpeg.11244/

Templot is a tool to aid the modelling of track based on prototype designs and practice. Putting a break at the knuckle in a wing rail is the sort of thing they might do at that factory in Devon, but it's not what I created Templot for.

As soon as I can, I shall release 556a with the default COT setting changed to loose jaws for V-crossings, so that one-piece wing rails can be used:


index.php



But probably not today. I can't face spending another sunny day indoors on the computer.

I should never have released the previous COT version. It was only ever intended as an experiment to show what might be possible.

Martin.

Martin

You should not get upset by what you have made, firstly as far as I am concerned COT track is still in an experimental stage. But rather than be disappointed, I think you should be over the moon about what you have achieved. You have the solution and its just not been updated, as it is I think I have a temporary solution to solve the problem. Give me a few hours to test the idea, simply make the 1 piece wing rails, cut the brick in half then thread the wing rails on to each half. The good thing about code 125 is the strength of the rails so the bricks do not necessarily need clips

Cheer up in a very short time you have made giant steps in 0 gauge, the brick for the switch was nigh on perfect, no strings !!! (2 small pips). For something which is still in the experimental stage its stunning

My son in law who normally ignores my trains was amazed at the quality of the printing especially the detail of the bolts

On the display model I will have a sign stating COT track in the experimental stage
 
_______________
message ref: 13263
Where do marks 461-479 get added/created in the marks list?

ps I've often wondered about the caption "Store & background", to me it means "Store to background", but am I missing something?
@Steve_Cornford

Hi Steve,

See in math_unit:

Code:
procedure do_chair_mark(pt1,pt2:Tpex; code:integer);
... ...
... ...  
                                    
fill_mark(convert_point(pp1),convert_point(pp2),code,'');          // into marks list.

store means -- copy the control template specification into the storage box.

store & background means -- and then copy it to the trackpad background (i.e. by building it -- generating it).

other options are to store it unused, or as a library template:


store_options.png


cheers,

Martin.
 
_______________
message ref: 13264
Firstly I would like to thank you for your ongoing work with COT it is brilliant. Mind you it’s going to cost me some money to get some 0 gauge stock!!! Please keep going it’s great.

Just a quick observation for you and Steve et.al. When I have 5 open and I need to minimise to say go to my slicer. I seam to have a small problem. If I go to my bottom task bar to maximise the program says loading templates and then just sticks. To fully get back I have to close down and restart. I will send some screen shots over tomorrow.

Keith
 
_______________
message ref: 13265
Hi Keith,

I get:-
1726566773941.png


Click on the "loading templates" bit, this restores the yellow panel & in bottom left of screen there is:-
1726566889915.png

the "trackpad" minimised. you just need to hover over the green hat/restore up button (as shown here) & click it to get the trackpad back.


Steve
 
_______________
message ref: 13266
160.jpeg


Job done the chairs are strong enough for the rail to be threaded both ways

161.jpeg


Nicely curved at the knuckle, far from a disappointment it shows both the quality of design and of the product being used. Sorry I did not try this sooner and save the disappointment

162.jpeg


Shows where I made the cut

Some have made comments I have not used clips, fair enough, but in my defense in 7mm scale the mass of the rail keeps everything inline and shape.

You may be right about the depth of the jigs, I found the rail not being gripped very hard, I just had to adapt my filing methods, but it may be down to both the size of 7mm rail and file (Smooth) used, other than that it worked very well

I will let you know about the chairs gripping, the wing rails are a bit loose which may be down to the effect of threading the rail, they might relax back to being a bit tighter, at worse a spot of glue will solve the issue. Better than being too tight and breaking under strain

Also if there are any build experiments you would like me to make just ask

Now off for a bit of domestic duties
 
_______________
message ref: 13268
Just a quick observation for you and Steve et.al. When I have 5 open and I need to minimise to say go to my slicer. I seam to have a small problem. If I go to my bottom task bar to maximise the program says loading templates and then just sticks. To fully get back I have to close down and restart. I will send some screen shots over tomorrow.
@KHC1 @Steve_Cornford

Hi Keith, Steve,

I'm not seeing that problem. But I know I live on a different planet from everyone else. :)

To minimize Templot (2 or 5, since the beginning of time), press the PAUSE/BREAK key on the keyboard:


pause_break_key.png



This minimizes the entire application, instead of just the window. When you click the hard-hat icon on the taskbar (green for Templot5), it should restore everything exactly where you left it.

But living on a different planet as I do, I just know that I shall now be told that no-one else has a pause/break key. :unsure:

So I have added a button which does the same thing. Bottom right of the trackpad. Will be in 556a shortly:


minimize_button.png


cheers,

Martin.
 
_______________
message ref: 13269
Hi Martin,
Thanks for the info.
Upon inspection, my laptop keyboard if I hold the [fn] key down & then press the right hand shift key, it invokes [pause].
The [pause] legend on the shift key is very small!

This minimises Templot5.
When I then left-click on the hard hat, I get this:-
1726574390442.png

then when I left-click on the "loading templates" screen it restores this:-
1726574466162.png


then I just click [trackpad] button.

In our defense (Keith & myself), in the Templot2 world the minimise button minimises trackpad, and when you left-click on the yellow hat icon, it restores trackpad as it was before.

I guess it is not to do with which planet you are on, but more to do with which Universe, Delphi or Lazarus.

More likely is the fact that in the Lazarus universe you have to have the two "threads" running, if "thread" is the right word?

This one:-
1726574881338.png


and this one:-
1726575154000.png


which is why when you click on the green hat you get:-
1726575085627.png

the choice of two.

Are you saying that on your planet, when you left-click on the green hat it just restores the trackpad straight off as it did in Templot2?

Steve
 
_______________
message ref: 13270
163.jpeg


The first part of the build has gone better than expected, the turnout part is proving to be better than expected. So far the filing jigs are working but not gripping the rail as tight as we want, which is both a known problem and one in which Martin has told me how to overcome

164.jpeg


A closer look at the crossing I hope the knuckle now lives up to Martin's expectations
 
_______________
message ref: 13272
Are you saying that on your planet, when you left-click on the green hat it just restores the trackpad straight off as it did in Templot2?
@Steve_Cornford @KHC1

Hi Steve, Keith,

The "loading templates" which you see is not coming live from the Templot program. It is the screenshot which Windows made when you originally launched Templot.

On my planet (which is called Windows11), there are 2 separate icons on the taskbar, one for the terminal window and one for Templot5. When they are hovered over, I see:


task_icon2.png
task_icon1.png



Clicking the green hat icon or the panel above it restores Templot with the yellow program window in front of the trackpad.

That often happens because that window is the "main form" in Delphi/Lazarus speak and represents the full application. There is no need to click on the trackpad button specifically, you can just click anywhere on the trackpad to bring it to the front.

It's all a bit messy because of the need in Lazarus to have the terminal window running at the same time. Without it, Templot5 consumes about 30% cpu even when idle -- which would soon drain a laptop battery. Why this happens is a mystery, and why the terminal window cures it is an equal mystery. None of this happens in Templot2 from Delphi. We are still waiting for an IT guru to join the T5 project and sort it out for us.

cheers,

Martin.
 
_______________
message ref: 13273
Hi Martin,
Unfortunately I cannot travel to your planet until I purchase a new computer, or so Microsoft tells me. :(

Hopefully it will be another pleasant day on (this part of) planet Earth, and the countryside beckons :)

I assume you are in the middle of boiling an 🥚

Steve
 
_______________
message ref: 13298
HI Martin,

I have amended math_unit.pas so that when producing chairs it also produces labels.

I have added a "changes applied" section at the beginning, as an idea to keep track of changes.

Code:
(*
================================================================================
    Changes applied
================================================================================
    SC 17-SEP-2024 556
        calc_fill_chair_outline modified to always generate chair labels,
        irrespective of state of brick_form.Showing, and state of
        brick_form.chair_label_interch_checkbox.
        brick_form.chair_label_interch_checkbox is now used solely for
        switching on & off the display of chair labels on the trackpad.
    sc 17-sep-2024 556.
    
    
================================================================================
*)

But please reject if you think it is not a good idea.

By that I mean both the actual change & the description of changes...

my latest version attached.


Steve
 

Attachments

  • math_unit.pas
    1.8 MB · Views: 48
_______________
message ref: 13300
Back
Top