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

Создать точки по координатам из файла


Politechnik

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

Здравствуйте все!

У меня есть координаты 4000 точек в файле. Мне надо их передать в UG.

Как это сделать? :smile:

Заранее благодарен.

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


можно получить сплайн путем импортирования координат из текстового файла insert\curve\spline\throuch points\points from file - , а уже по сплайну получить точки insert\curve\poin set ... ну или не получать точки :)

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

по быстрому набросал кусок кода ...

Координаты точек - по абсолютн системе координат

формат файла с данными :

x y z

разделитель - пробел

в каждой строчке - по точке

Пример:

10.0 20.0 30.0

12.0 50.0 80.0

ЗЫ Если лень ковыряться с кодом - в аттаче готовая dll для NX1

Запускать File->execute UgOpen->User Function или Ctrl+U

// source на с/с++

// *** cut here ***

#include <iostream>

#include <string>

#include <vector>

#include <fstream>

#include <sstream>

using std::vector;

using std::string;

using std::stringstream;

using std::fstream;

using std::cerr;

using std::endl;

using std::ios_base;

using std::getline;

#include <uf.h>

#include <uf_ui.h>

#include <uf_cfi.h>

#include <ug_session.hxx>

#include <ug_exception.hxx>

#include <ug_point.hxx>

#include <point3.hxx>

// error reporter ...

void report_error(const string &error_text) {

try {

UgSession sess(true);

UgException::throwOnFailure(UF_UI_display_nonmodal_msg("Error",(char*)error_text.c_str(), UF_UI_MSG_POS_CURSOR));

}

catch(...) { cerr<<"shit happened!"<<endl; }

}

string get_data_file (void) {

try {

UgSession sess(true);

char filter[uF_CFI_MAX_PATH_NAME_SIZE+1]="*.dat;*.bin",

filename[uF_CFI_MAX_PATH_NAME_SIZE+1]="\0";

int rsp;

UgException::throwOnFailure(

UF_UI_create_filebox ("select data file", "select data file", filter,

NULL, filename, &rsp));

if (rsp != UF_UI_OK ) return string();

fstream f(filename, ios_base::in);

if (!f.is_open()) {

report_error(string("unable to open file ... ") + filename);

return string();

}

f.close();

return filename;

}

catch(const UgException &err) { report_error(err.askErrorText()); }

catch(...) { report_error("unhandled error"); }

return string();

}

void read_data (vector <Point3> &data, const string &fname) {

try {

fstream f(fname.c_str(), ios_base::in);

while (f.good()) {

string s;

stringstream ss;

ss.fixed;

getline(f, s);

ss<<s;

double xyz[3];

ss>>xyz[0]>>xyz[1]>>xyz[2];

data.push_back(Point3(xyz[0],xyz[1],xyz[2]));

}

f.close();

}

catch(const UgException &err) { report_error(err.askErrorText()); }

catch(...) { report_error("unhandled error"); }

}

// entry point ...

extern "C" DllExport void ufusr( char *parm, int *returnCode, int rlen )

{

try {

UgSession sess(true);

// get data file name

string data_file = get_data_file();

if (data_file.size() == 0) return;

vector <Point3> points;

read_data(points, data_file);

for (int i=0; i<points.size(); i++) UgPoint::create(points);

}

catch(const UgException &err) { report_error(err.askErrorText()); }

catch(...) { report_error("unhandled error"); }

}

// *** cut here ***

points_from_file_nx1.dll

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

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

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

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

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

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

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

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

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

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

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




  • Сообщения

    • gudstartup
      ну за границу ездил и досмотр при выезде обязателен у него не один а с одним станком это не производство у многих даже в гаражном хозяйстве больше
    • aalex_b
      Добрый день. Саму систему я поднял. Не знаю куда вводится центр стола, но предполагаю в 960,хх параметр для Y и для X А поворот головы куда вносят: при горизонтальном и вертикальном положении. Так же методика измерения интересует  HDD ушел физически: BIOS его не видит и при включении питания свист, как от болгарки.
    • Flint_ru
      Добрый день!  Подскажите, можно ли в WB задать нагрузку двухмерной таблицей, не прибегая к всавке apdl и если можно, то как?  В apdl  просто создается таблица, например, один параметр Time, другой координата. В итоге можно для каждого шага задать свою нагрузку, зависящую от координаты.  В WB можно выбрать  tabular, но есть возможность выбрать только одну независимую переменную. Спасибо.
    • Killerchik
      Вы уверены? Я не знаю, на сколько дотошна на вывоз китайская таможня. Судя по идущим посылкам - совершенно не дотошна.   СОЖ мы себе везли (которую по моей дурости купили, думая что привезти будет легко) через 2 промежуточные страны страны. Что-то более стрёмное, с малейшей электроникой, едет через 3. Это типа прекрасная новая реальность, добро пожаловать.   Со станком не случится, а вот с заказом может случится много чего - не успеть к выставке, не получить инвестора. Производства бывают разные - какая-то конкретная деталь может быть сделана на каком-то одном имеющемся станке, может там отверстие глубокое, может габарит большой. Да может просто у человека один станок, и всё! Что он теперь, ненормальный?
    • Jesse
      @Fedor Успокойтесь. Никто тут не собирается отказываться от теории сплошности
    • Shura762
      Вопрос из разряда "Достало" как сделать в Словаре ширину колонок больше ПОСТОЯННОЙ! уже устал двигать каждый раз. Это первый вопрос. Второй - при "Сброс настроек.." Словарь принимает вид из поставки, где кроются файлы для восстановления, хочу заменить и забыть. Спасибо заранее. И еще вдогонку, при редактировании содержимого Словаря или создания нового используется Шрифт "старый" как изменить на "новый" который в ТФ по умолчанию.
    • Maik812
      Хочешь не хочешь а сортировать по содержимому и искать в нем текст приходится..  Есть правильные конвертеры просто. Но вот бывает что не та кодировка или не так правильно она оформлена и не понимает. Сверху абракадабра в слове "формат" Солид 2010 кажется, а ниже пересохранен в новее версии или наоборот.. Там конвертер x2doc , он "на лету" переводит пдф в текстовик и регулярным выражением вытаскивает "содержимое" в колонку . Поиск текста в пдф тоже так же делается. А содержимое колонки ТС, можно уже одним кликом по команде в EXEL вставить.
    • MagicNight
      Добрый день! Купили фрезерный станок с ЧПУ со стойкой FANUC Series 0i-Model F Plus. Имею не большой опыт данной стойки. Привязали десять инструментов относительно стола станка (т.е стол станка Z=0) Сейчас принесли приспособление которое имеет высоту 50мм. Хотим привязать весь инструмент от приспособления. Подскажите, как это сделать быстро, чтобы не вносить изменения в корректор на каждый инструмент. Пролистал книги в электронном варианте, бегло, не нашел. А уже нужно делать заказ.
    • kkk
      Стрелки разрезов иногда "пробивают" линии разрезов, что-то еще бывает. Но это мелочи, у нас нормоконтроля нет. А вот когда закрашенные виды начинают жестко чудить, с пропаданием или перемешиванием текстур, тогда уже неприятно. Либо еще какие-глюки вылезают оформительские. Нам часто приходится дизайнерам на одобрение файлы засылать, а такие штуки несколько нервируют.
    • ID_Hacker
      Более того, у него в SET PG/PC в диагностике нельзя посмотреть доступные адреса на шине. Но для общих задач подходит. Так же мы их комуникационные интерфейсы MPI/ETHERNET берём, что бы подключать станки на Sinumerik Powerline к заводской сети для сбора данных диспетчеризации и удалённого подключения Step 7.     Здесь ищите: Александр Кудинов, Пряничников Алексей. Номера давать некультурно.     ТИА у вас просит ToolBox 18 Update 1 потому что сама ТИА 18 версии. Проект то такой версии и был? Или вы конвертировали при открытии? Файл проекта ТИА имеет расширение *.ap13, *.ap14, *.ap16, *.ap18 в зависимости от версии ТИА в которой он создан.   И ещё вариант поиска. У вас же на станке наверняка стоит Simatic IPC компьютер и TCU на пульту управления. Вы пробовали выходить на Simatic IPC в Windows и смотреть что на нём есть? Вполне может быть там установлена TIA с нужными дополнениями.
×
×
  • Создать...