| Правила | Регистрация | Пользователи | Поиск | Сообщения за день | Все разделы прочитаны |  Справка по форуму | Файлообменник |

Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > LISP > таблици в LISP

таблици в LISP

Ответ
Поиск в этой теме
Непрочитано 05.06.2005, 22:06 #1
таблици в LISP
Gaa
 
сан-техник на пенсии
 
Регистрация: 23.05.2005
Сообщений: 140

Помогите, как на лиспе можно организовать ввод параметров в виде таблицы, что-то между DCL и EXCEL?
__________________
Спасибо
Просмотров: 5987
 
Непрочитано 05.06.2005, 23:24
#2
vk

сисадмин
 
Регистрация: 26.08.2003
Самара
Сообщений: 1,022
<phrase 1=


чешу репу...
DCL - простой язык описания диалоговых окон
EXCEL - "крутой" табличный процессор

Что _между_ ними? Хард-диск чтоли?
vk вне форума  
 
Непрочитано 05.06.2005, 23:46
#3
Стас


 
Регистрация: 03.01.2005
Питер
Сообщений: 15


ObjectDCL поддерживает таблицы. Создаешь форму с таблицей, прикручиваешь добавление столбцов/строк. Задаёшь методы форматирования. Заполняешь таблицу, формируешь список значений. Рисуешь по нему таблицу. Запоминаешь это всё дело в словаре, чтобы кликнув по таблице вызывать тот же диалог для редактирования(желательно, но не обязательно). Много чего ещё. Но легче за 700 рублей вроде как купить лицензию ATable http://www.alx.ncn.ru/page.php?lang=ru&part=1 и наслаждаться работой.
Стас вне форума  
 
Непрочитано 05.06.2005, 23:58
#4
fixo

Lisp/VBA/VB.NET Hobbyist
 
Регистрация: 24.03.2005
Славен Град Петров
Сообщений: 367


Попробуй стандартный табличный объект, начиная с 2005 Автокада
Я содрал это на немецком форуме но к стыду стер случайно имя автора
Слабенько перевел чтоб понятней
Кстати очень удобная вещь особенно легко редактировать, щелкаешь 2 раза
в ячейке и всплывает текстовый редактор. Удобно заливать
ячейки цветом, можно выделять целыми строками с шифтом, а потом в
меню Modify задавать цвет в опции Backgroundfill
Ну а как создавать списки данных это уже не проблема, или интерактивно
но непродуктивно, или из какого-то data-файла, что красивше,IMHO
Успехов

(defun C:demo-tablo()
(vl-load-com)
;; Список наименований столбцов
(setq tabelle_ueberschrift (list "Столбец 1"
"Столбец 2"
"Столбец 3"
"Столбец 4"
)
)
; список текста порядно:
;;; (setq tabellen_liste
;;; (list (list "1.1" "2.1" "3.1" "4.1")
;;; (list "1.2" "2.2" "3.2" "4.2")
;;; (list "1.3" "2.3" "3.4" "4.3")
;;; (list "1.4" "2.4" "3.5" "4.4")
;;; )
;;; )

;список текста в ячейках построчно:
(setq tabellen_liste
(list (list "1.1" "1.2" "1.3" "1.4")
(list "2.1" "2.2" "2.3" "2.4")
(list "3.1" "3.2" "3.3" "3.4")
(list "4.1" "4.2" "4.3" "4.4")
)
)
;; вставка табличного объекта
(setq vlaxchen_tabelle
(vla-addtable
;; в пространство модели
(vla-get-modelspace (vla-get-activedocument
(vlax-get-acad-object)))
;; точка вставки
(vlax-3d-point (list 0 0 0))
;; число ячеек
(+ (length tabellen_liste) 2)
;; число столбцов
(length tabelle_ueberschrift)
;; высота строки
500.0
;; ширина столбца
3000.0
)
)
;; заполнение заголовка таблицы
(vla-settext
vlaxchen_tabelle
0
0
"Название таблицы"
)
;; выравнивание в ячейке
(vla-setcellalignment vlaxchen_tabelle 0 0 acmiddlecenter);0 0
;; высота текста в ячейке
(vla-setcelltextheight vlaxchen_tabelle 0 0 300.);5
;; начальный индекс цикла
(setq spalte 0)
(foreach item tabelle_ueberschrift
;; шапка таблицы
(vla-settext vlaxchen_tabelle 1 spalte item)
;; выравнивание
(vla-setcellalignment vlaxchen_tabelle 1 spalte acmiddlecenter)
;; высота текста
(vla-setcelltextheight vlaxchen_tabelle 1 spalte 250.)
;; следующий цикл
(setq spalte (1+ spalte))
)
;; начало со 2-й ячейки (первая - нулевая - название таблицы)
(setq zeile 2);2
;; первая строка
(setq spalte 0)
;; цикл по ячейкам
(foreach zeilen tabellen_liste
;; Заполнение ячеек:
(foreach item zeilen
;; ввод текста
(vla-settext vlaxchen_tabelle zeile spalte item)
;; выравнивание
(vla-setcellalignment vlaxchen_tabelle zeile spalte
acmiddlecenter)
;; высота текста
(vla-setcelltextheight vlaxchen_tabelle zeile spalte 250.);1.65
;; следующий цикл
(setq spalte (1+ spalte))
)
;; следующая ячейка
(setq zeile (1+ zeile))
;; обнуляем цикл
(setq spalte 0)
)

(princ)
)
(C:demo-tablo)
fixo вне форума  
 
Автор темы   Непрочитано 06.06.2005, 16:34
#5
Gaa

сан-техник на пенсии
 
Регистрация: 23.05.2005
Сообщений: 140


Спасибо, ребята.

Стас, извини за наглость, но если можно, сбрось какой нибудь пример или дай ссылку где можно ознакомиться с таблицами на ObjectDCL.
__________________
Спасибо
Gaa вне форума  
 
Непрочитано 06.06.2005, 19:50
#6
Alan

CAD
 
Регистрация: 28.08.2003
Киев
Сообщений: 1,835
<phrase 1=


Вернемся к началу
Gaa Вс Июн 05, 2005 20:06
Цитата:
Помогите, как на лиспе можно организовать ввод параметров в виде таблицы, что-то между DCL и EXCEL?
Вопрос стоял: ввод параметров, а отвечаем в основном как выполнять таблицу!
С учётом некоторой "убогости" DCL можно использовать ObjectDCL (я его не употребляю) или делать вводные формы на Дельфях с использованием СОМ-серверов. Пример диалога для ввода в нашей проге ПАРКС переменного количества комбинаций шагов и количества строительных осей приведен в иллюстрации. Ну и заодно вводятся другие параметры.
[ATTACH]1118073032.JPG[/ATTACH]
Alan вне форума  
 
Непрочитано 07.06.2005, 01:18
#7
Стас


 
Регистрация: 03.01.2005
Питер
Сообщений: 15


Цитата:
Сообщение от Gaa
Спасибо, ребята.

Стас, извини за наглость, но если можно, сбрось какой нибудь пример или дай ссылку где можно ознакомиться с таблицами на ObjectDCL.
http://www.objectdcl.com/ObjectDCL.html
Там по ссылке скачаешь. В архиве будут примеры работы с таблицами.
Нахрапом не возмёшь. Нужно будет разбираться.
Стас вне форума  
 
Автор темы   Непрочитано 07.06.2005, 07:27
#8
Gaa

сан-техник на пенсии
 
Регистрация: 23.05.2005
Сообщений: 140


Стас, спасибо.
__________________
Спасибо
Gaa вне форума  
 
Непрочитано 07.06.2005, 08:13
#9
fixo

Lisp/VBA/VB.NET Hobbyist
 
Регистрация: 24.03.2005
Славен Град Петров
Сообщений: 367


Цитата:
Насчет убогости DCL согласен отчасти, но пациент скорее жив...
Если для ввода данных будет достаточно 8-9 столбцов (для 17 дюймового монитора) то очень даже приемлем DCL, причем в виде
временных файлов которые после завершения программы удаляются причем нет необходимости ни компилировать в VLX и куда еще, ни хранить файлы lsp. и dcl. в одной папке. Если такой вариант устраивает могу для ознакомления скинуть в виде dwg, куда вставлю текст примера
fixo вне форума  
 
Автор темы   Непрочитано 07.06.2005, 13:19
#10
Gaa

сан-техник на пенсии
 
Регистрация: 23.05.2005
Сообщений: 140


Fatty, спасибо.

Цитата:
...такой вариант устраивает ...
Скинь для ознакомления.
__________________
Спасибо
Gaa вне форума  
 
Непрочитано 07.06.2005, 13:28
#11
fixo

Lisp/VBA/VB.NET Hobbyist
 
Регистрация: 24.03.2005
Славен Град Петров
Сообщений: 367


Воспринимай как черновик, поскольку давно
не возвращался к этому вопросу
Успехов
[ATTACH]1118136481.dwg[/ATTACH]
fixo вне форума  
 
Непрочитано 08.06.2005, 16:29
#12
Alan

CAD
 
Регистрация: 28.08.2003
Киев
Сообщений: 1,835
<phrase 1=


Создание файлов DCL на лету - вещь интересная. Задача эта уже рассматривалась в Инете и решения уже предлагались. Например:
http://www.autocad.ru/cgi-bin/f1/board.cgi?t=3823wL (2003 год!)
>Fatty, (Вт Июн 07, 2005 11:28)
Зачем Вы, поместили текст Lisp в файл dwg, непонятно. Могли бы для читабельности, он не такой уж большой, поместить сразу в открытом виде с тегом Code здесь в конфе.
Но! В примере количество (в Вашем случае участков) строк ввода исходной информации задается конечным числом - числом участков в первом окне. В нашем случае это количество динамическое. Т.е. при вводе значений (см.мою картинку) в третью строку, возникает четвертая и т.д. Пока не будет нажат Ок. Аналогично сделано в СПДС-Графикс.
>Стас
Извини, я ObjectDCL не знаю, но ссылку посмотрел. А просто ли в ObjectDCL сделать такой ввод? Можно в приват.
Alan вне форума  
 
Непрочитано 08.06.2005, 22:05
#13
Стас


 
Регистрация: 03.01.2005
Питер
Сообщений: 15


2Alan Как тут приватом пользоваться я не знаю.
В ObjectDCL реализовать окно подобное приведённому для формирования осей несложно. Объект Grid.
В своё время в примерах из демоверсии ObjectDCL были ошибки, и именно по Grid...разбирался.

Зы...вот как аналог СПДС осей выглядит в DCL реализации. В моём исполнении. Кстати есть много преимуществ.
[ATTACH]1118254352.jpg[/ATTACH]
Стас вне форума  
 
Непрочитано 14.06.2005, 10:21
#14
Alan

CAD
 
Регистрация: 28.08.2003
Киев
Сообщений: 1,835
<phrase 1=


>Стас
Спасибо за опубликованную иллюстрацию. По-моему ты применил все возможные способы построения элементов диалогового окна!? У меня нет (к моему сожалению) описания ObjectDCL. Если можешь пришли на e-mail кратенькую инструкцию по командам и запуску ObjectDCL. И какая версия рабочая? Я с обычным DCL работаю нормально, м.б. ObjectDCL мне подойдут. Хотя! Глядя на иллюстрацию, можно предположить, что редактирование "Списка" комбинаций значений происходит в вышенаходящейся строке (там где птичка?) кнопками 'Доб' 'Зам' 'Уд.' Или я не прав? В моем случае (см. мою иллюстрацию) редактируешь значения шагов и их количества прямо по полям значений. А кнопки 'Удалить' 'Вставить' используются только для указания строки удаления или перед которой вставка.
Alan вне форума  
 
Непрочитано 14.06.2005, 20:38
#15
Стас


 
Регистрация: 03.01.2005
Питер
Сообщений: 15


Цитата:
Сообщение от Alan
>Стас
Спасибо за опубликованную иллюстрацию. По-моему ты применил все возможные способы построения элементов диалогового окна!? У меня нет (к моему сожалению) описания ObjectDCL. Если можешь пришли на e-mail кратенькую инструкцию по командам и запуску ObjectDCL. И какая версия рабочая? Я с обычным DCL работаю нормально, м.б. ObjectDCL мне подойдут. Хотя! Глядя на иллюстрацию, можно предположить, что редактирование "Списка" комбинаций значений происходит в вышенаходящейся строке (там где птичка?) кнопками 'Доб' 'Зам' 'Уд.' Или я не прав? В моем случае (см. мою иллюстрацию) редактируешь значения шагов и их количества прямо по полям значений. А кнопки 'Удалить' 'Вставить' используются только для указания строки удаления или перед которой вставка.
Приведённое окно это чистый DCL. Я же написал. :wink:
По ObjectDCL только встоенный хелп. Им и пользуюсь.
Вышлю небольшой примерчик на днях.
Стас вне форума  
Ответ
Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > LISP > таблици в LISP

Размещение рекламы
Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск