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

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


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

Бодрого дня.

Нужен пример 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 эмодзи.

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

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

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

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

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