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

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

>тогда вопрос - нельзя средствами VB

можно

только для демонстрации возможости

Set SPDS = CreateObject("McCOM2.Server") 'Получаем COM-сервер СПДС
Set mcNote = SPDS.CreateObject("McCOM2.SymNote")
mcNote.Text = "Текст выноски"
mcNote.Place False, True 'интерактивная вставка
mcNote.Place False, False 'координаты надо задать программно

если вдруг кто пропустил.. приобщайтесь McCOM2.chm и Состав и работа MechWizard.doc

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

Лучшие авторы в теме

Лучшие авторы в теме

Популярные посты

Выкладываю очередную версию, видимо, последнюю, т.к. собираюсь менять место работы. Кто-то другой пусть допиливает/переписывает. Сырцы в свободном доступе.   Написано, конечно, ужасно, но работает,

И как Вы себе представляете решение "с минимальным погружением добиться нужного функционала" ? - впрочем вопрос риторический... Варианты: 1. Изучить SQL/.NET/CAD/ потребности пользователей - и зафиг

для большинства людей НЕТ,для уровня чтобы писать что то работающее и приличное. будет так. _https://vk.com/public7275?z=photo-7275_456240927%2Falbum-7275_00%2Frev ( извиняюсь за ссылку, мне кажется

Изображения в теме

>Я не смог по id получить выносную для исправления, преобразовать McObject в McNoteLeader

хехе, тут у наны затык по сравнению с папой (((

писал уже на этом форуме и форуме разработчиков наны, что невозможно передать объект наны в McCOM, по ID, но разработчикам не до этого

Set ObjMC = spds.Object(objAK) 'имеем полный доступ к свойствам объектов СПДС в АК но в нане "method not implemented under this platform"

а вот в папе это реализовано, и получается очень удобно, чтобы собрать объекты со всего документа (модели и листов) селсетом с фильтрами получаем коллекцию и потом в цикле предаем в McCOM..

по сравнению, с переключением листов.. работает шустрее..

даже блоки можно так передавать и дергать с них значения атрибутов напрямую...

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

>Я не смог по id получить выносную для исправления, преобразовать McObject в McNoteLeader

хехе, тут у наны затык по сравнению с папой (((

писал уже на этом форуме и форуме разработчиков наны, что невозможно передать объект наны в McCOM, по ID, но разработчикам не до этого

Set ObjMC = spds.Object(objAK) 'имеем полный доступ к свойствам объектов СПДС в АК но в нане "method not implemented under this platform"

а вот в папе это реализовано, и получается очень удобно, чтобы собрать объекты со всего документа (модели и листов) селсетом с фильтрами получаем коллекцию и потом в цикле предаем в McCOM..

по сравнению, с переключением листов.. работает шустрее..

даже блоки можно так передавать и дергать с них значения атрибутов напрямую...

Я с MC в COM не работал. Только NET. На С# приведение типов сработало, может на VB что то не то делал, но помню, что бился долго, но так и не смог.

Посмотрел свою тему на developers.nanocad.ru там что то было с приведением типов (is as) наверное исправили...

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

>наверное исправили...

в 10.1 нано пишет метод не реализован в этой платформе.

если б исправили, давно уже б носом ткнули... а так типа не слышат..

 

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

> он в платформе есть?

таблицы, выноски и еще кое, что это он и есть.. с слегка кастрированным функционалом.

я ж выше дал пример, он в платформе сработает как есть)))

в платформе нет своих таблиц и выносок.. частично mcad,и куски из автокад.

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

естественно в платформе не все обьекты МсСОМ, он специально обрезан,

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

На чем пишете? Всмысле NET или COM. Видео кстати не доступно

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

Начал я ваять своего Франкенштейна.

 

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

Подскажите, где моя ошибка?

 

Imports Multicad.Runtime
Imports Multicad.DatabaseServices
Imports Multicad.DatabaseServices.StandardObjects
Imports System.Windows.Forms
Namespace insNewBlock
   Public Class insNewBlock
    <CommandMethod("cus_newBlock", CommandFlags.NoCheck Or CommandFlags.Redraw)>
    Public Sub SurroundingSub()
	    Dim blName As String = "EVOLUTION EKF 411 AL UD"
	    Dim blpatch As String = "h:\документы отделов\САПР\Tecnoeka\" & blName & ".dwg"
	    Dim doc As McDocument = McDocumentsManager.GetActiveDoc()
	    Dim refDoc As McDocument = McDocumentsManager.OpenDocument(blpatch, False, True)
	    Dim sheetsId As List(Of Multicad.McObjectId) = refDoc.GetSheets()
	    Dim modelSpace As McDocument = Nothing
	    For Each idSheet As Multicad.McObjectId In sheetsId
		    Dim sheet As McDocument = idSheet.GetObject()
		    If sheet.IsModel Then
			    MessageBox.Show(sheet.ToString())
			    modelSpace = sheet
			    Exit For
		    End If
	    Next
	    modelSpace.CopyObjects(doc, blName)
	    Dim refBlk As McBlockRef = New McBlockRef()
	    refBlk.BlockName = blName
	    'MessageBox.Show(refBlk.BlockName)
	    refBlk.DbEntity.AddToCurrentDocument()
    End Sub
   End Class
End Namespace

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

Господа, подскажите, почему в нанокаде не появляется команда на открытие формы "cus_selBlock".

Вызов делаю таким же образом, как и для других команд.

 

Imports Multicad.Runtime
Imports Multicad.DatabaseServices
Public Class FrmBlockSelect
   <CommandMethod("cus_selBlock", CommandFlags.NoCheck Or CommandFlags.Redraw)>
   Public Sub FrmBlockSelect_Load(sender As System.Object, e As System.EventArgs) Handles MyBase.Load

и т.д.

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

Господа, подскажите, почему в нанокаде не появляется команда на открытие формы "cus_selBlock".

Вызов делаю таким же образом, как и для других команд.

 

Imports Multicad.Runtime
Imports Multicad.DatabaseServices
Public Class FrmBlockSelect
<CommandMethod("cus_selBlock", CommandFlags.NoCheck Or CommandFlags.Redraw)>
Public Sub FrmBlockSelect_Load(sender As System.Object, e As System.EventArgs) Handles MyBase.Load

и т.д.

слепил костыль

Imports Multicad.Runtime
Public Class SelBlock
   <CommandMethod("cus_SelBlock", CommandFlags.NoCheck Or CommandFlags.NoPrefix)>
   Public Sub selblock()
    Dim frmSel As New frmSelBlock()
    frmSel.Show()
   End Sub
End Class

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

Всем добрых суток!

 

Первая версия модуля готова, так сказать preAlfa.

 

Умеет строить дерево для списка блоков и вставлять выбранный блок в текущий чертеж. Инфу берет из БД

 

Сырцы прилагаю.

klen.zip

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

Исправленная ссылка на видео работы в автокаде

 

_http://cloud.klen-net.ru/public.php?service=files&t=bb5fe9e68319577bd4952b91f910bc91

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

Подскажите, как на ваш взгляд оптимальнее поступить со "спецификацией", т.е. со списком оборудования, передаваемым в excel?

 

1. Пытаться запихнуть всю инфу по блоку в его свойства, а потом считывать оттуда

2. Писать в свойства только UID объекта, а потом выдергивать всю инфу из БД

 

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

 

И второе - как нумеровать блоки? Чего-то тут у меня вообще ступор - где взять счетчик.

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

Смотря какая система нумерации и в какой момент присваивается номер.

1. У каждого блока уникальное обозначение или же группа блоков с одинаковым наименованием имеет одинаковое обозначение?

2. Зависит ли обозначение от положения блока?

А так все собирать в коллекцию, а дальше сортировать, считать и т д

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

Смотря какая система нумерации и в какой момент присваивается номер.

1. У каждого блока уникальное обозначение или же группа блоков с одинаковым наименованием имеет одинаковое обозначение?

2. Зависит ли обозначение от положения блока?

А так все собирать в коллекцию, а дальше сортировать, считать и т д

 

У группы одинаковых блоков один номер. В старом модуле он присваивается в момент вставки блока.

 

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

Вопрос решился сам собой )

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

На самом деле все сложнее.

1. Для обновления Вашего приложения нужно иметь загрузчик его с сервера.

2. Установщик загрузчика.

3. В блоке надо хранить его обозначение, а в выносной идентификатор (handle) блока, для проверки пары блок-обозначение.

4. В спецификации хранить идентификаторы (handle) блоков, для проверки пары чертеж-спецификация.

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

На самом деле все сложнее.

1. Для обновления Вашего приложения нужно иметь загрузчик его с сервера.

2. Установщик загрузчика.

3. В блоке надо хранить его обозначение, а в выносной идентификатор (handle) блока, для проверки пары блок-обозначение.

4. В спецификации хранить идентификаторы (handle) блоков, для проверки пары чертеж-спецификация.

DLL у меня будет лежать в сетевой папке - вне локалки работа не предполагается. Автозагрузку в нанокад буду прописывать через конфиг, а конфиг раздавать пользователям через групповую политику. Проблем с обновлениями не должно быть.

 

Я планировал формировать спецификацию по команде, непосредственно в excel и не хранить ее нигде в чертеже. Именно так сейчас у нас дело и обстоит.

Вообще, проектировщиками наших проектировщиков тяжело назвать - они скорее дизайнеры - накидывают оборудование в помещение. А инженерку и архитектуру куда-то на аутсорс сплавляют.

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

nanoCAD.Application

Лучше получить через Teigha .NET, не будет проблем с регистрацией COM интерфейса. _https://github.com/RobinKzn/CustomAutosaveNanoCad/blob/master/autosave81x64/GetAcadApplication.cs

Не мешайте COM с Multicad .NET, выберите одно из двух

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

nanoCAD.Application

Лучше получить через Teigha .NET, не будет проблем с регистрацией COM интерфейса. _https://github.com/RobinKzn/CustomAutosaveNanoCad/blob/master/autosave81x64/GetAcadApplication.cs

Не мешайте COM с Multicad .NET, выберите одно из двух

Спасибо за советы и подсказки!

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

Выкладываю очередную версию, видимо, последнюю, т.к. собираюсь менять место работы. Кто-то другой пусть допиливает/переписывает.

Сырцы в свободном доступе.

 

Написано, конечно, ужасно, но работает, зараза.

 

Может вставить блок в чертеж из готового dwg файла, вытянуть описание блока, пронумеровать все добавленные блоки и построить по ним спецификацию.

 

klen.zip

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

RRoman

 

Насколько я понял вам подойдёт это http://www.kdmsoft.ru/shema.html

Ну или смотрите связку МультиЭлемет и Техбрас (там же)

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

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

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

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

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

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

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

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

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

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

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

×
×
  • Создать...