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

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


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 пользователей

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




  • Сообщения

    • Kelny
      Очень давно как раз было хорошо, когда Solidworks печатал ещё через встроенный виртуальный принтер BlueBeam эдак в версиях Solidworks 2004-2006, но потом перешли на Adobe и стало кривовато, да так что до сих пор аукается.   В винде такая же сторонняя программа, удалите ту что там и поставьте PDFCreator (если будете использовать макрос, то ту версию, которая рядом лежит, т.к. последние версии не подходят под старый макрос).   Дык это же разные программы и не факт что у последней есть API для встройки в макрос, а у PDFCreator API есть.   Если есть готовое, то зачем мучиться? Ну тогда можете просто в ручную печатать через этот встроенный виртуальный принтер.
    • Артур8991
      А можите скинуть пожалуйста какая у вас есть?)
    • lem_on
      Как хорошо когда вокруг все дураки, а Шура один умный ))) ещё предложи тюремный вариант провоза, для личного пользования. 
    • gudstartup
      вы лично таким маршрутом пользовались? а еще можно через Гималаи на лыжах махнуть или дипломатической почтой  реально подождать и ничего с вашим станком не случится к тому же нормальное производство имеет мощности для резервирования. 45 дней подождать или под лавину в Гималаях!! он что время до взрыва бомбы отсчитывал!? а можно на подводной лодке еще, вы серьезно что ли. досматривают в любом случае хоть туда хоть оттуда а может надо нанять гипнотизера и он стоя рядом внушит таможеннику что вы утюг вместо привода везете тогда путь свободен!
    • Killerchik
      Так речь о экспорте или импорте? Вы написали изначально "не пустят обратно" и я решил, что Вы говорите о таможне РФ. Как правило, при личном везде таможенники в разы сговорчивее. Если Вы говорите о том, что не выпустит таможня Китая - ну так можно лететь через третьи страны, не? Ещё разок - речь о ситуациях, когда нужно срочно. Правда нужно - то есть отдать пусть даже несколько лимонов рублей - не проблема. И слетать через 3-4 страны не проблема. пиэс- в 2017 году у меня на станке сдох ЧПУ контроллер компании Delta Tau. Рассматривали варианты экстренного привоза из США, на счету был каждый час. Плату по итогу помогли восстановить крутые парни из РФ. Но варианты экстренного привоза всего, что можно легально вывезти из США в багаже тогда были прямо на Авито: чел с визой летит туда ближайшим рейсом и привозит нашу гравицапу.
    • gudstartup
      тогда платите в 10 раз дороже ....
    • gudstartup
      это вы с таможенником спорить будите, вся продукция фанук запрещена к экспорту в россию. пользуйтесь услугами резидентов поднебесной и нечего с рюкзаками по заграницам ездить.
    • AlexArt
      @Jesse, а ну отлично! Не знал, что ваши познания стали настолько высокими, что вам мало готовых методик и вы решили разработать новую. Удачи защитить её и опубликовать. С удовольствием почитаю.
    • Александр1979
      Иногда требуется. 
    • gudstartup
      с момента отлучения все что делает сименс для них  недоступно и они обычные люди правда с большим инструментарием но он к сожалению устаревает. сомневаюсь также что они готовы просто так поделиться теперь это бизнес и он стал очень дорогим. а оно вам надо?
×
×
  • Создать...