Перейти к содержанию

Создание выноски со значением атрибута указанного блока.


Рекомендуемые сообщения

Бодрого дня.

Нужен пример VBA или Vb.net для создания многострочной выноски, где текст строки мультивыноски привязывается к атрибуту выбранного блока.

При изменении атрибута блока, текст выноски меняется.

 

Руками делаю так, создать мультивыноску, щелкнуть по строчке взять с чертежа, указываю блок, выбираю что взять из свойств блока.

Ссылка на сообщение
Поделиться на другие сайты
10 минут назад, gizmo_zx сказал:

указываю блок, выбираю что взять из свойств блока.

Сохраните (например в СПДС ) как шаблон

 

и вставляйте из базы с панели инструментов, подключившись  к общей базе:

 

 

 

Ссылка на сообщение
Поделиться на другие сайты

Хотелось бы обойтись без СПДС. Мне бы хотелось  некоторые действия с атрибутами поделать. т.е. если блок "имя1" то сделать выноску три строки (артрибут1 , 2 и3, если "имя2" две строки (артрибут1 , 2) 

Ссылка на сообщение
Поделиться на другие сайты
16 минут назад, gizmo_zx сказал:

Хотелось бы обойтись без СПДС.

Не получится, выноска уже объект СПДС.

Через наносом или наноапи к ней доступа нет (если это не так пусть меня поправят)

Через mcCom доступ есть, но это функционал "СПДС"

добавлено через 1 минуту

Тута поподробнее Файл можно получить по ссылке:
McCOM2.chm.zip
https://yadi.sk/d/FMq91m4-ffhxk

Ссылка на сообщение
Поделиться на другие сайты
57 минут назад, doctorraz сказал:

Не получится, выноска уже объект СПДС.

объект СПДС который есть в "голой" платформе.
в MultiCAD API (С#)  есть класс McNote - умеет все дела с выносками.
скорее всего и на VB.NET можно

Ссылка на сообщение
Поделиться на другие сайты
2 минуты назад, Ivanco сказал:

есть класс McNote

Это выноска СПДС или мультивыноска?

Просто я еще мультикад не ковырял, поэтому не знаю

добавлено через 4 минут
4 минуты назад, Ivanco сказал:

объект СПДС который есть в "голой" платформе

Тем не менее чужеродные выноски и таблицы СПДС  приделаны к нано значительно позже.

Нанодев даже СОМ доступом к этим объектам из объектной модели нано не озаботилась. Нет там таких объектов в модели нано.

Ссылка на сообщение
Поделиться на другие сайты
11 минут назад, doctorraz сказал:

Это выноска СПДС или мультивыноска?

не понимать. насколько помню в платформе и не было реализации "своих" выносок. все виды выносок изначально от СПДС прикручены.
есть какие то "платформенные" выноски?

про таблицы - изначально все таблицы в платформе от СПДС. года 3 назад появились таблицы "а-ля платформы".
доступ из MultiCAD к СПДС ным таблицам есть очень давно. я какие то приложения, ну лет 5 назад с таблицами Multicad писал точно. 
а вот и статья. от Нанософт.

вообще кроме McNote класса в MultiCAD есть еще классы для работы с выносками, например: Гребенчатая выноска- McNoteComb.
 

Ссылка на сообщение
Поделиться на другие сайты
Спойлер

    Public Class mlidn
        <CommandMethod("mlidn")>
        Public Shared Sub CreateMultiLeader()
            Dim doc As Document = Application.DocumentManager.MdiActiveDocument
            Dim db As Database = doc.Database

            Using tr As Transaction = db.TransactionManager.StartTransaction()
                Dim bt As BlockTable = TryCast(tr.GetObject(db.BlockTableId, 0), BlockTable)
                Dim ms As BlockTableRecord = TryCast(tr.GetObject(bt(BlockTableRecord.ModelSpace), OpenMode.ForWrite), BlockTableRecord)
                Dim startPt = New Point3d(1000, 1000, 0)
                Dim endPt = New Point3d(0, 0, 0)
                Dim v As Vector3d = endPt - startPt
                Dim landPt As Point3d = startPt + v
                Dim mld As MLeader = New MLeader()
                Dim ldNum As Integer = mld.AddLeader()
                Dim lnNum As Integer = mld.AddLeaderLine(ldNum)
                mld.AddFirstVertex(lnNum, landPt)
                mld.AddLastVertex(lnNum, startPt)
                Dim mt As MText = New MText()
                mt.Contents = "Multileader with"
                mld.ContentType = ContentType.MTextContent
                mld.MText = mt
                mld.TextLocation = startPt
                ms.AppendEntity(mld)
                tr.AddNewlyCreatedDBObject(mld, True)
                tr.Commit()
            End Using
        End Sub
    End Class

код на VB.net работает, выноска создается.

Остался вопрос как добраться атрибутов блока и привязаться к ним. Вроде через интерфейс это доступно, а как програмно наковырять?

Работает в голой платформе без СПДС

Изменено пользователем gizmo_zx
Ссылка на сообщение
Поделиться на другие сайты

 

5 минут назад, Ivanco сказал:

есть какие то "платформенные" выноски?

Согласен,  в платформе ничего своего нет, либо из mcad либо из автокад

Прикрутили выноски от автокад я про них уточнил.

6 минут назад, Ivanco сказал:

доступ из MultiCAD

С дотнет только начал разбираться,

но из СОМ прямого доступа от апп папа к объектам спдс нет

Ссылка на сообщение
Поделиться на другие сайты
13 минут назад, gizmo_zx сказал:

Работает в голой платформе без СПДС

Mleader - это Teiga. забыл что так тоже можно) - т.е. это условно "автокадовская" выноска.
 

 

13 минут назад, gizmo_zx сказал:

Остался вопрос как добраться атрибутов блока и привязаться к ним. Вроде через интерфейс это доступно, а как програмно наковырять?

гуглить "autocad get block attributes С#" если справка по нанокаду не понятна.
просто копипастим код с форумов по акаду для Teigа коду будет почти аналогичный.

Изменено пользователем Ivanco
Ссылка на сообщение
Поделиться на другие сайты
2 часа назад, gizmo_zx сказал:

При изменении атрибута блока, текст выноски меняется

 

2 часа назад, gizmo_zx сказал:

Руками делаю так, создать мультивыноску, щелкнуть по строчке взять с чертежа, указываю блок, выбираю что взять из свойств блока

 @Ivanco, Я может что-то  упустил, но на mLeader,  не помню такой возможности

Ссылка на сообщение
Поделиться на другие сайты

Можно, наверно, через поля замутить. В Mleader пихать поле с ссылкой на блок (атрибут).

Предположительно в СПДС это так реализовано?

Ссылка на сообщение
Поделиться на другие сайты
3 минуты назад, MCAD сказал:

 @Ivanco, Я может что-то  упустил, но на mLeader,  не помню такой возможности

аа да. не факт что с mleader взлетит.

Ссылка на сообщение
Поделиться на другие сайты
6 минут назад, MCAD сказал:

Я может что-то  упустил, но на mLeader,  не помню такой возможности

Не упустил, объекты клона нана, не умеют  взять с чертежа..

Эт я всех запутал своими уточнениями по мультикад, про то какая выноска

добавлено через 6 минут
3 минуты назад, gizmo_zx сказал:

Можно, наверно, через поля замутить

Имхо через поля по возможности в нано ничего делать не надо, в одной версии работает, в следующей наоборот

Если можешт сделать програмно, делай.

Шоб не зависеть от нанопланов

Изменено пользователем doctorraz
Ссылка на сообщение
Поделиться на другие сайты
2 часа назад, gizmo_zx сказал:

т.е. если блок "имя1" то сделать выноску три строки (артрибут1 , 2 и3, если "имя2" две строки (артрибут1 , 2) 

Кстати, я как-то  про это не подумал. Две строки и одна, сработают на выноске с авто обновлением. А больше - пока не вижу решения, кроме как маркер с разными исполнениями.

Ссылка на сообщение
Поделиться на другие сайты
11 минут назад, MCAD сказал:

больше - пока не вижу решения

Проверить не могу..

А универсальная выноска?

Там строк можно много

Ссылка на сообщение
Поделиться на другие сайты
15 часов назад, doctorraz сказал:

Там строк можно много

Не вникал :-( 

С маркером можно, но если там одинаковый набор "зависимых" атрибутов.

Мало информации от @gizmo_zx

Разные блоки, разные исполнения, какой набор атрибутов? 

Тем  более, что нужно в платформе. Значит придётся возится с палитрой инструментов

Набросал маленький тест с маркером. Документ под роликом на YouTube

 

Ссылка на сообщение
Поделиться на другие сайты

Платформа жэж умеет табличные отчеты?

В пооядке эксперимента..

Делаем табличный отчет по одному элементу.

Добавляем строку итог отчета.

В отчете по одной строке.. в итог прописываем макс или мин.

Ячейки итога делаем именованными.

Выше отчета добавляем 100500 строк по количеству атрибутов

В этих ячейках прописываем =this.имя ясейки

Скрываем отчет и лишние столбцы.

Оформляем видимые ячейки, как выноску

Сохраняем в базу прикручиваем команду вызова на ленту, палитру, менюшки или алиас.

Пользуемся.

‐---------

Имха проще конечно взять универсальную выноску, по взять с чертежа насовать в ее 100500 строк атрибуты блоков ( свойствами) и сохранить в базу, как шаблон... только кажись в платформе это кастрировано(((

Ссылка на сообщение
Поделиться на другие сайты

Это что-то уж очень наворочено.

Нужно же, я так понял, для упрощения. Как ты так давал определение "автоматизации"???  :-) 

PS: В файле есть таблица, которая принудительно "обнуляет"  атрибуты, которые не должны попадать в выноску

Ссылка на сообщение
Поделиться на другие сайты
7 часов назад, MCAD сказал:

Это что-то уж очень наворочено

Расписал наворочено-сложновато, но давно и успешно пользую похожую схему.. только беру не с блока, а с маркера (непринципиально)

Есть реле KL1  его катушку маркирую универсальным маркером, который пойдет в спецификацию.

У этого реле есть куча контактов, которые маркирую, как описал выше таблицей.. получается KL1.1 KL1.2 KL1....

Ежели вздумается поменять маркировку на KV1 например, меняю в маркере, контакты (табличные отчеты)поменяют маркировку сами

7 часов назад, MCAD сказал:

Как ты так давал определение "автоматизации"???  :-) 

Месяц учиться летать, потом за пять минут долететь))))

добавлено через 1 минуту

Off Если не забуду мультик надо на эту тему.. в блог бесполезно, читать мало кто любит)))

Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Восстановить форматирование

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

Загрузка...
  • Расскажите друзьям

    Нравится Официальный форум компании Нанософт? Расскажите друзьям!
×
×
  • Создать...