Сообщество программистов Autodesk в СНГ

ADN Club => AutoLisp / VisualLISP и DCL => Тема начата: Macondo от 08-08-2017, 02:41:31

Название: Разбитие таблицы на несколько независимых: возможно ли?
Отправлено: Macondo от 08-08-2017, 02:41:31
Цель такова, чтобы длинную таблицу вставить в рамки формата листа. Первый вариант подразумевает такую последовательность действий: вставляем i-рамку листа выбранного формата, вставляем строки таблицы от 0 до j, каждый раз сверяя точку вставки с нижней границей листа, и если имеется превышение, создаём ещё один лист и продолжаем таблицу там.

Второй вариант, ради которого и создавалась эта тема, предполагает создание таблицы с последующим её разбиением по вертикали на куски нужной длины со вставкой их на листы. Для этого имеется некоторый базовый набор инструментов:

Код - Auto/Visual Lisp [Выбрать]
  1.   (setq my_table (vlax-ename->vla-object (car (entsel))))
  2.   (vla-put-EnableBreak my_table :vlax-true); включение свойства разбития таблицы
  3.   (vla-put-BreakSpacing my_table 5); расстояние между разбитыми таблицами
  4.   (vla-put-TableBreakHeight my_table 20); высота разбиения таблицы
  5.   (vla-put-TableBreakFlowDirection my_table 1); направление построения разбитых таблиц
  6.   (vla-put-repeattoplabels my_table :vlax-true); повтор заголовков в разбитых таблицах
  7.   (vla-put-AllowManualHeights my_table :vlax-true); независимость разбитых таблиц

Но после всего этого части таблицы не просто остаются связанными по содержимому, являясь единым объектом, но и при изменении InsertionPoint перемещаются вслед за своей "головой".
Возможно ли если не разделить таблицу на независимые части, то хотя бы программно управлять точками вставки каждой из её частей?
Название: Re: Разбитие таблицы на несколько независимых: возможно ли?
Отправлено: Александр Ривилис от 08-08-2017, 02:48:03
Возможно ли если не разделить таблицу на независимые части, то хотя бы программно управлять точками вставки каждой из её частей?
Нет.
Название: Re: Разбитие таблицы на несколько независимых: возможно ли?
Отправлено: Macondo от 08-08-2017, 02:53:42
Уважаемый Александр Ривилис, спасибо за суровую правду!
Название: Re: Разбитие таблицы на несколько независимых: возможно ли?
Отправлено: Алексей Кулик от 08-08-2017, 07:55:56
Macondo, если нужно действительно "разбивать" таблицу, то (ИМХО) придется создавать несколько объектов таблиц, куда и переносить данные.
Просто из любопытства: а почему такое решение потребовалось?
Название: Re: Разбитие таблицы на несколько независимых: возможно ли?
Отправлено: Macondo от 08-08-2017, 13:09:04
Алексей Кулик, для вставки в выбранные форматы листа (в пространстве модели) длинной таблицы условно-графических обозначений. Наверное, тут тогда проще реализовать первый вариант:

Код - Auto/Visual Lisp [Выбрать]
  1. (цикл №1 по количеству строк будущей таблицы:
  2.   (цикл №2 по количеству возможных вставок таблицы по ширине листа заданного формата:
  3.     (если точка вставки i-строки таблицы не выходит за границы листа, вставка i-строки)
  4.     (если выходит — к началу цикла №2 для создания новой таблицы на этом же листе правее текущей)
  5.   );цикл №2
  6. );цикл №1
Название: Re: Разбитие таблицы на несколько независимых: возможно ли?
Отправлено: Алексей Кулик от 08-08-2017, 14:37:15
А почему бы не использовать листы и видовые экраны? Мне кажется, это будет проще. И дешевле.
Название: Re: Разбитие таблицы на несколько независимых: возможно ли?
Отправлено: Macondo от 08-08-2017, 17:08:50
Алексей Кулик, с ними мало кто работает, привычнее всё в модели делать и видеть. Да и так быстрее, мне кажется.
Название: Re: Разбитие таблицы на несколько независимых: возможно ли?
Отправлено: Алексей Кулик от 08-08-2017, 23:26:02
Работайте, смотрите. А на печать выводите через листы.