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.

  • 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.

Open-source again

Quick reply >

NoIdea

Member
Location
Nottingham
But when I made Templot (as it then was) open-source in 2018, I did hope that by 5 years later there would be a group of users with as much knowledge of the code as me. Sharing and developing ideas together. Sadly that hasn't happened. There has been occasional short-lived interest from programmers, but no-one who was an actual user of Templot or with much, or any, knowledge of railway track or track-building. Usually the interest has been in computers to get the existing code running on a different platform, rather than extending and developing it further for track planning and building.
Is it still open source, Martin? I've looked over the Templot Club links looking for a source repo link but couldn't find one...
 
_______________
message ref: 9860
Is it still open source, Martin? I've looked over the Templot Club links looking for a source repo link but couldn't find one...
@NoIdea

Hi Martin,

Yes, but bear in mind the original code is from 2018 -- it doesn't include a lot of later developments and plug track:

https://sourceforge.net/projects/opentemplot/

https://github.com/openTemplot/openTemplot

Link:

open_source_link.png


Original topics from 2018:

https://85a.uk/templot/archive/topics/topic_3283.php

Then later:

https://85a.uk/templot/archive/topics/topic_3324.php

https://85a.uk/templot/archive/topics/topic_3454.php

More discussion:

https://85a.uk/templot/club/index.php?forums/templotmec-nuts-and-bolts.5/

But there has been no recent activity. Search "Lazarus" to find all the old topics.

It's time I released some later versions of the files, but it's a massive task to prepare them all. Templot2 includes some licensed components which can't be open-sourced, and need to be cleanly by-passed or worked around.

cheers,

Martin.
 
_______________
message ref: 9861
Hi Martin,

I assume these are 32-bit DLLs? Are they COM components?

Could you identify them and their purpose?

Martin
@NoIdea

Hi Martin,

The non-open-source components are these in red:

t2_code_components.png



They are not DLLs. Sorry, I do not know what a COM component is, although I have heard the term and no doubt I could find out.

For all these I purchased licences (a long time ago now, when Templot was a paid-for product):

DtpDocuments is a desk-top-publishing component. The core engine drives the sketchboard function in Templot. I purchased the Delphi source code and significantly modified it for the sketchboard user interface. Sadly the developer Nils Haeck suffered a brain injury in an accident and was unable to continue supporting his software:

https://torry.net/components/edits-memos/packs/dtpdocuments

TRichView is an enhanced text editor. It drives the formatted text blocks on the sketchboard. I purchased the Delphi source code:

https://www.trichview.com/features/trichview.html

wPDF is a PDF generator which drives Templot's native PDF exports. I purchased it in the form of Delphi DCUs (object files), although there is also a DLL option:

https://www.wpcubed.com/pdf/products/wpdf/

cheers,

Martin.
 
_______________
message ref: 9863
@Phil G @James Walters

Hi Phil,

It's a good question.

At the back of my mind for years now I've been hoping to find a long-term user of Templot with as much Templot knowledge as me so that we could bounce ideas off each other -- and I could be the one asking questions and learning, instead of always the one answering the questions. Often the same ones I've answered many times before.

I realise that's not a realistic expectation now. But when I made Templot (as it then was) open-source in 2018, I did hope that by 5 years later there would be a group of users with as much knowledge of the code as me. Sharing and developing ideas together. Sadly that hasn't happened. There has been occasional short-lived interest from programmers, but no-one who was an actual user of Templot or with much, or any, knowledge of railway track or track-building. Usually the interest has been in computers to get the existing code running on a different platform, rather than extending and developing it further for track planning and building.

So it's just me. Templot is my hobby and I enjoy the coding and tinkering with new ideas. But to be honest it's being spoilt for me by the constant need to keep explaining everything. Over and over again. Since the present version of Templot Club started there have been 762 topics and well over 9,000 messages on here -- and here I am typing yet another one. And there are 3,000 topics in the archive from the previous version of Templot Club. And hundreds of messages on other forums. It's difficult to believe there could be much left to say after all that, and I'm getting weary of it all.

So what am I looking for in the Zoom meetings? Someone to come on with a brilliant new idea for Templot with details of how it would integrate into the existing code. Someone telling me things instead of asking me questions. I live in hope.

cheers,

Martin.
Martin,

What language is TEMPLOT written in?

Is it in manageable modules (i.e. Object Oriented Modules) or is it one piece of code that has continuously expanded over the years?

Is the code annotated? (Critical to anybody else understanding it..!)

Do you think it should, and if so, could be updated to reflect standard interface menus/protocols to make it more intuitive?

On constantly having top explain things, its called the RTFM problem - and people rarely do, especially if there is a very accommodating responder..!

Thank you for all your hard work.

Regards,

Patrick
 
_______________
message ref: 9910
Martin,

What language is TEMPLOT written in?

Is it in manageable modules (i.e. Object Oriented Modules) or is it one piece of code that has continuously expanded over the years?

Is the code annotated? (Critical to anybody else understanding it..!)

Do you think it should, and if so, could be updated to reflect standard interface menus/protocols to make it more intuitive?

On constantly having top explain things, its called the RTFM problem - and people rarely do, especially if there is a very accommodating responder..!

Thank you for all your hard work.

Regards,

Patrick
@NFWEM57

Hi Patrick,

Thanks. Welcome to Templot Club. :)

It was good to see you at the Zoom meeting last night.

Templot is written in Delphi5/Pascal. The 2018 open-source version will compile and run in Lazarus (or at least, it did the last time I tried -- quite a long while ago now).

Recent discussion about the open-source version is here (and much more in the old forum archive):

https://85a.uk/templot/club/index.php?threads/open-source-again.839/

Downloads:

https://sourceforge.net/projects/opentemplot/
https://github.com/openTemplot/openTemplot

Sorry, I don't know what you mean by modules. There are about 80 .pas source files and a similar number of .dfm form files.

Yes, it has been continuously expanded over the years -- originally started 45 years ago in 1979. Yes, the code is commented, but in a strange martin-language which few understand. :)

Do you think it should, and if so, could be updated to reflect standard interface menus/protocols to make it more intuitive?

I think that is what Alistair and Graeme are trying to do, but we haven't heard from them for many months. I'm not sure what you mean by "more intuitive". I have tried many times over the years to follow similar suggestions, but always it has required that some functionality be lost, which I am not willing to do. Essentially Templot is my hobby, and developed for my own use as its primary purpose.

Here is the current full list of source files. Some are very long (thousands of lines), some are quite short. I added one more this morning:

Code:
  control_room in 'control_room.pas' {control_room_form},
  keep_select in 'keep_select.pas' {keep_form},
  switch_select in 'switch_select.pas' {switch_select_form},
  alert_unit in 'alert_unit.pas' {alert_box},
  help_sheet in 'help_sheet.pas' {help_form},
  math_unit in 'math_unit.pas' {math_form},
  xing_select in 'xing_select.pas' {xing_select_form},
  chat_unit in 'chat_unit.pas' {chat_form},
  pad_unit in 'pad_unit.pas' {pad_form},
  entry_sheet in 'entry_sheet.pas' {data_entry_form},
  info_unit in 'info_unit.pas' {info_form},
  print_unit in 'print_unit.pas' {print_form},
  gauge_unit in 'gauge_unit.pas' {gauge_form},
  metric_unit in 'metric_unit.pas' {metric_form},
  preview_unit in 'preview_unit.pas' {preview_form},
  colour_unit in 'colour_unit.pas' {colour_form},
  calibration_unit in 'calibration_unit.pas' {calibration_form},
  plain_track_unit in 'plain_track_unit.pas' {plain_track_form},
  startup_unit in 'startup_unit.pas' {old_startup_form},
  dxf_unit in 'dxf_unit.pas' {dxf_form},
  bgnd_unit in 'bgnd_unit.pas' {bgnd_form},
  bgkeeps_unit in 'bgkeeps_unit.pas' {bgkeeps_form},
  panning_unit in 'panning_unit.pas' {panning_form},
  grid_unit in 'grid_unit.pas' {grid_form},
  shove_timber in 'shove_timber.pas' {shove_timber_form},
  stay_visible_unit in 'stay_visible_unit.pas' {stay_visible_form},
  action_unit in 'action_unit.pas' {action_form},
  edit_memo_unit in 'edit_memo_unit.pas' {edit_memo_form},
  mint_unit in 'mint_unit.pas' {mint_form},
  wait_message in 'wait_message.pas' {wait_form},
  enter_timber in 'enter_timber.pas' {enter_timber_form},
  jotter_unit in 'jotter_unit.pas' {jotter_form},
  rail_options_unit in 'rail_options_unit.pas' {rail_options_form},
  print_settings_unit in 'print_settings_unit.pas' {print_settings_form},
  pdf_unit in 'pdf_unit.pas' {pdf_form},
  dtp_unit in 'dtp_unit.pas' {dtp_form},
  dtp_settings_unit in 'dtp_settings_unit.pas' {dtp_settings_form},
  sketchboard_unit in 'sketchboard_unit.pas' {sketchboard_form},
  prefs_unit in 'prefs_unit.pas' {prefs_form},
  print_now_box in 'print_now_box.pas' {print_now_form},
  export_unit in 'export_unit.pas' {export_form},
  platform_unit in 'platform_unit.pas' {platform_form},
  data_memo_unit in 'data_memo_unit.pas' {data_child_form},
  math2_unit in 'math2_unit.pas',
  check_diffs_unit in 'check_diffs_unit.pas' {check_diffs_form},
  image_viewer_unit in 'image_viewer_unit.pas' {image_viewer_form},
  dtpGR32 in 'DtpDocuments\Source\Third\Graphics32x\dtpGR32.pas',
  mouse_colour_unit in 'mouse_colour_unit.pas' {mouse_colour_form},
  file_viewer in 'file_viewer.pas' {file_viewer_form},
  sb_rvf_outer_unit in 'sb_rvf_outer_unit.pas' {sb_rvf_outer_form},
  sb_rvf_unit in 'sb_rvf_unit.pas' {sb_rich_form},
  arc_shape_unit in 'arc_shape_unit.pas',
  edit_outline_unit in 'edit_outline_unit.pas' {edit_outline_form},
  web_browser_unit in 'web_browser_unit.pas' {web_browser_form},
  map_loader_unit in 'map_loader_unit.pas' {map_loader_form},
  web_map_help_unit in 'web_map_help_unit.pas' {web_map_help_form},
  trackbed_unit in 'trackbed_unit.pas' {trackbed_form},
  make_slip_unit in 'make_slip_unit.pas' {make_slip_form},
  create_tandem in 'create_tandem.pas' {tandem_form},
  chairs_unit in 'chairs_unit.pas' {chairs_form},
  bitmap_viewer_unit in 'bitmap_viewer_unit.pas' {bitmap_viewer_form},
  shoved_colour_unit in 'shoved_colour_unit.pas' {shoved_colour_form},
  track_spacing_unit in 'track_spacing_unit.pas' {track_spacing_form},
  detail_mode_unit in 'detail_mode_unit.pas' {detail_mode_form},
  gaps_unit in 'gaps_unit.pas' {gaps_form},
  lib_unit in 'lib_unit.pas' {lib_form},
  intersect_unit in 'intersect_unit.pas' {intersect_form},
  getfile_unit in 'getfile_unit.pas' {getfile_form},
  httpsend in 'httpsend.pas',
  create_y_turnout in 'create_y_turnout.pas' {create_y_form},
  resample in 'resample.pas',
  map_clarity_unit in 'map_clarity_unit.pas' {map_clarity_form},
  jigs_unit in 'jigs_unit.pas' {jigs_form},
  dxf_warning_unit in 'dxf_warning_unit.pas' {dxf_experimental_form},
  heave_chairs in 'heave_chairs.pas' {heave_chairs_form},
  search_unit in 'search_unit.pas' {search_form},
  mw_unit in 'mw_unit.pas' {mw_form},
  brick_unit in 'brick_unit.pas' {brick_form},
  chair_frame_unit in 'chair_frame_unit.pas' {chair_frame: TFrame},
  export_preview_unit in 'export_preview_unit.pas' {export_preview_form},
  clips_unit in 'clips_unit.pas' {clips_form},
  heave_customize_unit in 'heave_customize_unit.pas' {heave_customize_form};

cheers,

Martin.
 
_______________
message ref: 9912
NFWEM57 - Patrick, I've downloaded the 2018 open source version and studying the code with an extension to VS Code. I'm not a Pascal developer so I'm going into a learning curve here. Hopefully my c#, typescript, c++ background will flatten the curve a bit.

I also need to learn more about Templot - I'm very much a beginner - and I think, like others, that the UX/UI that Martin has developed over the years, is, um, unusual, which is why IMHO there are repeated questions.

At the moment, I'm trying to figure out how best I can help Martin's endeavours. I respect that this is Martin's code, not an open-source project. I'd much rather Martin was implementing K crossings and flat-bottom rail support in Plug Track instead of implementing new menu structures (Only kidding, Martin) :).

Martin
 
_______________
message ref: 9913
@graeme @Alistair Ward @NoIdea @NFWEM57

It's now nearly a year since there has been any activity (as far as I know) at:

https://github.com/openTemplot/openTemplot

Which makes me wonder where we go from here?

When I've got 244a released with the chair heaving done, I'm minded to start again and release the whole* of Templot2 as open-source in its present state, before going any further.

*apart from the licensed components which I mentioned in my previous post.

There is still a lot of chair designs to be done (not to mention GWR chairs and other prototypes), and having all the present code available might encourage others to have a go at them (and take a bit of pressure off me :) ).

When I say "release as open-source" I mean simply to publish the current Delphi5 files as-is. I'm not getting involved in Git repositories and such like -- I've tried and failed several times to understand that mystery, and wasted many many hours in the process. If others want the files committed/pushed/pulled/merged/forked or whatever it will be up to them to do it.

Likewise getting the files to compile and run in Lazarus will be for someone else to do, if wanted. There have been several updates to Lazarus since the 2018 files were released, which will almost certainly need some changes in the code.

Just releasing the 160+ Delphi5 files is a big task, each one requiring the copyright and open-source licensing details added, a lot of tidying up, and the licensed components removed. Which is likely to take a month or two to get them all done, with a further delay to my getting back to the chairs. So it's a trade-off as to whether it is worth doing now, or at all.

On the other hand, if not now, when? I'm getting uneasy that folks will soon be relying on Templot plug track for their real-world projects, rather than just experimental tinkering, and hence relying on me alone. It's a lonely place to be.

Martin.
 
_______________
message ref: 10191
Hi Martin,
I can understand your concerns.
In a past life I ran a small software company, and we looked after and developed a Stockbroker package pre Big Bang (that was when the Stock Exchange moved from fortnightly settlement periods to Rolling Settlement. To protect the clients (all 5 of them!) we entered into a Software Escrow Agreement that ensured in the event of our demise they would gain access to the source code.

Would it reduce your concerns if something like that was in place?
Steve
 
_______________
message ref: 10196
Hi Martin,
I can understand your concerns.
In a past life I ran a small software company, and we looked after and developed a Stockbroker package pre Big Bang (that was when the Stock Exchange moved from fortnightly settlement periods to Rolling Settlement. To protect the clients (all 5 of them!) we entered into a Software Escrow Agreement that ensured in the event of our demise they would gain access to the source code.

Would it reduce your concerns if something like that was in place?
Steve
@Steve_Cornford @James Walters

Hi Steve,

I'm not a company, and I don't have paying clients, so the situation is not the same. Open-source files are available to the entire world regardless, so no such agreement is needed.

At present the Templot files to which that applies relate to Templot as it was in 2018. You can download them as a zip file here:

https://sourceforge.net/projects/opentemplot/

But Templot has moved on a lot since then, not least for the 3D chairing, so it's time I released a fresh set of updated files. In practice that is easier said than done, because there are 160+ of them, and each one needs tidying up, with licence details added, and some copyright components removed without breaking the code.

Even when it is done it doesn't get anyone much further forward without some means of compiling the code. As it stands that requires a copy of the Delphi5 compiler from 1998. I can't publish that because it is copyright of Embarcadero, and I don't know where a copy might be obtained.

The solution is to compile the files in the open-source Lazarus compiler instead, set to Delphi mode. That requires some modifications in the code. I did that for the 2018 files, but it took a lot of time and testing, and would need doing again.

If we could get to that stage it would permit others to join in and help with writing code.

Which would be a big help because the truth is that my recent injury has made me realise that I'm getting old and tired, and it is all getting too much for me. I still enjoy writing new code to develop the Templot program forward, but all the rest -- explaining, explaining, explaining, making videos, doing Zoom meetings, running Templot Club and updating the Templot web site is now too much commitment. James is being a big help, but he has a day job and his own model projects.

And here I am writing yet another explanation, this time about the open-source files. Time now to get some lunch and no Templot work done yet today. I need to go out later, so it's not likely much will get done today.

Answers on a postcard.

cheers,

Martin.
 
_______________
message ref: 10203
Well I do have a copy of Turbo Pascal but it is sitting on the original 3.5inch diskettes and I don't have a drive attached to any of the Windows 10 computers. I suppose I could copy them onto a CD/DVD via my special retro PC (don't ask why I have one) or alternatively I might just have a copy of Delphi5 as they were very fond on putting them on PC magazine cover CDs at one time. I shall have to see.Found the diskettes bu no CDs as far as I know. I don't really have the time at the moment to explore the possibilities as am too busy building signals and 3d track (not necessarily printed).
 
_______________
message ref: 10206
Last edited:
I might just have a copy of Delphi5 as they were very fond on putting them on PC magazine cover CDs at one time.

Just to clarify that my copy of Delphi5 is a purchased Professional Edition licensed for commercial use.

Martin.
 
_______________
message ref: 10231
Hi Martin,
One does not need to be a company to enter into an escrow agreement.
Rather than the "open-source" files I was thinking of the Delphi 5 files.

I'm getting uneasy that folks will soon be relying on Templot plug track for their real-world projects, rather than just experimental tinkering, and hence relying on me alone. It's a lonely place to be.

Perhaps an arrangement could be made between yourself and one or more of the societies that promote track building.

But if there is any way any of us can help to reduce the burden, just ask.

Steve
 
_______________
message ref: 10232
Back
Top