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

Количество элементов в сборке


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

public int GetComponentsCount(string FeatureName)

		{

			SldWorks.SldWorks swApp = new SldWorks.SldWorks();

			ModelDoc2 model;

			model = swApp.IActiveDoc2;

			Feature ft;

			int count = 0;

			ft = (Feature)model.FirstFeature();

			while (ft != null)

			{

				if (ft.GetTypeName() == "Reference")

				{

				   if (ft.Name.Remove(ft.Name.Length - 2, 2) == FeatureName) count++;

				}

				Application.DoEvents();

				ft = (Feature)ft.GetNextFeature();

			}

			return count;

		}

вот так получаю количество каждого элемента в сборке, но если вставлен 1 элемент и в массиве создано 12 экземпляров этого элемента то функция мне возвращает количество 1. Как обойти эту багу?

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


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

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

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

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

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

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

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

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

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

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




  • Сообщения

    • AlexKaz
      Есть вариант не лечить файл, а использовать софт для восстановления данных с диска (или отдать диск в фирмы-реаниматоры). Комп вырубить, загрузиться с внешней системы, в идеале создать полный побайтный дамп диска перед всеми манипуляциями. Файл искать по расширению/примерному разбросу размера, примерному расположению. Есть приличная вероятность, что в файловой системе осталось несколько промежуточных копий, в том числе во временных папках операционки. Или даже в Корзине. Ещё бывает народ включает резервирование в системе, сам того не зная, и контрольные точки восстановления создаются. Останется откатить систему на нужную дату. Не забывая снять полный дамп диска перед этим.
    • davidovka
      Может Creo, T-Flex, NX, Компас, KeyShot, 3ds max.....
    • hlibhlib
      Spannmittelkonfiguration.pdf
    • Kelny
      Каждый чертёж должен быть в своём файле.   Если бы это был нейтральный формат, то возможно это и помогло, а так файлы Solidworks не каждая софтина может прочитать.   К вопросу резервирвирования надо подходить серьёзнее. Так же в настройках самой программы есть настройки настройки автосохранения и резервирования. Для начала проверьте размер файла, бывает так что проблема может быть с сохранением, а бывает так что, например, при работе на сервере, некоторые файловые системы откусывают файл и тогда от файла вообще может ни чего не остаться кроме названия. Например, были проблемы с файлами Solidworks на сервере Sinology после смены файловой системы на более продвинутую и вроде как с кэшем, так файлы при работе на сервере иногда теряли содержимое (не весь файл сохранялся), но спасал резерв за несколько часов, дней, недель, месяцев - можно был выудить хоть что-то. Если файл около нулевого размера, то шансов что-то спасти совсем нет. Если файл всё таки имеет размер, то как вариант попробовать открыть файл в более будущей версии - иногда помогает. Как-то ломался файл и не отрывался в текущей версии, зато в будущей открывался, а всего-то в чертеже имена видео переименовал и всё (вроде бы сохранялся и больше не открывался).   @Mizaz Попробуйте открыть файл только для просмотра Файл-Открыть..., выберите файл для открытия (но не открывайте), а попробуйте разные галочки для загрузки, как вариант выбрать ТОЛЬКО БЫСТРЫЙ ПРОСМОТР. Или попробовать открыть файл через eDrawings    
    • bsaidov
      Используя даже ваш файл картинка не поменялось. Все те заблокированные выражения и отсутствия выражения с обозначением резьбы все также остаются
    • davidovka
      можно попробовать отрыть другим КАДом. В файлах геометрия хранится отдельно от "дерева построения", поэтому многие КАДы, или софт для рендера, могут открыть файлы друг друга без конвертации.
    • Kelny
      рекомендую воспользовать другим вариантом: или как писал выше сделать блок, а что бы можно было разные значения вбивать под знаком, можно добавить заметке в блоке ИМЯ при редактировании блока и тогда блок будет один, а значения в нём может быть разное.   А если хочется повторить фокус с: То нужно вставлять всю строчку и не удалять пробелы (или добавлять дополинтельные), т.к. этот метод на уровне шаманства - может сработать или сбойнуть в какой-нибудь другой версии.
    • EAleksey
      Добрый день, вот этими пробелами регулируйте, у всех просто разные настройки высоты шрифтов.
    • malvi.dp
      Пару строк, можно. В модуле Roughness_run идем в процедуру "main" и перед строкой "FrmRoughness.Show" вставляем следующий код:  
    • gudstartup
      никак. это не предназначено для пряного редактирования. файл создан станкостроителем из исходников которые есть у станкостроителя а потом скомпилирован в p-code . напрямую редактировать это примерно как exe файл в виндоус пытаться изменить. про то за что отвечают переменные данные в диалоговых окнах у вас должно быть написано в руководстве по эксплуатации станка а если такового нет то вы обратитесь к станкостроителю и может они вышлют вам отдельную инструкцию.
×
×
  • Создать...