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

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


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

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




  • Сообщения

    • Fedor
    • Fedor
      Различие и повторение важнейшие концепты постмодернизма.   https://ru.wikipedia.org/wiki/Различие_и_повторение  :) Несерьезно же в механике континуума отвергать сам континуум как пытаются в некоторых новомодных теориях прочности.  При реальном проектировании конструктор все равно будет  опираться на допускаемые напряжения или предельные состояния устраняя их превышения  :) 
    • Snake 60
      А в чём кривоватость? Мне кажется всё зависит от настроек шаблона чертежей. Пример чертежа сохраненного стандартными средствами через макрос: https://cloud.mail.ru/public/g8Gv/oYXYVh8U5
    • Борман
    • Fedo81
      Здравствуйте, подскажите может кто сталкивался, установил Солид кам 2022, в переходах фрезерование пропала операция 3д модель! Так же с версией 2023
    • Bot
      От редакции isicad.ru: 29 мая в Москве прошло очередное ежегодное мероприятие компании «Топ Системы» — «Форум T‑FLEX PLM 2024». Это важное событие, несомненно, будет отражено в многочисленных публикациях, посвященных различным решениям и продуктам компании, а пока с общим содержанием и настроением форума можно познакомиться в кратком пресс-релизе «Новейшие разработки компании «Топ Системы» представлены на главном ежегодном событии года — Форуме T‑FLEX PLM 2024». В статье, предлагаемой вам сегодня, отражены новые результаты одного из самых заметных проектов компании «Топ Системы» — геометрического ядра RGK. Редакция портала isicad.ru с удовлетворением отмечает, что зарождение и развитие этого проекта регулярно и подробно освещалось и освещается в наших публикациях: одних только статей, заголовок которых содержит волнующее сокращение «RGK» (российское геометрическое ядро), насчитывается десяток. Особое внимание в статье Леонида Баранова привлекает замечание [...] View the full article
    • Kelny
      Очень давно как раз было хорошо, когда Solidworks печатал ещё через встроенный виртуальный принтер BlueBeam эдак в версиях Solidworks 2004-2006, но потом перешли на Adobe и стало кривовато, да так что до сих пор аукается.   В винде такая же сторонняя программа, удалите ту что там и поставьте PDFCreator (если будете использовать макрос, то ту версию, которая рядом лежит, т.к. последние версии не подходят под старый макрос).   Дык это же разные программы и не факт что у последней есть API для встройки в макрос, а у PDFCreator API есть.   Если есть готовое, то зачем мучиться? Ну тогда можете просто в ручную печатать через этот встроенный виртуальный принтер.
    • Артур8991
      А можите скинуть пожалуйста какая у вас есть?)
    • lem_on
      Как хорошо когда вокруг все дураки, а Шура один умный ))) ещё предложи тюремный вариант провоза, для личного пользования. 
    • gudstartup
      вы лично таким маршрутом пользовались? а еще можно через Гималаи на лыжах махнуть или дипломатической почтой  реально подождать и ничего с вашим станком не случится к тому же нормальное производство имеет мощности для резервирования. 45 дней подождать или под лавину в Гималаях!! он что время до взрыва бомбы отсчитывал!? а можно на подводной лодке еще, вы серьезно что ли. досматривают в любом случае хоть туда хоть оттуда а может надо нанять гипнотизера и он стоя рядом внушит таможеннику что вы утюг вместо привода везете тогда путь свободен!
×
×
  • Создать...