Перейти к публикации

Небольшая ПДМ для Солида


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

Сколько я ни отнекивался - таки начал писать ПДМ-ку для Солида. Чувствую, зря, но делаю....

Предыдущая прога была написана для Акада и адаптировать ее для Солида я так и не собрался - слишком много переделывать.

Так что начал с "нуля", но идеология останется - привык уже.

Тему открыл потому, что многое самому не ясно. Ну и задачу ставлю "по минимуму" - типа "необходимо и достаточно"...

Буду делиться сомнениями и происками...

....

Начал, конечно, с импорта спецификации.

Импортировать буду из текстового файла и (потом) допишу и для Экселя. Дело в том, что ФоксПро, который у меня есть "непонимает" эксель от Солида, а Текстовый отлично понимает.

Впрочем, импорт уже написан. Самому понравилось - пару кнопок нажал - и СП в базе! Давно об этом мечтал....

И вот здесь-то и возник у меня первый вопрос.

Дело в том, что для разных файлов нужен разный набор свойств...

И вопрос в удалении лишних свойств. Точнее в несоздании их. Дело в том, что "пустые" свойства иногда имеют сколько-то пробелов и СП сортируется неправильно. С виду свойство пустое, а пробелов куча!

Тут у меня только мысль создать нужное кол-во шаблонов и соответствующее кол-во файлов свойств.

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

????

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


Дело в том, что "пустые" свойства иногда имеют сколько-то пробелов и СП сортируется неправильно. С виду свойство пустое, а пробелов куча!

Прощу прощения. не совсем понял - что мешает программно грохнуть при импорте лишние подряд идущие пробелы (или сократить их допустим до одного)?

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

Начал, конечно, с импорта спецификации.

Импортировать буду из текстового файла

а как обновлять текстовики и базу? Парой десятков кликами мыши?

Дело в том, что ФоксПро, который у меня есть

инструмент точно по задаче?

  • Какой смысл в пустых свойствах? Какой смысл пробелов в ПУСТЫХ свойствах?
  • Как интегрировать фокс и солид?
  • Как вытягивать позиции из чертежа? (кроме как данных по объекту)

И вопрос в удалении лишних свойств.

неа, не проблема.

bool flag;

				IModelDoc2 doc = this.m_swApp.IActiveDoc2;

				IPartDoc doc2 = (IPartDoc)doc;

				string configuration = ConfigNames.SelectedItem.ToString();

				if (listBox1.Enabled & (listBox1.SelectedIndex != -1))

				{

					flag = doc.DeleteCustomInfo2(configuration, "RAL");

					flag = doc.DeleteCustomInfo2(configuration, "RGB");

					flag = doc.AddCustomInfo3(configuration, "RAL", 30, listBox1.SelectedItem.ToString());

					base.Close();

				}

				if (!listBox1.Enabled)

				{

					flag = doc.DeleteCustomInfo2(configuration, "RGB");

					flag = doc.DeleteCustomInfo2(configuration, "RAL");

					string fieldValue = textBox1.Text + ";" + this.textBox2.Text + ";" + this.textBox3.Text;

					flag = doc.AddCustomInfo3(configuration, "RGB", 30, fieldValue);

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

Прощу прощения. не совсем понял - что мешает программно грохнуть при импорте лишние подряд идущие пробелы (или сократить их допустим до одного)?

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

К сожалению, еще долго не все будут работать в Солиде - так что "промежуточный" формат обмена приходится оставлять. И это не от меня зависит...

а как обновлять текстовики и базу? Парой десятков кликами мыши?

Что такое "текстовики и базу"???

На часик отлучусь от компа...

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

VOleg

насколько я понял, вы уже показывали эту базу данных. Вы её хотите дописать?

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

VOleg

насколько я понял, вы уже показывали эту базу данных. Вы её хотите дописать?

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

VOleg

сейчас логика такая: солид=спецификация=импорт в текстовик=экспорт из текстовика в базу? Я правильно понимаю?

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

сейчас логика такая: солид=спецификация=импорт в текстовик=экспорт из текстовика в базу? Я правильно понимаю?

Да, логика такая. Солид=спецификация=импорт в Эксель - это сейчас я делаю для всех сборок и мне очень нравится. Дальше из Экселя просто оформляем СП в старенькой какой-то базе.

инструмент точно по задаче?

  • Какой смысл в пустых свойствах? Какой смысл пробелов в ПУСТЫХ свойствах?
  • Как интегрировать фокс и солид?
  • Как вытягивать позиции из чертежа? (кроме как данных по объекту)
Инструмент по задаче. Т.к. задачу я ставлю минимальную.

"Пустые свойства" придумал не я, а, наоборот, с ними борюсь. И в шаблонах в пустых свойствах стоят пробелы. А вот сколько этих пробелов там... это вопрос.

Как интегрировать фокс и солид пока не думал...

Позиции с чертежа я не вытягиваю - позиции работают со спецификацией Солида и там все отлично. Обратная связь по позициям не предполагается. Зачем?

Солидовская СП у меня полностью определена, отсортирована по ГОСТ и уже 2 года без проблем.

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

Солид=спецификация=импорт в Эксель

А если упростить - Солид = импорт в Эксель

Т.е. не создавать спецификацию в Солиде, а генерить её самой программой по структуре сборки?

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

дык если уже из готовой спецификации всё берётся, причем тут:

Дело в том, что для разных файлов нужен разный набор свойств...

и

И вопрос в удалении лишних свойств.

Вы же не из файла инфу вытаскиваете а данные ячеек спецификации.

Мм?

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

А если упростить - Солид = импорт в Эксель

Т.е. не создавать спецификацию в Солиде, а генерить её самой программой по структуре сборки?

Так Солид ее и генерит прекрасно. Кроме того я ее создаю уже в модели (2010-ая версия). И в модели оформляю ТТ с правильными номерами позиций.

Пробовал эту СП вставлять и в чертеж, но что-то стало клинить и я отказался - в чертеже снова вызываю СП и сортирую ее.

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

GOLF_stream

так и работают PDM, у VOleg всё по другому (вроде).

Ладно...

Пойдём другим путём. VOleg задавайте конкретные цели, будем пробовать реализовывать.

P.S. Не изменяйте посты, пишите новые, а то запутаться можно.

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

дык если уже из готовой спецификации всё берётся, причем тут:

и

Вы же не из файла инфу вытаскиваете а данные ячеек спецификации.

Мм?

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

Впрочем, думаю, что несколько шаблонов решит эту проблему. Я их сейчас сделал на следующей недели буду испытывать.

Ладно...

Пойдём другим путём. VOleg задавайте конкретные цели, будем пробовать реализовывать.

Спасибо за помощь. "Мысли, высказанные вслух, становятся отчетливей и строже" - кто и когда сказал, не помню...
Ссылка на сообщение
Поделиться на других сайтах

и участвуют в сортировке

хмм..учавствуют в сортировке стандартной солидовской спецификации?
Ссылка на сообщение
Поделиться на других сайтах

Я посты не меняю.

хмм..учавствуют в сортировке стандартной солидовской спецификации?

Моя СП сортируется по "разделу", "стандарту", и "сортировке".
Ссылка на сообщение
Поделиться на других сайтах

Пойдём другим путём. VOleg задавайте конкретные цели, будем пробовать реализовывать.

Появилась конкретная задача:

Нужен макрос, удаляющий все свойства файла...

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

Структура таблицы конструкторских документов

1 KDKOD Numeric 6 Код записи

2 KDFORMAT Character 2 Формат чертежа\спецификации

3 KDZONE Character 1 Зона

4 KDDNOMER Character 20 Обозначение

5 KDNAME Character 100 Наименование

6 KDRAZDEL Numeric 1 Раздел

7 KDSTANDART Character 20 Стандарт

8 KDSORT Character 100 Сортировка

9 KDMASSA Numeric 4 Масса

10 KDMATERIAL Character 100 Материал

11 KDLITERA Character 102 Литера

12 KDPERVPRIM Character 20 Первичное применение

13 KDDATESOZD Date 8 Дата внесения в базу

14 KDIZM Integer 4 Номер изменения

15 KDAVTOR Character 15 Автор

16 KDLEVEL Character 1 Уровень (создание…..архив)

17 KDFORMATSB Character 2 Формат сборочного чертежа

18 KDIZDELIE Integer 4 Изделие первичного применения

19 KDKOLLLIST Integer 4 Количество листов

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

Нужен макрос, удаляющий все свойства файла...

Ещё бы и язык программирования узнать? :wink:

Sub main()



	Dim swApp						   As SldWorks.SldWorks

	Dim swModel						 As SldWorks.ModelDoc2

	Dim vConfigNameArr				  As Variant

	Dim vConfigName					 As Variant

	Dim vCustInfoNameArr				As Variant

	Dim vCustInfoName				   As Variant

	Dim bRet							As Boolean

	

	Set swApp = Application.SldWorks

	Set swModel = swApp.ActiveDoc



	'get a full list of configuration names for the active model

	vConfigNameArr = swModel.GetConfigurationNames



	If IsEmpty(vConfigNameArr) Then

		ReDim vConfigNameArr(0)

		vConfigNameArr(0) = ""

	Else

		' Add a blank string to the configuration name list.

		' This blank string is for the standard custom properties.

		

		ReDim Preserve vConfigNameArr(UBound(vConfigNameArr) + 1)

	End If



	For Each vConfigName In vConfigNameArr



		vCustInfoNameArr = swModel.GetCustomInfoNames2(vConfigName)



		If Not IsEmpty(vCustInfoNameArr) Then



			For Each vCustInfoName In vCustInfoNameArr

				swModel.DeleteCustomInfo2 vConfigName, vCustInfoName

			Next

		

		End If



	Next



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

Ещё бы и язык программирования узнать

Спасибо огромное!!!

Пока Солид и ПДМ работают отдельно и только обмениваются файлами. Все та же проблема с АКАДом... он еще живее всех живых. Ессно и о нем надо помнить.

Таким образом макрос просто для Солида с созданием кнопочки в Солиде.

Задача: открыв "старый файл" нажимаю "удалить все свойства", потом кнопка "Свойства пользователя" и создаю нужный набор свойств (точнее он создается автоматом), выбрав нужный файл,и заполняю их.

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

Макрос работает отлично! Еще раз спасибо.

Таблица спецификаций имеет вид:

Field Field Name Type Width Dec

1 SPKOD1 Numeric 8 Код сборки

2 SPKOD2 Numeric 8 Код входящего документа

3 SPPOZ Numeric 4 Позиция

4 SPKOL Numeric 10 2 Количество\длина

5 SPKOLB Numeric 10 2 Ширина

6 SPKOLH Numeric 10 2 Высота

7 SPDATEPRIM Date 8 Дата создания записи

8 SPPRIM Character 10 Примечание

Решил сохранить связь детали с материалом.

в таблице конструкторских документов добавил

20 KDkodMATER integer 4 Код материала

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

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

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

Гость
Ответить в тему...

×   Вставлено в виде отформатированного текста.   Вставить в виде обычного текста

  Разрешено не более 75 эмодзи.

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

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

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

  • Сейчас на странице   0 пользователей

    Нет пользователей, просматривающих эту страницу.




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