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 >
I believe that we have both mentioned this several times before, and also that having printed a raft of these switch block chairs, and having washed & cured the raft, a good practice is to run a permanent marker along the outside edges of the plugs to aid orientation and which side is which, before removing the chairs from the raft.
Perhaps red for 1PL to 11PL, and green for 1PR to 11PR.
Perhaps we should consider the provision of a raft label containing rh or LH to indicate the hand.
Hi Steve, this is exactly what I do to ensure the correct special Heel/Vee chair is correctly orientated. It really does not take 2 minutes. A possible enhancement for the future would be to add small slots/vees/grooves/indentations down the plug on the stock rail and heel sides e.g. Note: NOT essential, just a suggestion for the distant future.
Heel Chair identification.png
 
_______________
message ref: 14191
Hi Martin,
I have made a start on the chairing elements dialog...
1729631571220.png


Rough design so far.

I haven't added :-
[chair jaw options on this template...] yet as I thought perhaps as it mentions this template it ought to be on the control template elements dialog.

Also ☑️ template is waybeam timbers, for the same reason.

[modify group to match all above] button either yet, as need to decide where to put it.

I have changed some of the use all chair options to radiobuttons as I believe that they are mutually exclusive.


I was planning on moving the following features to a timbering elements dialog as they could be used independently of experimental chairing:-
[switch driver slider ribs...]
2-D kerf snibs
TS snibs
MS snibs

(what about nibs...)

I would welcome your feedback if you feel so inclined, especially on any experimental wording warning.

Steve
 
_______________
message ref: 14219
Hi Martin,
I haven't added :-
[chair jaw options on this template...] yet as I thought perhaps as it mentions this template it ought to be on the control template elements dialog.

Also ☑️ template is waybeam timbers, for the same reason.
I now realise that all the options on here apply only to the control template.
Until that is you click on the [ modify group to match settings... ] button that I have yet to add!

So I will include these two options plus of course the group button.

Steve
 
_______________
message ref: 14228
Hi Martin,

I now realise that all the options on here apply only to the control template.
Until that is you click on the [ modify group to match settings... ] button that I have yet to add!

So I will include these two options plus of course the group button.

Steve
@Steve_Cornford

Hi Steve,

I'm leaving it all to you. :)

But I do think we should keep functions related to track design completely separate from the dialogs about screen appearance, colours and cosmetic on-screen details, etc., which don't have any bearing on the design functions.

A good way of thinking about it is to keep stuff which gets saved in a BOX file completely separate from stuff which doesn't.

cheers,

Martin.
 
_______________
message ref: 14231
A good way of thinking about it is to keep stuff which gets saved in a BOX file completely separate from stuff which doesn't.
I shall endeavour to do so.

I have come to the conclusion that it is ok to have a switch that controls something in more than one place.
Just like I have a switch on the ground floor that controls the landing light, and a switch on the landing that also controls the landing light.
Just need to work out how to wire it! :unsure:

Steve
 
_______________
message ref: 14234
Last edited:
I have come to the conclusion that it is ok to have a switch that controls something in more than one place.
@Steve_Cornford

Hi Steve,

Sure. There is a lot of that already -- remember that Templot is a workshop tool, not an exercise in software elegance. :)

The important thing is to use exactly the same words to describe it, in every place where it appears. I haven't always managed that.

To wire it up, just call the Click method of the first one:

pad_form.other_button.Click;

or

pad_form.a_menu_entry.Click;

or create a separate function which can be called from both.

cheers,

Martin.
 
_______________
message ref: 14235
Hi Martin,
The important thing is to use exactly the same words to describe it, in every place where it appears. I haven't always managed that.

As far as Experimental chairing is concerned what are your preferred words (and style)?

For Instance:-
1729771340635.png

The above screen has a checkbox, whereas the following screen uses radiobuttons:-
1729771475273.png


So far I have copied the menus radio-button style to the chairing_elements dialog:-
1729778425965.png


The radio button options might make things clearer, but they do tak e up more space.

ps don't worry about the "use M1 bridge chairs" as it is disabled, just wanted to make space for it if and when it arrives.

If ☑️rotated sockets for waybeams is ticked, then I plan to test if either of "use all L1" or "use all M1" is ticked else tick "use all L1".

If you are happy with the construction so far, I will start building the code behind it.

Steve
 
_______________
message ref: 14269
Hi Martin,


As far as Experimental chairing is concerned what are your preferred words (and style)?

For Instance:-
View attachment 12305
The above screen has a checkbox, whereas the following screen uses radiobuttons:-
View attachment 12306

So far I have copied the menus radio-button style to the chairing_elements dialog:-
View attachment 12311

The radio button options might make things clearer, but they do tak e up more space.

ps don't worry about the "use M1 bridge chairs" as it is disabled, just wanted to make space for it if and when it arrives.

If ☑️rotated sockets for waybeams is ticked, then I plan to test if either of "use all L1" or "use all M1" is ticked else tick "use all L1".

If you are happy with the construction so far, I will start building the code behind it.

Steve
@Steve_Cornford

Hi Steve,

Looking good. (y)

I tend to prefer radio buttons where there is room for them (and they can have their own containing TPanel).

That way you can make clear what the alternative is. If it's just an "experimental chairing" tickbox, unticking it might mean:

no chairing
previous-design chairing
baseplates instead of experimental chairs
experimental something else

But often there isn't space. Also of course, the easy way for a user to find out what something does is to click it. But often they seem reluctant to do that.

cheers,

Martin.
 
_______________
message ref: 14276
With that in mind:-
For Instance:-
1729771340635.png
I agree with you , even if it means making the quick set form slightly larger to replace the checkbox with a radiobutton panel.
I don't think there would be any harm in that.

My current plan of attack is to revise pad_unit.pas so that each of the experimental 2D 3D menuClick procedures invoke their a sub-procedure (as you suggested) that does not itself reference menu.click object, so that when the time comes removing a menu object will not upset the apple cart.

As a trial I revised the experimental chairing menu entries:-

Code:
procedure Tpad_form.experimental_chairing_menu_entryClick(Sender: TObject);  // 214a

begin
  {if alert(2,'    experimental  3D  chairing',
             'It is now possible to have some REA bullhead chair positions shown on the trackpad templates,'
             +' and for exported 3-D DXF and STL files to contain REA chair detail suitable for CAD rendering, 3D printing, CNC milling, and laser cutting.'
             +'||rp.gif In order for the 3-D chair detail to be generated correctly, it is necessary for the rail section data in the templates to match the model rail section currently selected on the DXF dialog.'
            +' This means the rail height and the rail head and foot widths.'
            +'||green_panel_begin tree.gif  If you continue your current rail section data set at `0real > rails >`1 will be ignored.||Rails will be vertical - any rail inclination angle will be ignored.green_panel_end'
            +'|At present this function is fully functional only for plain track and turnout templates. Chairing of half-diamond templates is incomplete.'
            +'||At present the chair outlines are not shown on printed construction templates, exported PDF and image files, or on the sketchboard.'
            +'||rp.gif  This function is still an experimental work in progress and subject to much further development and change. For updated information please refer to the Templot Club user forum.'
            +'||rp.gif  Please be aware that this function is likely to slow down the screen response significantly. It would be wise to leave this function switched off while doing track design work. It is intended for the final output only.'
            +'||Your feedback is welcome. Thanks.',
             '','','','','cancel','do  experimental  chairing',0)=5 then EXIT;


  //experimental_chairing_menu_entry.Checked:=True;           // radio item
  rebuild_group_to_match_chairs_menu_entry.Enabled:=True;

  exp_chairing:=True;

  brick_form.bgnd_chairs_checkbox.Checked:=True;  // 232a  assume he wants to see them all

  brick_form.Show;

  redraw(False);}

  switch_chairing_on;
end;
//______________________________________________________________________________

procedure Tpad_form.no_chairing_menu_entryClick(Sender: TObject);  // 214a

begin
  {no_chairing_menu_entry.Checked:=True;  // radio item
  exp_chairing:=False;

  heave_chairs_form.Hide;  // 244a
  brick_form.Hide;         // SC 15-OCT-2024 556
  redraw(True);}

  switch_off_chairing;
end;

Then added a bit of extra code to the parent menu:-
Code:
procedure Tpad_form.chairs_baseplates_menu_entryClick(Sender: TObject);

begin

  // refresh using chairing switch status
  experimental_chairing_menu_entry.Checked:=exp_chairing;                         // experimental chairs  // radio items
  no_chairing_menu_entry.Checked:= NOT experimental_chairing_menu_entry.Checked;

  use_S1J_at_wing_front_menu_entry.Checked:=cpi.s1j_on_wing_pi;

the new routines contain most of the original code:
Code:
procedure switch_off_chairing;

begin
  //no_chairing_menu_entry.Checked:=True;  // radio item
  exp_chairing:=False;

  heave_chairs_form.Hide;  // 244a
  //brick_form.Hide;         // SC 15-OCT-2024 556
  redraw(True);
end;

procedure switch_chairing_on;

begin
  if alert(2,'    experimental  3D  chairing',
             'It is now possible to have some REA bullhead chair positions shown on the trackpad templates,'
             +' and for exported 3-D DXF and STL files to contain REA chair detail suitable for CAD rendering, 3D printing, CNC milling, and laser cutting.'
             +'||rp.gif In order for the 3-D chair detail to be generated correctly, it is necessary for the rail section data in the templates to match the model rail section currently selected on the DXF dialog.'
            +' This means the rail height and the rail head and foot widths.'
            +'||green_panel_begin tree.gif  If you continue your current rail section data set at `0real > rails >`1 will be ignored.||Rails will be vertical - any rail inclination angle will be ignored.green_panel_end'
            +'|At present this function is fully functional only for plain track and turnout templates. Chairing of half-diamond templates is incomplete.'
            +'||At present the chair outlines are not shown on printed construction templates, exported PDF and image files, or on the sketchboard.'
            +'||rp.gif  This function is still an experimental work in progress and subject to much further development and change. For updated information please refer to the Templot Club user forum.'
            +'||rp.gif  Please be aware that this function is likely to slow down the screen response significantly. It would be wise to leave this function switched off while doing track design work. It is intended for the final output only.'
            +'||Your feedback is welcome. Thanks.',
             '','','','','cancel','do  experimental  chairing',0)=5 then EXIT;

  //pad_form.experimental_chairing_menu_entry.Checked:=True;           // radio item

  pad_form.rebuild_group_to_match_chairs_menu_entry.Enabled:=True;

  exp_chairing:=True;

  brick_form.bgnd_chairs_checkbox.Checked:=True;  // 232a  assume he wants to see them all

  brick_form.Show;

  redraw(False);
end;

Performed a search all files for these two menu.clicks and revised any in need to perform the new routines instead.

All seems fine when tested.

Just need to propagate the concept down the roots (or is it branches?)

Steve
 
_______________
message ref: 14278
With that in mind:-

I agree with you , even if it means making the quick set form slightly larger to replace the checkbox with a radiobutton panel.
I don't think there would be any harm in that.

My current plan of attack is to revise pad_unit.pas so that each of the experimental 2D 3D menuClick procedures invoke their a sub-procedure (as you suggested) that does not itself reference menu.click object, so that when the time comes removing a menu object will not upset the apple cart.

As a trial I revised the experimental chairing menu entries:-

Code:
procedure Tpad_form.experimental_chairing_menu_entryClick(Sender: TObject);  // 214a

begin
  {if alert(2,'    experimental  3D  chairing',
             'It is now possible to have some REA bullhead chair positions shown on the trackpad templates,'
             +' and for exported 3-D DXF and STL files to contain REA chair detail suitable for CAD rendering, 3D printing, CNC milling, and laser cutting.'
             +'||rp.gif In order for the 3-D chair detail to be generated correctly, it is necessary for the rail section data in the templates to match the model rail section currently selected on the DXF dialog.'
            +' This means the rail height and the rail head and foot widths.'
            +'||green_panel_begin tree.gif  If you continue your current rail section data set at `0real > rails >`1 will be ignored.||Rails will be vertical - any rail inclination angle will be ignored.green_panel_end'
            +'|At present this function is fully functional only for plain track and turnout templates. Chairing of half-diamond templates is incomplete.'
            +'||At present the chair outlines are not shown on printed construction templates, exported PDF and image files, or on the sketchboard.'
            +'||rp.gif  This function is still an experimental work in progress and subject to much further development and change. For updated information please refer to the Templot Club user forum.'
            +'||rp.gif  Please be aware that this function is likely to slow down the screen response significantly. It would be wise to leave this function switched off while doing track design work. It is intended for the final output only.'
            +'||Your feedback is welcome. Thanks.',
             '','','','','cancel','do  experimental  chairing',0)=5 then EXIT;


  //experimental_chairing_menu_entry.Checked:=True;           // radio item
  rebuild_group_to_match_chairs_menu_entry.Enabled:=True;

  exp_chairing:=True;

  brick_form.bgnd_chairs_checkbox.Checked:=True;  // 232a  assume he wants to see them all

  brick_form.Show;

  redraw(False);}

  switch_chairing_on;
end;
//______________________________________________________________________________

procedure Tpad_form.no_chairing_menu_entryClick(Sender: TObject);  // 214a

begin
  {no_chairing_menu_entry.Checked:=True;  // radio item
  exp_chairing:=False;

  heave_chairs_form.Hide;  // 244a
  brick_form.Hide;         // SC 15-OCT-2024 556
  redraw(True);}

  switch_off_chairing;
end;

Then added a bit of extra code to the parent menu:-
Code:
procedure Tpad_form.chairs_baseplates_menu_entryClick(Sender: TObject);

begin

  // refresh using chairing switch status
  experimental_chairing_menu_entry.Checked:=exp_chairing;                         // experimental chairs  // radio items
  no_chairing_menu_entry.Checked:= NOT experimental_chairing_menu_entry.Checked;

  use_S1J_at_wing_front_menu_entry.Checked:=cpi.s1j_on_wing_pi;

the new routines contain most of the original code:
Code:
procedure switch_off_chairing;

begin
  //no_chairing_menu_entry.Checked:=True;  // radio item
  exp_chairing:=False;

  heave_chairs_form.Hide;  // 244a
  //brick_form.Hide;         // SC 15-OCT-2024 556
  redraw(True);
end;

procedure switch_chairing_on;

begin
  if alert(2,'    experimental  3D  chairing',
             'It is now possible to have some REA bullhead chair positions shown on the trackpad templates,'
             +' and for exported 3-D DXF and STL files to contain REA chair detail suitable for CAD rendering, 3D printing, CNC milling, and laser cutting.'
             +'||rp.gif In order for the 3-D chair detail to be generated correctly, it is necessary for the rail section data in the templates to match the model rail section currently selected on the DXF dialog.'
            +' This means the rail height and the rail head and foot widths.'
            +'||green_panel_begin tree.gif  If you continue your current rail section data set at `0real > rails >`1 will be ignored.||Rails will be vertical - any rail inclination angle will be ignored.green_panel_end'
            +'|At present this function is fully functional only for plain track and turnout templates. Chairing of half-diamond templates is incomplete.'
            +'||At present the chair outlines are not shown on printed construction templates, exported PDF and image files, or on the sketchboard.'
            +'||rp.gif  This function is still an experimental work in progress and subject to much further development and change. For updated information please refer to the Templot Club user forum.'
            +'||rp.gif  Please be aware that this function is likely to slow down the screen response significantly. It would be wise to leave this function switched off while doing track design work. It is intended for the final output only.'
            +'||Your feedback is welcome. Thanks.',
             '','','','','cancel','do  experimental  chairing',0)=5 then EXIT;

  //pad_form.experimental_chairing_menu_entry.Checked:=True;           // radio item

  pad_form.rebuild_group_to_match_chairs_menu_entry.Enabled:=True;

  exp_chairing:=True;

  brick_form.bgnd_chairs_checkbox.Checked:=True;  // 232a  assume he wants to see them all

  brick_form.Show;

  redraw(False);
end;

Performed a search all files for these two menu.clicks and revised any in need to perform the new routines instead.

All seems fine when tested.

Just need to propagate the concept down the roots (or is it branches?)

Steve
@Steve_Cornford

Hi Steve,

If it's easier, don't forget that you can update tick-boxes, menu items, etc. in the Application.OnIdle event. You can see that does a lot of the heavy shifting in Templot:

procedure Tcontrol_room_form.AppIdle(Sender:TObject; var Done:Boolean);

cheers,

Martin.
 
_______________
message ref: 14281
@Steve_Cornford

Hi Steve,

If you were looking for something to do, now that you have finished the jig-saw, :)

see: https://85a.uk/templot/club/index.php?posts/14293

The words "turnout-road" (6 places) need changing to "diagonal-road" when the relevant template is a half-diamond (intersect_unit).

But best wait until I have posted the updated file intersect_unit.pas

cheers,

Martin.
 
_______________
message ref: 14296
@Steve_Cornford

p.s. Steve -- the same applies in gaps_unit.pas

Notice also an anomaly in both of those units -- plain track is rails 1 and 4. Whereas in the chairing functions, plain track is rails 1 and 3.

I tried once before to sort that out, but it's tricky. Best left as it is for now, but for the future it needs to be 1 and 3.

cheers,

Martin.
 
_______________
message ref: 14297
_______________
message ref: 14301
Hi Martin,
Thanks for publishing the updates.
I have downloaded the 15th October zip, inzipped into a new folder, then downloaded the 3 updates dated 25th October and copied them in.
I then used winmerge to compare these latest files with the ones in my current Lazarus RDE folder to get a difference list, and am now working my way through those files that have differences agan using winmerge, which is quite nifty (I now understand it a bit better having read the instructions....)

Currently working my way through checking pad_unit.lfm & pad_unit.pas.

That will leave just the print_settings_unit & shove_timbers to check.

Steve
 
_______________
message ref: 14302
Hi Martin,
The words "turnout-road" (6 places) need changing to "diagonal-road" when the relevant template is a half-diamond (intersect_unit).
Just to confirm that it is this screen you are takling about:-
1729890619660.png

If the selected background template is a half-diamond,
replace 2 instances of "turnout-road" with "diagonal-road", and 1 instance of "turnout road" with "diagonal road".

If the control template is a half-diamond,
replace 2 instances of "turnout-road" with "diagonal-road", and 1 instance of "turnout road" with "diagonal road".

Or should they all be hyphenated?

Pedantic Steve.....
 
_______________
message ref: 14303
Or should they all be hyphenated?
@Steve_Cornford

Hi Pedantic Steve,

Not all.

In the first two "diagonal-road" is an adjectival noun. Hyphenated. Describing which stock rail or which crossing rail.

The 3rd one is a simple noun. The "diagonal road". Not hyphenated.

And yes, that is the dialog I was talking about. :)

Also this one (for the control template only) gaps_unit.pas:


gaps.png



You could also check what happens if the control template or the background template is plain track. As far as I can remember I have already dealt with that, but I'm not sure.

For plain track, in addition to changing the wording, the middle 2 options need to be disabled (greyed out):

_radio.Enabled:= NOT plain_track;

Also the centre-line of the turnout road.

cheers,

Pedantic Martin.
 
_______________
message ref: 14304
Hi Martin,


Sketchboard

You have probably already thought of this & discarded it, but........

Some conjectures....

Sketchboard is included in the Templot2.exe as you have a licence that allows you to a) use it b) modify it.

I presume this licence would allow you(or your empoyee) to produce a program called Sketchboard5.exe, as long as you did not make it opensource. By this I mean publish the source files.

The licence would allow you to publish Sketchboard5.exe by including it in your zip file, or including it in Github\Templot5.

So in principle the big question is:-
Is it feasible to produce Sketchboard5.exe in such a way that Templot5.exe can invoke it?
Could Sketchboard5.exe return to Templot5.exe including any results needed)?

Would this be a solution to providing a Sketchboard facility in Templot5.exe?

Steve
 
_______________
message ref: 14308
Hi Martin,


Sketchboard

You have probably already thought of this & discarded it, but........

Some conjectures....

Sketchboard is included in the Templot2.exe as you have a licence that allows you to a) use it b) modify it.

I presume this licence would allow you(or your empoyee) to produce a program called Sketchboard5.exe, as long as you did not make it opensource. By this I mean publish the source files.

The licence would allow you to publish Sketchboard5.exe by including it in your zip file, or including it in Github\Templot5.

So in principle the big question is:-
Is it feasible to produce Sketchboard5.exe in such a way that Templot5.exe can invoke it?
Could Sketchboard5.exe return to Templot5.exe including any results needed)?

Would this be a solution to providing a Sketchboard facility in Templot5.exe?

Steve
@Steve_Cornford

Hi Steve,

You have summarised the method I have used for the PDF export in T5. :)

In other words, I have written a helper executable pdf_creator.exe in Delphi5 using my existing PDF licence, and included it in T5, see:

...\TEMPLOT5_OUTPUT\internal\pdf\pdf_creator.exe

I could do the same thing for the sketchboard, and it is my fallback option if nothing better can be devised, but:

1. it's a much bigger task than the PDF -- I can't see any way to get onto it while I'm stuck in the REA chairing, even though I would enjoy doing it -- there are several improvements to the sketchboard I would like to make. The system for creating control panel mimic diagrams which I kludged together for the late Gordon Stolliday is still very clunky -- and I'm willing to bet hardly anyone knows it's there.

2. I don't know how I could share the task with you -- I'm now fairly sure Nils's code won't compile in Lazarus without a lot of work, and maybe not in the Delphi Community Edition either. Creating the helper executable would be 10 times easier done in Delphi5 -- but I can't see any way to share that with you. Embarcadero are hot on copyright and licensing, and already have me on their radar.

3. even if you agree to be my employee :) I'm not sure Nils's licence allows his code to be on more than computer. I haven't been able to make contact with him -- his web site is now gone, emails returned, and his Facebook page is private.

4. using a Windows helper executable means the sketchboard can't ever be part of Templot5 if it is ported to a different platform. For the PDF we might find a Lazarus component to do the same job, but that's extremely unlikely for the sketchboard.

So the question is -- is the sketchboard more important than the K-crossing chairs? I can't do both at once in the short term. Getting the sketchboard functionality into Templot5 would mean we could finally close Templot2. But lots of folks are waiting for the K-crossings.

cheers,

Martin.
 
_______________
message ref: 14309
Hi Martin,
So the question is -- is the sketchboard more important than the K-crossing chairs? I can't do both at once in the short term. Getting the sketchboard functionality into Templot5 would mean we could finally close Templot2. But lots of folks are waiting for the K-crossings.
No, as I think K-crossing chairs are more important, especially with the growing interest in Templot 2D/3D facilities.
For now the switching back to Templot2 is a viable work-around.

I was only posing the question in case it would be an alternative solution that I could perhaps help with.

Steve
 
_______________
message ref: 14310
I was only posing the question in case it would be an alternative solution that I could perhaps help with.
@Steve_Cornford

Hi Steve,

I've been looking at this and I think by shuffling code around I can make the sketchboard control panel native in Lazarus. That means dtp_settings_unit.pas which looks like this when running:


dtp_settings2.png



and like this at design time (Delphi5 screenshot):


dtp_settings1.png



Lots of group-boxes there which are going to need fixing for Lazarus. :)

That would leave just the sketchboard screen itself and the graphics engine running in a helper executable. We can probably do a wrapper for it in Lazarus so that the menus and controls on the screen can be native in Lazarus too. Once we accept the concept of a helper executable for the core engine, there is quite a lot we can do to minimize how much of the sketchboard code has to be in it.

cheers,

Martin.
 
_______________
message ref: 14314
Hi Martin,
Please find revised intersect_unit.pas attached.

1729975721510.png

Am I right in thinking that if you want the stock/crossing words lining up we would need to use a fixed font rather than a proportional font?

Also I am wondering if the background template panel should include the background template id?

Usefull to distinguish the wood from the trees.

Steve
oops I haven't annotated the change....
 

Attachments

  • intersect_unit.pas
    28.2 KB · Views: 23
_______________
message ref: 14319
@Steve_Cornford

Hi Steve,

Am I right in thinking that if you want the stock/crossing words lining up we would need to use a fixed font rather than a proportional font?

I don't think it's strictly necessary, we have to draw a line somewhere. But if you wanted, you could shorten the captions on the radios, and put "stock rail" etc. in separate labels, all neatly lined up. Quite a lot of work which almost no-one would notice.

Also I am wondering if the background template panel should include the background template id?

It might look better along the top of the dialog "find intersection - with ... ... "

Also somewhere on my to-do list -- after a background template has been selected for some purpose, it might show in a different colour until that purpose has concluded. In a complex formation with multiple partial templates, this would be an aid to selecting the correct rail. Always something to do if you go looking. :)

cheers,

Martin.
 
_______________
message ref: 14320
Hi Martin,
Attached is a zip as of now of the files I have amended:-

it includes additions to the pad menu system to allow testing of chairing elements dialog (chair_elements_unit) and trackpad control template elements dialog (cute_unit)


Steve
 

Attachments

  • T5_2024_10_29.zip
    1.1 MB · Views: 16
_______________
message ref: 14359
Hi Martin,
I am thinking of renaming the chair_elements_unit as real_chair_unit, and the correspeonding chair_elements_form as real_chair_form.

Do you have any objection, or is it too late.

This is to align with my proposed dialog new units:-
real_timber_unit , real_timber_form
real_rail_unit, real_rail_form

Steve
 
_______________
message ref: 14367
Hi Martin,
I am thinking of renaming the chair_elements_unit as real_chair_unit, and the correspeonding chair_elements_form as real_chair_form.

Do you have any objection, or is it too late.

This is to align with my proposed dialog new units:-
real_timber_unit , real_timber_form
real_rail_unit, real_rail_form

Steve
@Steve_Cornford

Hi Steve,

No objections -- over to you. :)

Bear in mind that changing unit names after creating them can make a lot of work, because the file names have to match and this means changes in the Lazarus project options.

Users don't see the unit names or file names, so it doesn't much matter what we call them.

cheers,

Martin.
 
_______________
message ref: 14369
Hi Martin,
Mission accomplished.
It was surprisingly easy using Notepad++ , all files replace, then renaming the two files.
Then Lazarus RDE > Build.
Steve
@Steve_Cornford

Hi Steve,

p.s. Don't forget to edit the .LPR file so that all forms are created before the program size scaling is called.

cheers,

Martin.
 
_______________
message ref: 14375
@Steve_Cornford

Hi Steve,

re:

index.php


I'm WIP on the 8-sided chair outlines. Not sure if I'm treading on your toes. I have added:

pad_unit:

chair_style2.png



math_unit:

chair_style1.png


cheers,

Martin.
 
_______________
message ref: 14387
Hi Martin,
Have I gone too far?
1730326899192.png


I have added:-
chair_colour:integer:0;
chair_infill_colour:integer:0;

into pad_unit, then added updates into math_unit, pad_normal colour scheme.

Code:
  chair_colour:=$000060A0;             // SC 30-OCT-2024 556b - chair outline - red-brown (screen colour).
  chair_infill_colour:=$00D0D0E0;      // SC 30-OCT-2024 556b - chair infill colour


Steve
 
_______________
message ref: 14391
Just trying to be consistent....

chair outline colour same as timber outline colour default.
chair infill colour equals the hard-coded colour in math_unit.

I will get round to updating math_unit when you have finished with it.

Steve
 
_______________
message ref: 14392
Just trying to be consistent....

chair outline colour same as timber outline colour default.
chair infill colour equals the hard-coded colour in math_unit.

I will get round to updating math_unit when you have finished with it.

Steve

Have I gone too far?
@Steve_Cornford

Hi Steve,

No, but in my pad_unit WIP:

chair_style3.png


I'm not ready to post it yet. When I do there will be some merging to do. :)

You have done the hard part -- designing the dialog. Thanks.

cheers,

Martin.
 
_______________
message ref: 14393
posts crossed in the post.....

I believe I have managed to code real_chair_unit such that we can remove any corresponding pad menu entries without upsetting the applecart when the time comes...

I plan to revise cute_unit & pad_unit at a later date to be compliant in the same manner later on.

For now I will concentrate on real_timber_unit, which is to replace the real > timbering sub-menus eventually, using the same principles.

Steve
 
_______________
message ref: 14395
Back
Top