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

список точек в документе


afl

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

Хелло!

подскажите, плиз, как получить список точек и вывести их координаты в файл (к примеру) с использованием Inventor API.

есть примерно такой код:

// code for connection to the Doc is skipped



		auto ListInvPoints = PartDoc->ComponentDefinition->GetWorkPoints();

		int countInvPoints = ListInvPoints->Count;



		for (int i = 1; i <= countInvPoints; i++)

		{

			CComPtr</*Inventor*/::WorkPoint> pPoint;

			pPoint = ListInvPoints->Item[i];

			auto tPoint = pPoint->Point;

			auto wName = pPoint->Name;

			std::string sName = wName;

			double x = tPoint->get_X();

			double y = tPoint->get_Y();

			double z = tPoint->get_Z();

			// save sName, X, Y, Z to file

		}
имена точек получаются такие же как в исходной модели, НО координаты X,Y,Z - все нулевые. хотя в модели все точки разные и имеют разные координаты.

thanx-in-advance

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


каких точек?

рабочих точек, контейнер которых я получаю методом

PartDoc->ComponentDefinition->GetWorkPoints()
количество элементов в этом контейнере аккурат на единицу больше,

чем рабочих точек в модели (добавляется доп. точка с именем "Центр").

thanx-in-advance

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

всем спасибо! задача решена.

правильное решение

for (int i = 1; i <= countInvPoints; i++)

		{

			CComPtr</*Inventor*/::WorkPoint> pPoint;

			pPoint = ListInvPoints->Item[i];

			auto tPoint = pPoint->Point;

			auto wName = pPoint->Name;

			std::string sName = wName;

			HRESULT hr = NOERROR;

			double x,y,z;

			hr  = tPoint->get_X(&x);

			hr = tPoint->get_Y(&y);

			hr = tPoint->get_Z(&z);

			// save sName, X, Y, Z to file

		}

RTFM, чо.

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

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

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

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

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

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

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

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

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

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

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




  • Сообщения

    • Ahito
    • maxx2000
      т.е. доверять разработчикам оснований нет. Ясно-понятно
    • clavr
      все так и было до 2024 версии. размеры не импортировались. теперь вот в 2024 так нельзя. может где-то в настройках поменять что нужно? все перерыл, пока не нашел
    • arsenev
      Первый свободный номер инструмента   int list $toolnumblist = extract(folder('TOOL'), 'Tool.Number.Value') int $newToolNumb = 1 while member( $toolnumblist, $newToolNumb) {     $newToolNumb = $newToolNumb + 1 } Message Info 'Первый свободный номер инструмента - ' + $newToolNumb     Инструменты с повторяющимися номерами   int list $toolnumbers = extract(folder('tool'),'Number.Value') int $i = remove_duplicates($toolnumbers) string $op = '' foreach $n in $toolnumbers {     string list $names = extract(filter(folder('tool'),'this.Number.Value == "' + $n + '"'),'Name')     if size($names) > 1 {         $op = $op + 'Инструменты с повторяющимся номером T ' + $n + CRLF         foreach $name in $names {             $op = $op + $name + CRLF         }         $op = $op + CRLF     } } message info $op     Удаление выбранного   Макрос, который проверяет тип объекта, а затем позволяет выбрать один и удалять выбранные части. Я связал это с ctrl+d.   string list $rootTypes = {'toolpath','featureset','pattern','boundary','model'} string list $selectedTypes = {} foreach $rt in $rootTypes {     if entity_exists(entity($rt,'')) {         entity $ent = entity($rt,'')         if number_selected($ent.RootType, $ent.Name) > 0 {             int $i = add_last($selectedTypes,$rt)         }     } } if size($selectedTypes) <= 0 {     return } int $index = -1 if size($selectedTypes) == 1 {     $index = 0 } else {     $index = input choice $selectedTypes 'Wich Type to remove?' } if $index != -1 {     String $cmd = 'DELETE ' + $selectedTypes[$index] + ' "' + entity($selectedTypes[$index],'').Name + '" SELECTED'         DoCommand $cmd }
    • PETR_1
      Можно переназначить правую и центральную (колесо) кнопки с помощью бесплатной программы X-Mouse Button Control (есть портабельная версия). Это переназначение будет работать только для компаса.
    • Kelny
      Может изменяемый вами размер импортирован из модели?  Обычно переносилось удержанием левой кнопки мыши, а если сделать двойной клик, то нужно потом выбрать новый объект уже без удержания кнопок мыши.
    • Kelny
      Отключить галочки режима большой сборки. Инструменты-Параметры...-Настройки пользователя-Сборки
    • brigval
      Если не прописали, значит считается, что производственный процесс их изготовления гарантирует качество, достаточное для присвоения литеры. Можно и так посмотреть.   Между прочим, пред вынесением Решения о присвоении литеры проходит "испытания" весь комплект  КД. Разрешат вам не предъявлять часть КД на проверку? Спросите у НК.   И все-таки, если есть Решение о присвоении литеры, надо прочитать, что там сказано. Как сформулировано. Возможно, это снимет все вопросы.
    • cepr
      Есть в Компасе возможность построения зубчатого колеса с углом профиля не 20гр., а 25гр?
    • shishov32
      В ТУ не прописали про испытания КМЧ и упаковки, отсюда все пошло. 
×
×
  • Создать...