Не определяется стиль заголовка объединенных ячеек

Автор Тема: Не определяется стиль заголовка объединенных ячеек  (Прочитано 17449 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн Алексей Кулик

  • Administrator
  • *****
  • Сообщений: 1116
  • Карма: 173
Александр, для этого надо знать где искать и уметь читать код на великом и ужасном С++ :) Что с первым, что со вторым у меня напряг ;)
Все, что сказано - личное мнение.

Правила форума существуют не просто так!

Приводя в сообщении код, не забывайте про его форматирование!

Оффлайн Александр Ривилис

  • Administrator
  • *****
  • Сообщений: 13886
  • Карма: 1788
  • Рыцарь ObjectARX
  • Skype: rivilis
Александр, для этого надо знать где искать и уметь читать код на великом и ужасном С++ :) Что с первым, что со вторым у меня напряг ;)
Вот тебе еще и на C#:
Код - C# [Выбрать]
  1. // Autodesk.AutoCAD.Interop.Common.AcadTableClass
  2. using System.Runtime.CompilerServices;
  3. using System.Runtime.InteropServices;
  4.  
  5. [MethodImpl(MethodImplOptions.InternalCall)]
  6. [DispId(101)]
  7. public virtual extern bool IsMergedCell([In] int row, [In] int col, out int minRow, out int maxRow, out int minCol, out int maxCol);
Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение

Оффлайн Алексей Кулик

  • Administrator
  • *****
  • Сообщений: 1116
  • Карма: 173
Off-Topic: показать
Александр, Вы слишком высокого мнения о моем знании C# и NET API AutoCAD.
« Последнее редактирование: 17-06-2021, 21:32:05 от Александр Ривилис »
Все, что сказано - личное мнение.

Правила форума существуют не просто так!

Приводя в сообщении код, не забывайте про его форматирование!

Оффлайн ElectricАвтор темы

  • ADN OPEN
  • **
  • Сообщений: 70
  • Карма: 10
Алексей Кулик,
А тебе не кажется, что ты неправильно используешь (vla-ismergedcell) ?
Эта функция для ячейки таблицы кроме признака объединенная/необъединенная возвращает еще и minRow, maxRow, minCol, maxCol для области объединения:
Код - Auto/Visual Lisp [Выбрать]
  1. (vla-ismergedcell table row col 'minRow 'maxRow 'minCol 'maxCol)

Похоже, я тоже не совсем оптимально использовал  (vla-ismergedcell), получая только состояние объединения.
Я нашел у себя в коде на Python странную конструкцию, о которой я  давно забыл, но она еще работает. Тогда я получал помимо статуса  объединения ячейки еще и максимальные/минимальные номера   объединяемых строк и столбцов для ячейки. Т.е. в качестве аргумента подавал только адрес ячейки row и col, взвращал 5 значений.

Код - Python [Выбрать]
  1. status, minRow, maxRow, minCol, maxCol = table.IsMergedCell(row, col, row, row, col, col)

Но пока не понимаю  как использовать эту строку на Лиспе, чтобы получить статус  объединения и номера строк/столбцов. Когда я использую код:

Код - Auto/Visual Lisp [Выбрать]
  1. (vla-ismergedcell table row col 'minRow 'maxRow 'minCol 'maxCol)

возвращет  ошибку:

Цитировать
ошибка: ActiveX Server возвратил ошибку: Параметр является обязательным

Оффлайн Александр Ривилис

  • Administrator
  • *****
  • Сообщений: 13886
  • Карма: 1788
  • Рыцарь ObjectARX
  • Skype: rivilis
Electric,
Надеюсь, что у тебя table - это объект таблицы, row и col - это целые числа (строка и столбец).
Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение

Оффлайн ElectricАвтор темы

  • ADN OPEN
  • **
  • Сообщений: 70
  • Карма: 10
Electric,
Надеюсь, что у тебя table - это объект таблицы, row и col - это целые числа (строка и столбец).

Да, ошибка с моей стороны, я забыл, что вместо row у меня в цикле стояло другое  обозначение.
Теперь этот код работает.

Оффлайн Александр Ривилис

  • Administrator
  • *****
  • Сообщений: 13886
  • Карма: 1788
  • Рыцарь ObjectARX
  • Skype: rivilis
На всякий случай:
Код - Auto/Visual Lisp [Выбрать]
  1. (defun C:TestTab ( / table minRow maxRow minCol maxCol)
  2.   (setq table (vlax-ename->vla-object (car (entsel))))
  3.   (if (= :vlax-true (vla-ismergedcell table 0 0 'minRow 'maxRow 'minCol 'maxCol))
  4.     (progn
  5.       (princ "\nminRow=") (princ minRow)
  6.       (princ "\nmaxRow=") (princ maxRow)
  7.       (princ "\nminCol=") (princ minCol)
  8.       (princ "\nmaxCol=") (princ maxCol)
  9.     )
  10.   )
  11.   (princ)
  12. )
Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение