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

Координаты точек кривой


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

Есть поверхность, рассеченная плоскостью. Создан эскиз вдоль пересечения поверхности и плоскости. Уже неделю пытаюсь найти способ выгрузить значения координат точек сплайна (или кривой, обведенной по нему) в txt. Версия SW 2007 sp2.0.

Рассуждаю так: раз по координатам из txt-файла кривую построить можно, то и обратный ход должен существовать. Но что-то все мои попытки заканчиваются вскипанием мозга, все безрезультатно.

Может макрос какой существует?

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


Есть поверхность, рассеченная плоскостью. Создан эскиз вдоль пересечения поверхности и плоскости. Уже неделю пытаюсь найти способ выгрузить значения координат точек сплайна (или кривой, обведенной по нему) в txt. Версия SW 2007 sp2.0.

Рассуждаю так: раз по координатам из txt-файла кривую построить можно, то и обратный ход должен существовать. Но что-то все мои попытки заканчиваются вскипанием мозга, все безрезультатно.

Может макрос какой существует?

Вот кое-что:

PS. а как у Вас со знаниями в области макросописания?

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

PS. а как у Вас со знаниями в области макросописания?

Ни разу не пробовал, но хочу немного разобраться.

Можно попробовать ето 'retval = CoEdge.Evaluate2 ( Param, NumberOfDerivatives)'

Где это попробовать? Судя по всему, я совсем "турист" в этом деле :smile:

P.S. К сожалению Солид только на работе пока. Так что ковыряться продолжу только в понедельник.

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

Ни разу не пробовал, но хочу немного разобраться.

...

Где это попробовать? Судя по всему, я совсем "турист" в этом деле :smile:

P.S. К сожалению Солид только на работе пока. Так что ковыряться продолжу только в понедельник.

В "Учебных пособиях" есть кое что по SW API
Ссылка на сообщение
Поделиться на других сайтах

А для чего это нужно, если не секрет?

И кстати есть такой формат *xyz для каких случаев он используется, знает кто?

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

...

И кстати есть такой формат *xyz для каких случаев он используется, знает кто?

А где он есть? Это к SW или вообще...?

В SW есть вот такой формат:

цитата из справки:

"

...

- Откройте существующий файл кривой. Нажмите кнопку Обзор и перейдите к открываемому файлу кривой. Можно открыть файлы .sldcrv и .txt, которые используют тот же формат, что и файлы .sldcrv. Также можно создать трехмерные кривые в программе Microsoft Excel; например, сохраните их как файлы .txt, а затем откройте в SolidWorks. Создайте файл, содержащий значения системы координат для точек кривой, используя текстовый редактор или приложение электронной таблицы. Формат файлов должен быть следующий - исключительно список координат X, Y и Z в трех столбцах, разделенных символом пробела или табуляции. Не включайте заголовков столбцов, например, X, Y и Z или каких-либо других данных.

...

- Сохранить файл кривой. Выберите Сохранить или Сохранить как, укажите нужный путь и имя файла. Если расширение не указано, приложение SolidWorks добавляет расширение .sldcrv.

"

PS кстати, может последний пункт автора темы и устроит?

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

Формат *xyz появляется при подключенном модуле scan3D, то есть один из вариантов импортированной геометрии.

- Сохранить файл кривой. Выберите Сохранить или Сохранить как, укажите нужный путь и имя файла. Если расширение не указано, приложение SolidWorks добавляет расширение .sldcrv.

Не очень понятно, есть скажем новая деталь там эскиз с кривой, при "сохранить как" вариантов .txt и .sldcrv нету, а как можно не указать расширение не понятно )
Ссылка на сообщение
Поделиться на других сайтах

Формат *xyz появляется при подключенном модуле scan3D, то есть один из вариантов импортированной геометрии.

...

Это ИМХО "Облако точек" с 3Д-сканера...

...

Не очень понятно, есть скажем новая деталь там эскиз с кривой, при "сохранить как" вариантов .txt и .sldcrv нету, а как можно не указать расширение не понятно )

Не, ну можно написать имя файла "coord", а можно "coord.TXT". Или "coord.SLDCRV". Т.е. явно указывать или не указывать расширение.

Насколько я помню - у них одинаковая структура(формат).

Да надо просто записать и так и эдак, просмотреть и сравнить эти файлы.

Тут делов-то на 3 сек...

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

Ага и будет файл coord.TXT.SLDPRT )))

А разница между txt и sldcrv только в том что txt еще и через текстовый редактор можно открыть, в то время как второй чисто для солида формат.

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

Ага и будет файл coord.TXT.SLDPRT )))

...

С чего это вдруг? Будет файл "coord.TXT" ! Вы это через какой "Save AS" записываете?

Это будет, если делать через меню Файл->сохранить как...

А надо в окошечке...

...

А разница между txt и sldcrv только в том что txt еще и через текстовый редактор можно открыть, в то время как второй чисто для солида формат.

Они абсолютно идентичны! Только что проверил. Вплоть до размера файла.

Просто форматов *.txt много, вот в SW и решили себя "обезопасить" - дать такое расширение, чтобы случайно не спутать.

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

А для чего это нужно, если не секрет?

Это нужно для передачи координат в другую программу, которая принимает только .dat, который впринципе и есть txt.

- Сохранить файл кривой. Выберите Сохранить или Сохранить как, укажите нужный путь и имя файла. Если расширение не указано, приложение SolidWorks добавляет расширение .sldcrv.

PS кстати, может последний пункт автора темы и устроит?

Не устроит, к сожалению. Так можно сохранить только "кривую по точкам XYZ", а мне надо сохранить "кривую по справочным точкам", или координаты сплайна. Вот если бы можно было наколоть Solid и поменять тип кривой - была по справочным точкам, взмах волшебной палочки, и стала по точкам XYZ :smile:
Ссылка на сообщение
Поделиться на других сайтах

Это нужно для передачи координат в другую программу, которая принимает только .dat, который впринципе и есть txt.

Не устроит, к сожалению. Так можно сохранить только "кривую по точкам XYZ", а мне надо сохранить "кривую по справочным точкам", или координаты сплайна. Вот если бы можно было наколоть Solid и поменять тип кривой - была по справочным точкам, взмах волшебной палочки, и стала по точкам XYZ :smile:

Вот, попробуйте:

это из кода из моего поста #2

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

Вот, попробуйте:

это из кода из моего поста #2

Супер! Заработало! Сейчас разберусь что есть откуда и работа закипит.

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

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

Приветствую!

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

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

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

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

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

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

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

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

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

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

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

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




  • Сообщения

    • SAPRonOff
      https://dzen.ru/b/ZjnRssPLbUcXVOUZ
    • davidovka
      Creo 9, VS 2019 (v142). Если использовать стандарт языка С++14, все собирается работает. При переключении на C++17 - ошибки (см. скрин - тестовое приложение из папки Creo) Хотел в проекте использовать <filesystem>
    • maxx2000
    • ДОБРЯК
      Нулевых частот может быть любое количество. Вот эта матрица не будет вырождена.    
    • Orchestra2603
      Речь идет о собственных векторах, связанных с нулевым СЗ. Вы же понимаете.
    • ДОБРЯК
      Для сложных систем их может быть и 100 и 200 и 1000...
    • maxx2000
      @Artas28так надо рецепт в массы нести, а то Ванёк ничему не научится
    • Orchestra2603
      Выкидываем не в смыле, что мы ее вырезаем.. Простите мне эту вольность)) Просто там две одинаковые строки. Достаточно рассмотреть только одну. Нет смысла хранить вторую строку в матрице, поскольку она ничего не привносит. Вы можете совершенно формально взять полученный i-й собственный вектор, умножить на матрицу K-lambda_i*M и получиь нулевой вектор.   На самом деле.. Мне прям пришлось прям подумать над аналогией с включением закрепления в статике. И это было полезно и интересно. Так что вам спасибо за "подгон", что называется )) Но все-таки разница есть ...   Вот у вас в статике:   И здесь действительно получается, что если мы зафиксируем, например, положив a=0, то это будет эквивалентно "выкидыванию" 1-го стобца и 2-й строки, и решению уже такой модифицированной невырожденной системы *в данном случае вообще тривиальной). При этом f2 просто станет узловой реакцией и определится как -f1 автоматически: К слову, можно положить любой a, не только нулевой. Результат будет такой же для сил, но прогибы, ясное дело, поменяются.   Но это отличается от нашей задачи на собственные значения. У нас нет внешних сил {f}.  А знaчит и упругие силы [K]{x} в системе должны быть равны нулю. И для нулевой собственной частоты мы по сути ищем такой набор перемещений, при которых в системе отсутствуют упругие силы.  И таких наборов перемещений бесконечно много. Вообще говоря, для трехмерных более сложных систем оказывается, что существует до 6-ти базисных векторов (понятно, что связанных с движениями как твердого целого), и любая линейная комбинация из этих векторов будет решением такой задачи. Но нам не нужно само решение! Нам нужен как раз сам базис пространства решений! Причем, сами вектора в этом базисе нас интересуют с точностью до множителя, ь.е. таких базисов можно напридумывать бесконечно много. Но нам нужен толкьо какой-то один базис, и всего-то. В этой простейшей задачке - это просто один вектор  {1, 1}. Можно взять {2,2} или {e,e} - не имеет значения, нас любой из них строит. И нам этого достаточно.    Обратите внимание, что этот вектор нельзя получить из задачи статики, где {f} ≠ {0}, положив какое-то значение для a, т.е. внедрив какое-то "закрепление" в вашей интерпретации.  Пожтому я убежден, что это другая задача, т дело тут не в закреплениях.   Не понимаю, про какую вы матрицу
    • Viktor2004
      Туда вроде наоборот заносится значение какое-то, но не считывается Смотрю чужие программы, там вроде только 8549 используют. При чем у них в программах циклы поболее моих, которыми я круги чертил O4198 ; #500=#8549 ; IF[ #8549 EQ 0 ] THEN ; #10409=0 ; ENDIF ; IF[ #8549 EQ 134 && #10409 EQ 0 && #10422 NE 0 ] THEN ; #10409=1 ; #10422=FIX[#10422 / 10] ; #10427=1 ; ENDIF ; IF[ #8549 EQ 48 && #10409 EQ 0 ] THEN ; #10409=1 ; #10422=#10422 * 10 + 0 ; #10427=1 ; ENDIF ; IF[ #8549 EQ 49 && #10409 EQ 0 ] THEN ; #10409=1 ; #10422=#10422 * 10 + 1 ; #10427=1 ; ENDIF ; IF[ #8549 EQ 50 && #10409 EQ 0 ] THEN ; #10409=1 ; #10422=#10422 * 10 + 2 ; #10427=1 ; ENDIF ; IF[ #8549 EQ 51 && #10409 EQ 0 ] THEN ; #10409=1 ; #10422=#10422 * 10 + 3 ; #10427=1 ; ENDIF ; IF[ #8549 EQ 52 && #10409 EQ 0 ] THEN ; #10409=1 ; #10422=#10422 * 10 + 4 ; #10427=1 ; ENDIF ; IF[ #8549 EQ 53 && #10409 EQ 0 ] THEN ; #10409=1 ; #10422=#10422 * 10 + 5 ; #10427=1 ; ENDIF ; IF[ #8549 EQ 54 && #10409 EQ 0 ] THEN ; #10409=1 ; #10422=#10422 * 10 + 6 ; #10427=1 ; ENDIF ; IF[ #8549 EQ 55 && #10409 EQ 0 ] THEN ; #10409=1 ; #10422=#10422 * 10 + 7 ; #10427=1 ; ENDIF ; IF[ #8549 EQ 56 && #10409 EQ 0 ] THEN ; #10409=1 ; #10422=#10422 * 10 + 8 ; #10427=1 ; ENDIF ; IF[ #8549 EQ 57 && #10409 EQ 0 ] THEN ; #10409=1 ; #10422=#10422 * 10 + 9 ; #10427=1 ; ENDIF ; IF[ #10422 GT 9999 ] THEN ; #10422=FIX[#10422 / 10] ; ENDIF ; IF[ #500 EQ 249 && #8500 EQ 4170 ] THEN ; #8500=4601 ; M99 ; ENDIF ; IF[ #500 EQ 240 ] THEN ; IF[ #8500 EQ 4174 || #8500 EQ 4173 || #8500 EQ 4177 ] THEN ; #8500=4170 ; M99 ; ENDIF ; IF[ #8500 EQ 4178 ] THEN ; #8500=4170 ; M99 ; ENDIF ; ENDIF ; IF[ #500 EQ 248 && #8500 EQ 4170 && D34.0 NE 0 ] THEN ; #8500=4174 ; M99 ; ENDIF ; IF[ #500 EQ 247 && #8500 EQ 4170 && D30.4 EQ 1 && D29.6 EQ 0 ] THEN ; #8500=4175 ; M99 ; ENDIF ; IF[ #500 EQ 246 && #8500 EQ 4170 && D35.0 EQ 1 && D35.4 EQ 1 ] THEN ; #8500=4178 ; M99 ; ENDIF ; IF[ #8549 EQ 152 && #10409 EQ 0 && #10422 EQ 5656 ] THEN ; #8500=4177 ; M99 ; ENDIF ; M99 ;  
    • nicomed
      Как победить проблему с блокированием сегментов эскиза не знаю. Поэтому пока полумеры... Ввел активацию чертежного листа после разрыва линии. Для разблокирования сегментов после закрытия программы двойным кликом активировать чертежный вид, где надо двигать сегменты эскиза. Добавил настройки. Можно настроить величину генерируемого зазора в  файле options.xml. По толщине и стилю линии, если кто подскажет как прочитать стиль и толщину выбранной кромки ( силуэтной кромки), то тогда можно будет "напосмотреть".   Пару раз натыкался на такой глюк - остается только один сегмент эскиза, грешу на рассинхронизацию работы солида и приложения. EdgeTrim_v3.3.zip
×
×
  • Создать...