Не побоюсь
написать, но огромное количество языков поздней заделки многое почерпнули и взяли от него.
Tcl - был создан в 1988 году, а появление
Perl, Python, можно отнести к середине 90 гг.
Это простой скриптовый язык, предназначенный для обработки строк, а библиотеки Tk - стали
непременным атрибутом Perl, Python и многих других.
Разработчики в ?97-98 гг.? приобрели лицензию у Scriptics Corporation
на коммерческое использование Tcl\Tk.
Немного о Tcl.
Почитать о природе и развитии скриптовых языков Вы можете здесь:
2001_11_144.pdf (Журнал
"Мир ПК", #11, 2001 год
// Издательство "Открытые Системы" (www.osp.ru).
Постоянный адрес
статьи:
http://www.osp.ru/pcworld/2001/11/144.htm ).
-
Литература:
Основы
Tcl : tcl_base.pdf
А.
Петровский. Командный язык программирования Tcl :
tcl_petrovskyi.pdf
В журнале Хакер, номер
#030, стр. 030-062 - можно найти статью об основах программирования.
Найдите обязательно
книгу: "Брент Уэлш и Кен Джонс. Практическое
программирование на Tcl и
Tk". |
|
Practical Programming in Tcl and Tk:
Practical.rar
Brent Welch <welch@acm.org>
http://www.beedub.com/
CD-ROM, ISO 9660 (UNIX/Windows), Version 1.0, April 24, 1997
- эту часть человек собирал из разных источников, я обрезал (слишком много>120мб)
Источники:
www.neosoft.com hpux.cae.wisc.edu
ftp.sunlabs.com
ftp.cs.princeton.edu
www.sublabs.com cd-toolkit.crd.ge.com
catless.ncl.ac.uk netlab-c.mscs.mu.edu
-
Программы:
Если Вы хотите выучить Tcl или получить представление
о нём, то здесь найдете программу для обучения (очень старая) -
instl097.zip
Для создания Tk - окон (GUI-приложений), я до сих пор
использовал SpecTcl1_1.zip - старая проверенная
временем программа, также как и Юниграфикс, не понимающая русского языка.
На
сайте проекта
http://sourceforge.net/projects/spectcl/ , Вы, можете найти 2-ую версию этой
программы объединенную по формату хранения для
использования в редакторе Komodo.
Хотя подобные приложения можно создавать в
Komodo (заплатив деньги) или как Вам удобнее.
Могу еще
порекомендовать проект vtcl.
Для создания приложений есть
проект CrowTDE :
http://got7.org/crowtde/ - со встроенным музыкальным проигрывателем. Мне
понравился.
Вот программа пример из разряда
простейших.
По-моему из какой то книги. Подсчет CRC суммы файла (VC
и Tcl/Tk). Исходники:
checksumfile_С_TCL.zip
- Сайты о Tcl\Tk:
http://tclstudy.narod.ru/ - Tcl на
Народе.
http://tcl-tk.ru
- русский ресурс от Tcl\Tk
http://ru.wikipedia.org/wiki/Tcl - Tcl
на
Wikipedia (история, основные форматы, ссылки....).
http://www.tcl.tk/
- основной сайт разработчиков.
мобильный -
http://wiki.tcl.tk/15260
http://tcl.sourceforge.net/
- исходники.
http://www.tkdocs.com
- появился в 2007 году, Mark Roseman.
http://sf.net
- много проектов на Tcl.
http://www.crossplatform.ru/sources/tcltk -
кроссплатформенные проекты.
- FTP - сервер :
ftp://ftp.tcl.tk/
- На
этом ftp-сервере, Вы сможете найти многие интересующие Вас вещи
(исходники, книги).
Ребята на сайте
www.delphi-jedi.org даже описали
основной интерфейс Tcl - интерпретатора для Дельфи.
|
|
|
Ниже я выложил файлы презентация от
самого John Ousterhout. Сами файлы были сделаны в старом формате .ppt,
поэтому наотрез отказались открываться в MS Office
2003 и 2007. Для того чтобы привести их
читабельному виду, пришлось установить любимый мой
Office XP, и сохранить в нужном формате.
К сожалению, у меня только 4 файла, вместо обещанных 5-и.
This directory contains course materials for a one-day
Tcl/Tk short course that John Ousterhout has given over the last few
years. The course consists of five talks:
|
An overview to introduce the main ideas of
Tcl and Tk and show how all the pieces fit together. |
|
An introduction to
writing Tcl scripts. This talk doesn't consider Tk or any
specific Tcl applications, just the language syntax and built-in
commands. |
|
A description of how to
create user interfaces by writing Tcl scripts that use Tk's
facilities in addition to the built-in Tcl commands. |
|
This talk describes how
to write new Tcl-based applications in C, using the C interfaces
provided by Tcl to create interpreters, execute scripts, and add
new commands. |
|
/UGS/ |
Unigraphics не любит, не понимает, и не работает с
кириллицей. ( Болезнь от Unix ).
Поэтому кириллицы не должно быть:
- не в пути файлов,
- не в
названии файлов и папок,
- не в имени компьютера.
|
|
.../ |
|
|
CMM_INSPECTION
|
- эта папка появилась в
NX7. Почти полная копия папки /MACH/resource.
Есть также папка постпроцессоров: /postprocessor/
NX CMM Inspection Programming это прикладное
решение для Координатных измерительных машин [ Coordinate Measuring Machines
(CMMs) ] и NC. (Особенно для оборудования Siemens).
Используя инспекционный файл, который работает в синхронизации с файлом
части (модели), NX CMM Inspection объединяет мир производственного цеха с
производством планирования и проекта так, чтобы операторы цеха и инженеры
проекта могли легко разделить однозначные измерительные
данные. |
|
MACH/ |
- основная папка ресурсов,
постпроцессоров, ..., для модуля Обработки |
|
|
auxiliary/ |
vnc_Plugin/ |
- папка для библиотек и
плагинов
CNC (симуляция программ) |
gpm.exe |
- постпроцессор
GPM |
mdfg.exe |
- Редактор файла описания
оборудования.
В 16-ой версии его можно было запустить свободно, даже не покупая
лицензии, для этого были нужны всего лишь 2-е библиотеки:
libsyss.dll
и libugmath.dll ( см.
auxiliary16.zip) |
mom_pause.tcl |
- пример,
как запускать Tcl-скрипт используя
ugwish и Пауза в симуляции :)))
. |
mom_source.dll |
- очень интересная
библиотека.
Появилась негласно еще в NX1. Сначала
для декодирования файлов ISV - Machine Tool
Drivers (MTD) - (\MACH\resource\postprocessor\vnc_base_xxxx_tcl.txt)
. Затем её возможности распространили для декодирования постпроцессора с помощью экспортируемой её функции:
MOM_decrypt_source
<tcl-script>
( UF_MOM_extend_xlator ( mom_obj, "MOM_decrypt_source",
mom_decrypt_source ).
Своеобразное кодирование на основе
лицензии выполняется в
PostBuilder. Появилось это только в
версии NX6.0.0.2.
Вообще, о кодировании \ декодировании ПП - менеджеры компаний по продаже
UG - заикались еще в 2003-2004 гг. Цель и
мотив Этого, неясен до сих пор.
|
ugpadvkins.dll
(ugp_adv_kins.dll) |
- библиотека расширенной кинематики. (Advanced Kinematics Module <!<UGPKIN>!>)
\src\ugpadvkins\no\ind\uf_mom_add_ufun_tclexts.c
- Зачем эта кинематика? Реализует неортогональную кинематику - но всегда
можно подстроить её (опытным путем). Зачем этот геморрой с
IKS в
PostBuilder ?. Зачем расширения кинематической схемы
именно в таком виде, без включения в ядро решателя.? Вопросов больше -
чем ответов. Да и пересчет, странный, с точки
зрения математики.
Экспортирует следующие МОМ - функции ( для применяемых типов станков -
5_axis_head_table 5_axis_dual_head 5_axis_dual_table):
UF_MOM_extend_xlator ( mom, "MOM_exit_kinematics_module",
mom_exit_kinematics_module )
UF_MOM_extend_xlator ( mom, "MOM_map_to_rotated_csys",
mom_map_to_rotated_csys )
UF_MOM_extend_xlator ( mom, "MOM_rotate_mach_csys", mom_rotate_mach_csys
)
UF_MOM_extend_xlator ( mom , "MOM_get_tool_attribute",
mom_get_tool_attribute )
UF_MOM_extend_xlator ( mom, "MOM_convert_point", mom_convert_point )
UF_MOM_extend_xlator ( mom, "MOM_load_kinematics", mom_load_kinematics )
в Dll усиленно применяют
функции:
UF_VEC3_cross
UF_VEC3_scale
UF_VEC3_is_parallel
UF_VEC3_distance
UF_VEC3_is_zero
UF_VEC3_affine_comb
UF_VEC3_is_equal
UF_VEC3_sub
UF_VEC3_dot
UF_VEC3_copy
UF_VEC3_angle_between
UF_VEC3_add
UF_VEC3_unitize |
UF_MTX3_rotate_about_axis
UF_MTX3_multiply
UF_MTX3_z_vec
UF_MTX3_vec_multiply_t
UF_MTX3_copy
UF_MTX3_x_vec
UF_MTX3_y_vec |
UF_MTX4_edit_rotation
UF_MTX4_vec3_multiply_t
UF_MTX4_rotation
UF_MTX4_ask_rotation
UF_MTX3_vec_multiply
UF_MTX4_vec3_multiply
UF_MTX4_multiply
UF_MTX4_vec_multiply
UF_MTX4_csys_to_csys |
по характеру которых можно понять
функциональность модуля.
Почитать больше - здесь
>>Создание постпроцессора
|
ugwish.exe |
- а это обычный - Tk DLL
tk82.dll (версии 8.2.2.2) Tk 8.2 for Windows Scriptics Corporation
собранный и сжатый upx.exe
http://upx.sourceforge.net , выполняемый файл
(после распаковки размером > 1.5 мб).
Смело его заменяйте на более новую версию wish.
Хотя я бы рекомендовал сборки:
http://www.equi4.com/tclkit/ - единственный файл,
включающий в себя runtime - скрипты, GUI (Tk), объектную систему (IncrTcl),
Tcl Virtual File System (TclVFS).
Для того, чтобы
русифицировать ugwish (Tcl8.2) вы должны установить
библиотеку динамически - подгружаемых файлов, содержащих в себя таблицу
соответствий между символами данной кодировки и Unicode.
Эти библиотеки символов в стандартном интерпретаторе
Tcl (версии 8.2) лежат в папке: \lib\tcl8.2\encoding . Для
русификации необходимо просто скопировать папку lib, в папку в которой
интерпретатор ugwish ищет модули для подключения.
Куда ее устанавливать, Вы можете узнать, запустив
ugwish, и набрав в командной строке
set a $tcl_libPath
(переменная tcl_libPath
содержит список всех директорий, где производится поиск библиотек.)
Поэтому, для русификации (под Unigraphics), просто скопируйте папку
lib в папку \%UGII_BASE_DIR%\Mach и перезапустите интерпретатор,
или в иное место. |
ugpost.exe |
-
вариант внешнего постпроцессора. Есть
Gui-оболочка для его запуска -
runugpost.exe.
Запускается используя командную строку:
'Usage: ugpost <partname> -p <postname>',
'{-o <output filename>}, default = <postname>.ptp',
'{-tp <program name>}, default = NC_PROGRAM',
'{-e <error filename>}, default = <postname>.err',
'{-u <units>}, 0 = same as part, 1 = inch, 2 = metric, 3 = post defined, default = same as part',
'{-v} = verbose output to standard output, default = OFF',
'{-h} = print this help message',0
- Алгоритм работы
можно представить следующими функциями int main(int argc,const char **argv,const char *envp)
UF_MISC_set_program_name
UF_initialize
UF_get_fail_message
UF_PART_open
UF_CAM_init_session
UF_SETUP_ask_setup
UF_SETUP_ask_program_root
UF_NCGROUP_ask_object_of_name
UF_SETUP_generate_program
"Post %s generated successfully\n"
UF_terminate
Вспомогательные функции :
UF_free_string_array
UF_free
UF_PART_ask_units
Псевдокод
ugpost смотрите
тут
|
|
|
|
custom/ |
- хотя эта папка, и её содержимое
предназначено для настройки пользовательских переменных, ресурсов - я НИКОГДА её не
использовал. Не приходилось. |
|
|
resource/ |
configuration\ |
- это очень важная
папка. |
debug\ |
- всё для отладки постпроцессора
))). |
feature\ |
- для тех, кто создает
постпроцессоры, здесь ничего интересного |
library\ |
- библиотека станков,
инструментов, оправок, режимов, и остального.
При редактировании форматов и классов, нужно проявлять осторожность, так
как почему то - эта часть Юга загружается в память при запуске
ugraf.exe, а не при
входе в модуль Обработки. |
machining_knowledge\ |
|
postprocessor\ |
- собственно, сама папка
постпроцессоров. |
shop_doc\ |
- шаблоны для вывода
документации. |
spreadsheet\ |
|
template_dir\ |
|
template_part\ |
- папка шаблонных файлов для
операций Юга. Очень важна, если вы скажем пытаетесь войти в модуль
обработки, а Вас не пускают:):) - значит забыли обновить шаблоны. |
template_set\ |
|
tool_path\ |
- здесь всё для производства
CLSF. |
ug_library\ |
- тоже важная папка, можно менять
обработчики работы с Базой Данных: Инструмент, Станки, ..... |
user_def_event\ |
-
еще одна важная папка для использования в
постпроцессировании. |
wizard\ |
|
|
|
|
|
.../ |
|
|
UGII/ |
- ядро
UniGraphiCS |
|
|
ugtcl.dll
|
- 8.1.2.0 - 452кб (32x)
, обычный tcl81 дополненный одной функцией, Tcl 8.1 for Windows Copyright (c) 1999 by Scriptics
Corporation. Библиотека подгружается в память при запуске
ugraf.exe ( смотрите лог-файл Юга). |
|
|
...
libcams.dll
libcamsint.dll
libcamsmom.dll
libcamsobj.dll
libcamsproc1.dll
libcamsproc2.dll
libcamsutil1.dll
libcamsutil2.dll
libcamsutilint.dll
....
librout.dll
..... |
- все библиотеки с именем libcam*.dll отвечают
за обработку. Среди них - особое место занимают libcams.dll,
libcamsmom.dll и
libcamsint.dll. Именно в них происходит создание обработчика и МОМ команд.
|
|
POSTBUILD/ |
- папка ПостБилдера
( исходные коды в 16-ой версии ->
POSTBUILD16.zip.
Самая главная функция PB_Main зашита в
exe-файл). Чтобы запустить
без лицензии в 17-ой версии Юга - было необходимо аж 11 системных
библиотек!!!!!!
Мне очень понравился PB 16-версии Юга. Он
был ближе по духу (к Tcl\Tk) и лучше по удобству редактирования.
|
|
UNISIM/ |
- папка Юнисима,
своеобразная симуляция управляющих программ (проверка наподобие
Vericut ). Построен был на Tcl/Tk,
в версиях Юга v.16-18. Не получил развитие. Не
знаю, почему.. Вместо него, в NX2 стали включать ISV (см.
PostBuilder). Вообще строго говоря, возможности ISV стали
появляться еще в 18-ой версии Юниграфики. |
|
UGSHEET/ |
-
еще одна папка, достойная упоминания. В старых версиях Юга - в ней
проводилось развитие направление Оптимального раскроя, со своим собственным
вызовом постпроцессора (правда, только GPM + mdf(a)
). |
|
.../ |
|
|
|
|
|