| Правила | Регистрация | Пользователи | Поиск | Сообщения за день | Все разделы прочитаны | Справка по форуму | Файлообменник | |
|
Поиск в этой теме |
05.06.2005, 22:06 | #1 | |
таблици в LISP
сан-техник на пенсии
Регистрация: 23.05.2005
Сообщений: 140
|
||
Просмотров: 5993
|
|
||||
Регистрация: 03.01.2005
Питер
Сообщений: 15
|
ObjectDCL поддерживает таблицы. Создаешь форму с таблицей, прикручиваешь добавление столбцов/строк. Задаёшь методы форматирования. Заполняешь таблицу, формируешь список значений. Рисуешь по нему таблицу. Запоминаешь это всё дело в словаре, чтобы кликнув по таблице вызывать тот же диалог для редактирования(желательно, но не обязательно). Много чего ещё. Но легче за 700 рублей вроде как купить лицензию ATable http://www.alx.ncn.ru/page.php?lang=ru&part=1 и наслаждаться работой.
|
|||
|
||||
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) |
|||
|
||||
CAD Регистрация: 28.08.2003
Киев
Сообщений: 1,835
|
Вернемся к началу
Gaa Вс Июн 05, 2005 20:06 Цитата:
С учётом некоторой "убогости" DCL можно использовать ObjectDCL (я его не употребляю) или делать вводные формы на Дельфях с использованием СОМ-серверов. Пример диалога для ввода в нашей проге ПАРКС переменного количества комбинаций шагов и количества строительных осей приведен в иллюстрации. Ну и заодно вводятся другие параметры. [ATTACH]1118073032.JPG[/ATTACH] |
|||
|
||||
Регистрация: 03.01.2005
Питер
Сообщений: 15
|
Цитата:
Там по ссылке скачаешь. В архиве будут примеры работы с таблицами. Нахрапом не возмёшь. Нужно будет разбираться. |
|||
|
||||
Lisp/VBA/VB.NET Hobbyist Регистрация: 24.03.2005
Славен Град Петров
Сообщений: 367
|
Цитата:
|
|||
|
||||
CAD Регистрация: 28.08.2003
Киев
Сообщений: 1,835
|
Создание файлов DCL на лету - вещь интересная. Задача эта уже рассматривалась в Инете и решения уже предлагались. Например:
http://www.autocad.ru/cgi-bin/f1/board.cgi?t=3823wL (2003 год!) >Fatty, (Вт Июн 07, 2005 11:28) Зачем Вы, поместили текст Lisp в файл dwg, непонятно. Могли бы для читабельности, он не такой уж большой, поместить сразу в открытом виде с тегом Code здесь в конфе. Но! В примере количество (в Вашем случае участков) строк ввода исходной информации задается конечным числом - числом участков в первом окне. В нашем случае это количество динамическое. Т.е. при вводе значений (см.мою картинку) в третью строку, возникает четвертая и т.д. Пока не будет нажат Ок. Аналогично сделано в СПДС-Графикс. >Стас Извини, я ObjectDCL не знаю, но ссылку посмотрел. А просто ли в ObjectDCL сделать такой ввод? Можно в приват. |
|||
|
||||
Регистрация: 03.01.2005
Питер
Сообщений: 15
|
2Alan Как тут приватом пользоваться я не знаю.
В ObjectDCL реализовать окно подобное приведённому для формирования осей несложно. Объект Grid. В своё время в примерах из демоверсии ObjectDCL были ошибки, и именно по Grid...разбирался. Зы...вот как аналог СПДС осей выглядит в DCL реализации. В моём исполнении. Кстати есть много преимуществ. [ATTACH]1118254352.jpg[/ATTACH] |
|||
|
||||
CAD Регистрация: 28.08.2003
Киев
Сообщений: 1,835
|
>Стас
Спасибо за опубликованную иллюстрацию. По-моему ты применил все возможные способы построения элементов диалогового окна!? У меня нет (к моему сожалению) описания ObjectDCL. Если можешь пришли на e-mail кратенькую инструкцию по командам и запуску ObjectDCL. И какая версия рабочая? Я с обычным DCL работаю нормально, м.б. ObjectDCL мне подойдут. Хотя! Глядя на иллюстрацию, можно предположить, что редактирование "Списка" комбинаций значений происходит в вышенаходящейся строке (там где птичка?) кнопками 'Доб' 'Зам' 'Уд.' Или я не прав? В моем случае (см. мою иллюстрацию) редактируешь значения шагов и их количества прямо по полям значений. А кнопки 'Удалить' 'Вставить' используются только для указания строки удаления или перед которой вставка. |
|||
|
||||
Регистрация: 03.01.2005
Питер
Сообщений: 15
|
Цитата:
По ObjectDCL только встоенный хелп. Им и пользуюсь. Вышлю небольшой примерчик на днях. |
|||