Sergey___1978

Изучаем Toolkit

199 сообщений в этой теме

ProVector pos и ProPoint3d pos это вроде же то же самое что

double pos[3]

Поделиться сообщением


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


Еще не понятно в каких единицах эти кординаты заданы.

Вроде увеличиваешь х на 10, смещается не на 10, а на 4.2.

делаешь х=20, координата 8.4 полуается. Как будто бы пропорции соблюдаются, но в каких это единицах и почему когда х=0 и у=0, в ноль не становится не понятно.

Поделиться сообщением


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

Еще не понятно в каких единицах эти кординаты заданы.

Не в процентах от размера листа?

Поделиться сообщением


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

Ну даже если и в процентах, то почему когда задаю (0,0,0), то в начало системы координат листа не становится символ.

Кажется я понял его систему. Если формат будет квадратным, то только в таком случае при (0,0,0) будет в начале системы координат.

Будем проверять. Если это так, то сам наверно никогда бы не догадался.

Поделиться сообщением


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

Почитайте в документации про системы координат модели, экрана, чертежа (кажется тоже есть). Там есть функции преобразования из одной системы в другую.

Поделиться сообщением


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

Почитал и ничего не понял, зачем надо так все усложнять. Как я понял это 13 глава справки.

Поделиться сообщением


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

Глава

Core: Coordinate Systems and Transformations

Я, честно говоря, сам плохо понимаю эту тему, каким-то чудесным образом, методом научного тыка добился нужного результата. Кажется я там инвертировал матрицу системы координат, вобщем пробуйте...

Поделиться сообщением


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

Именно с простановкой символов был результат или в чем то другом?

Что-то у меня чудесным образом не получается ничего сделать пока.

Будем ждать чудес.

Поделиться сообщением


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

Короче повозился я с этими матрицами и векторами и понял только одно. А оно мне надо вообще? Все равно для каждого формата координаты будут разными, так проще подогнать их один раз для каждого формата хотя бы с точностью до сотых и решен вопрос. Символ попадет в нужное мне на форматке место.

Поделиться сообщением


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

Не знаю на счет Toolkit,. НО что касается чертежей и форматов. То нулевая точка в них (форматах) вещь задаваемая. Так что очень сильно зависит где ее задать. У меня она например задана в нижнем левом углу формата...

Поделиться сообщением


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

Именно с простановкой символов был результат или в чем то другом?

Что-то у меня чудесным образом не получается ничего сделать пока.

Будем ждать чудес.

Вставлял таблицу.

Чудес не надо ждать, их надо натворить :smile:

ProDrawingSheetTrfGet(*p_drawing, 1, sheet_size, transform);

ProUtilMatrixInvert(transform, transform_invert);

status = UserConfigoptGet("TOOL_TABLE_POSITION", str_coords, options);

if (status == PRO_TK_E_NOT_FOUND)

return (-1);

sscanf(str_coords, "%lf %lf", &drw_point[0], &drw_point[1]);

ProPntTrfEval(drw_point, transform_invert, scn_point);

status = ProDwgtableRetrieve(*p_drawing, w_table_name, exec_path_dir, 0, scn_point, NULL, NULL, p_tool_table);

Поделиться сообщением


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

Чудеса, да и только, все заработало, спасибейше огромное VIKTOR.

Вся загвоздка и правда только в этой строке заключалась:

ProUtilMatrixInvert(transform, transform_invert);

Когда нашел пример для установки таблицы на чертеж по координатам сразу стало все понятно как трансформировать координаты.

Поделиться сообщением


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

Всегда пожалуста :smile:

Поделиться сообщением


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

Еще вопрос по примеру с таблицей.

Пытаюсь скомпилировать пример из тулкита. Компилятор ругается на эти строки:

/*--------------------------------------------------------------------*\

Get the root solid, and the transform from the root to the

component owning the csys

\*--------------------------------------------------------------------*/

if (csys_comppath.table_num>0)

{

solid = csys_comppath.owner;

ProAsmcomppathTrfGet(&csys_comppath, PRO_B_FALSE, trf);

}

else

{

solid = csys_geom.owner;

ProUtilMatrixCopy(NULL, trf);

}

а конкретно на: solid = csys_geom.owner;

Пишет:

.\ex1.cpp(1028) : error C2440: '=' : cannot convert from 'ProMdl' to 'ProSolid'

Conversion from 'void*' to pointer to non-'void' requires an explicit cast

Это же пример, неужели там ошибка?

Поделиться сообщением


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

Попробуй неявное перевод

solid = (ProSolid)csys_geom.owner

Например

error = ProModelitemInit((ProMdl)drawing,,,,,,,

еще

error = ProDwgtableRetrieve((ProDrawing)drawing,

w_name, w_path, ver, point,(ProSolid) mdl, NULL, &table);

точно не помню но в чертежах подобное преобразование применял из солида в чертеж.

Поделиться сообщением


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

После привидения типов все заработало.

Поделиться сообщением


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

Не могу понять почему?

Применяю вот такую команду для удаления листа чертежа:

ProDrawingSheetDelete(drawing1,del_sheet);

Все нормально удаляется, но если на данном листе что-то выделено, прое вылетает в аут.

Что это может быть?

Полный код функции такой:

int Format_Del_Sheet()

{

ProDrawing drawing1;

int del_sheet=0;

ProMdlCurrentGet((ProMdl*)&drawing1);

ProDrawingCurrentSheetGet(drawing1,&del_sheet);

ProDrawingSheetDelete(drawing1,del_sheet);

return(0);

}

Поделиться сообщением


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

Еще один вопрос над которым бьюсь уже не один день.

Имеем сборку из нескольких деталей.

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

Может кто сталкивался?

Поделиться сообщением


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

Del.

Изменено пользователем ainis

Поделиться сообщением


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

Еще один вопрос над которым бьюсь уже не один день.

Имеем сборку из нескольких деталей.

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

Может кто сталкивался?

Надо для сборки использовать

ProSolidFeatVisit

Фильтр

extern "C" ProError CompFilter (ProFeature *feature, ProAppData app_data)

{

ProError status;

ProFeattype ftype;

/*----------------------------------------------------------------*\

Get the feature type

\*----------------------------------------------------------------*/

status = ProFeatureTypeGet (feature, &ftype);

/*----------------------------------------------------------------*\

If the feature is an assembly component,

return NO ERROR,

else

return CONTINUE

\*----------------------------------------------------------------*/

if (ftype == PRO_FEAT_COMPONENT)

return (PRO_TK_NO_ERROR);

return (PRO_TK_CONTINUE);

}

Ну а когда пробегаем по списку элементов проверяем и зачитываем или создаем

ProModelitemInit(p_asm_par, feature->id, PRO_FEATURE, &p_modelitem);

ProAsmcompMdlGet (feature , &mdl);

ProMdlDataGet (mdl, &mdldata);

wcscpy(full_name, mdldata.name);

wcscat(full_name, L".");

wcscat(full_name, mdldata.type);

if (wcscmp(full_name, name_component)==0)

{

value.type = PRO_PARAM_STRING;

wcscpy(value.value.s_val, val_poz);//передаем номер позиции

param.type = PRO_PARAMETER;

param.owner.who.model = &p_asm_par;

status = ProParameterInit (&p_modelitem, name_param, &param);

if (status == PRO_TK_E_NOT_FOUND)

{

status = ProParameterCreate (&p_modelitem, wname_par, &value, &param);

}

else

{

status = ProParameterValueSet (&param, &value);

}

///////////////////////////////////////

}

Если для конткретного компонента то тут нужен будет CID - идентификатор компонента.

Если CID известен то вот

extern "C" DllExport void AllComponentVisit(char* name_comp, char* poz, char* name_par, char* component_CID)

{

ProError err;

ProMdl model;

ProName w_name_comp;

ProName w_name_par;

ProName w_value_par;

ProModelitem component;

ProParameter param;

ProParamvalue p_value;

int comp_id;

ProMode mode;

ProDrawing drawing;

ProMdlType mdl_type;

comp_id = atoi(component_CID);

ProStringToWstring(w_name_comp, name_comp);

ProStringToWstring(w_name_par, name_par);

ProStringToWstring(w_value_par, poz);

err = ProModeCurrentGet(&mode);

if (mode == PRO_MODE_DRAWING)

{

err = ProMdlCurrentGet((ProMdl*)&drawing);

err = ProDrawingCurrentsolidGet(drawing, (ProSolid*)&model);

ProSolid *solids = NULL;

int num;

err = ProDrawingSolidsCollect (drawing, &solids);

if (err == PRO_TK_NO_ERROR)

{

err = ProArraySizeGet ((ProArray)solids, &num);

asem = solids[0];

err = ProMdlTypeGet (asem, &mdl_type);

if (err != PRO_TK_NO_ERROR || (mdl_type != PRO_MDL_ASSEMBLY))

{

MessageBox(NULL, L"Активная модель чертежа не является сборкой! Невозможно запустить приложение!", L"Предупреждение", MB_OK);

err = ProArrayFree ((ProArray*)&solids);

exit(0);

}

}

}

else

{

err = ProMdlCurrentGet(&model);

}

err = ProFeatureReadonlyUnset((ProSolid)model);

err = ProModelitemInit(model, comp_id, PRO_FEATURE, &component);

err = ProParamvalueSet(&p_value,&w_value_par,PRO_PARAM_STRING);

err = ProParameterInit(&component,w_name_par,&param);

if(err == PRO_TK_E_NOT_FOUND)

{

err=ProParameterCreate(&component,w_name_par,&p_value,&param);

}

if(err == PRO_TK_NO_ERROR)

{

err = ProParameterValueSet(&param, &p_value);

}

err = ProParameterDesignationAdd(&param);

}

Ну код старый если что лишнее - то звиняйте.

Поделиться сообщением


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

Спасибо, покопаюсь на досуге в коде.

Поделиться сообщением


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

ну если все упростить то вот тот кусок кода

err = ProMdlCurrentGet(&model);

err = ProModelitemInit(model, comp_id, PRO_FEATURE, &component);

err = ProParamvalueSet(&p_value,&w_value_par,PRO_PARAM_STRING);

err = ProParameterInit(&component,w_name_par,&param);

где comp_id - идентификатор компонента

И еще важный кусок кода по определению параметра

ProModelitemInit(p_asm_par, feature->id, PRO_FEATURE, &p_modelitem);

ProAsmcompMdlGet (feature , &mdl);

ProMdlDataGet (mdl, &mdldata);

....

param.type = PRO_PARAMETER;

param.owner.who.model = &p_asm_par;

status = ProParameterInit (&p_modelitem, name_param, &param);

Поделиться сообщением


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

Спасибо большое. Все получилось как я хотел.

Главное было найти ProModelitem component; всех компонентов в дереве, отфильтровать все ненужные типа осей, плоскостей и т.п.

А потом весь процес как с обычными параметрами деталей.

функция ProSolidFeatVisit вообще тема для работы с деревом, любую информацию с помощью нее можно вытащить для каждого компонента сборки или фичера.

Как то так получилось для считывания двух параметров (PRIMECHANIE_1 и PRIMECHANIE_2) всех компонентов в дереве, может кому-то будет интересно:

//Действие функции, вызываемое при посещении фичеров

ProError UsrFeatAction(ProFeature *feature,ProError filter_status,ProAppData data)

{

int n_feats, max;

ProBoolean visible;

ProFeatStatus status;

//Если функция внутренняя, пропускаем ее

ProFeatureVisibilityGet(feature, &visible);

if(!visible) return(PRO_TK_NO_ERROR);

//Если фичер не активен в данный момент, пропускаем его (допустим если он подавлен)

ProFeatureStatusGet(feature, &status);

if(status != PRO_FEAT_ACTIVE) return(PRO_TK_NO_ERROR);

//Проверяем является фичер деталью, сборкой или инфообъектом (ftype=1000)

ProFeattype ftype;

ProFeatureTypeGet(feature, &ftype);

if (ftype!=1000) return(PRO_TK_NO_ERROR);

//Проверяем, есть ли еще место для массива

ProArraySizeGet(*(ProArray*)data, &n_feats);

ProArrayMaxCountGet(sizeof(ProFeature), &max);

if(n_feats == max) return(PRO_TK_OUT_OF_MEMORY);

//Добавляем фичер в массив фичеров

ProArrayObjectAdd((ProArray*)data, -1, 1, feature);

return(PRO_TK_NO_ERROR);

}

//Функция для сканирования дерева и формирования массива фичеров

int UsrFeaturesCollect(ProSolid solid,ProFeature **features)

{

//Выделяем память

ProArrayAlloc(0, sizeof(ProFeature), 1, (ProArray*)features);

//Все фичеры и компоненты в дереве

if (ProSolidFeatVisit(solid,UsrFeatAction,NULL,features)!=PRO_TK_NO_ERROR)

{

ProArrayFree((ProArray*)features);

return(0);

}

return(1);

}

//Сканирование дерева сборки

int UserAddParamsNew()

{

ProMdl model;

ProFeature *features;

int f, n_features, num;

ProFeattype ftype;

ProName name;

FILE *fp;

ProError status;

ProModelitem component;

ProParameter param1;

ProParamvalue param_value1;

wchar_t wstr1[255];

char str1[255];

char str2[255];

//Получение текущей модели

ProMdlCurrentGet(&model);

//Используем функцию, чтобы получить расширяемый массив фичеров и компонентов

if (!UsrFeaturesCollect((ProSolid)model,&features)) return(0);

fp = fopen("featlist.txt","w");

//Получаем общее количество компонентов в дереве, включая все (оси, плоскости и др.)

ProArraySizeGet(features,&n_features);

//Записываем все фичеры и их id, тип в файл на диске

for(f=0;f<n_features;f++)

{

ProFeatureTypeGet(&features[f], &ftype);

status=ProModelitemInit(model,features[f].id,PRO_FEATURE,&component);

status=ProParameterInit(&component,L"PRIMECHANIE_1",&param1);

if (status==PRO_TK_NO_ERROR)

{

ProParameterValueGet(&param1,&param_value1);

wcscpy(wstr1,param_value1.value.s_val);

ProWstringToString(str1,wstr1);

} else strcpy(str1,"");

status=ProParameterInit(&component,L"PRIMECHANIE_2",&param1);

if (status==PRO_TK_NO_ERROR)

{

ProParameterValueGet(&param1,&param_value1);

wcscpy(wstr1,param_value1.value.s_val);

ProWstringToString(str2,wstr1);

} else strcpy(str2,"");

fprintf(fp, "Feature number %2d, id %2d, type %d, |PRIMECHANIE_1=%s|PRIMECHANIE_2=%s\n",f+1,features[f].id, ftype,str1,str2);

}

fclose(fp);

ProStringToWstring(name, "featlist.txt");

ProInfoWindowDisplay(name, NULL, NULL);

return(1);

}

Поделиться сообщением


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

Вопрос по свойствам материалов.

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

Все они строкового типа. Можно конечно их вытащить из текстового файла, но может есть другой способ, используя функции самого тулкита.

Пока сделал только вот это:

wchar_t material_name[255]; //какое-то имя материала

ProSolid solid1;

status=ProSolidInit(model.name,p_modelitem.type,&solid1);

ProMaterial material;

ProMaterialItem material_item;

status=ProMaterialfileRead(solid1,wcsupr(material_name));

status=ProModelitemByNameInit((ProPart)solid1,PRO_RP_MATERIAL,material_name,&material_item);

material.part=solid1;

wcscpy(material.matl_name,material_name);

//назначаем его

status = ProMaterialCurrentSet(&material);

Дальше, что-то примеров не нашел.

Может подскажет кто.

Допустим значение вот этого параметра надо прочитать в строковую переменную:

{

Name = GOST_SORTAM

Type = String

Default = '3-h12 ГОСТ 7417-75'

Access = Full

}

Поделиться сообщением


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

Обрати внимание на эту функцию

ProMaterialPropertyGet

Поделиться сообщением


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

Что-то я пытался с помощью этой функции сделать, но до конца не понял что к чему.

Так и пришлось пока сделать свою функцию чтения параметров из текстового файла материала.

Вроде не плохо получилось, просто и понятно.

//чтение из файла материала строковых параметров

wchar_t *ReadMaterialParam(wchar_t *material_name,wchar_t *parameter_name,wchar_t *parameter_value)

{

char str1[255];

wchar_t wstr1[255];

FILE *material_file;

material_file=fopen(ProWstringToString(str1,material_name),"rt");

if (material_file==NULL)

{

return(L"");

} else

{

do

{

fgets(str1,255,material_file);

ProStringToWstring(wstr1,str1);

}

while (wcsstr(wstr1,parameter_name)==NULL);

do

{

fgets(str1,255,material_file);

ProStringToWstring(wstr1,str1);

}

while (wcsstr(wstr1,L"Default = '")==NULL);

wcscpy(wstr1,wcsstr(wstr1,L"'")+1);

wstr1[wcslen(wstr1)-2]='\0';

}

fclose(material_file);

wcscpy(parameter_value,wstr1);

return(parameter_value);

}

Поделиться сообщением


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

Пытаюсь написать свое приложение для печати в ПДФ файл.

При выполнении команды:

ProPrintExecute(window_id,&printer_options,&mdl_options,&place_options);

вылезает окошко выбора и настроек принтера.

Как бы сделать так чтобы оно не появлялось, а страница автоматом посылалась на ПДФ-принтер, который установлен по умолчанию.

Поделиться сообщением


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

Тулкит не знаю, но в Creo есть экспорт в PDF, возможно из API есть доступ напрямую к этой функции.

Еще, как вариант, посмотрите виртуальный принтер PDFCreator. Замечательная штука. Имеет свой API. Через него можно печатать в PDF задавая все настройки через API в вашей программе. В этом случае никаких окон появлятся не будет.

PS: в J-Link есть методы для экспорта в PDF. А J-Link это только 50% функционала Toolkit

Поделиться сообщением


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

Пытаюсь написать свое приложение для печати в ПДФ файл.

А чем не нравится стандартная функция печати в pdf?

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

Поделиться сообщением


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

Что-то стандартный принтер на WF3 глючный како-то.

Все размеры как-то некоректно переносятся.

Это как-то лечится?

В принципе я уже написал свою прогу, окошко только убрать осталось.

Поделиться сообщением


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

Sergey___1978

Не надо его использовать вообще.

Есть стандартная функция - Печать в pdf.

Поделиться сообщением


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

Что-то нет у меня такой стандартной функции.

Это у вас тоже какое -то внешнее приложение наверно на тулките?

Знаю только как сохранять через сохранить как PDF.

Поделиться сообщением


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

Знаю только как сохранять через сохранить как PDF.

Не нравится название команды? Или что не нравится?

В результате получается нормальный pdf с теми настройками, которые выбираете. Макрос нужен чтобы не назначать каждый раз необходимые настройки.

Всё прекрасно работает ещё со времен WildFire.

Поделиться сообщением


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

Знаю только как сохранять через сохранить как PDF.

Да, это то Стандартное средство для эскпорта в PDF.

Многое лечится если в настройках при экспорте в PDF установить Шрифты - Штриховать все шрифты.

ps: а лучше покажите PDF, который получается и что не устраивает.

Поделиться сообщением


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

вот так получается, даже когда штриховать.

post-26163-1362128489_thumb.jpg

Поделиться сообщением


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

вот так получается, даже когда штриховать.

Простите, но я не вижу в чем проблема с размерами?

Поделиться сообщением


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

Какие-то суженные они и допуск чуть вдали стал.

Вот такие проблемы.

Поделиться сообщением


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

Понятно. Видимо надо биться с настройками печати. Вот хорошая информация на эту тему

<noindex>http://fsapr2000.ru/index.php?showtopic=27...l=pdf*&st=0</noindex>

Либо использовать PDF Creator через API и функцию Быстрая печать в Creo.

Поделиться сообщением


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

Уже не актуально, сделал на базе Bullzip PDF Printer с помощью тулкита. Отлично получилось, ничего не искажается, печатает в один документ листы разных форматов.

Поделиться сообщением


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

А слои ваш принтер поддерживает? Можно чертёж по слоям раскидать? (P.S.в PDF есть слои)

Поделиться сообщением


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

Создайте аккаунт или войдите для комментирования

Вы должны быть пользователем, чтобы оставить комментарий

Создать аккаунт

Зарегистрируйтесь для получения аккаунта. Это просто!


Зарегистрировать аккаунт

Войти

Уже зарегистрированы? Войдите здесь.


Войти сейчас

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

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



  • Реклама

  • Сообщения

    • Александр Кушелев
      Кушелев: А Вы в курсе, что фрикопедия - ресурс западных спецслужб, с помощью которого они ведут информационную войну против России? Эту страницу написали те самые интернет-преступники, которые многократно уничтожали форум лаборатории Наномир, взламывали почту Ярослава Старухина, Анатолия Шестопалова, Виктории Соколик и угрожали мне физической расправой, названивая по ночам по телефону. Учитесь отличать черное от белого и Россию от ее забугорных "добра желателей" :) Вы сначала выводы делаете, а потом начинаете разбираться? ;) Начните с конкретных аргументов и фактов, а выводы сделаете по итогам дискуссии. *** Тем, кто тащит на форум вместо аргументов всё подряд: Скопировать на форум дезу из фрикопедии или другого диверсионного интернет-ресурса - дело нехитрое. А попробуйте своим умом поработать :)
    • Александр Кушелев
      Кушелев: Вы бы ещё отдельных букв надергали из научной статьи и составили из них нецензурное слово. После этого смело приклеивайте ярлык матершинника ;) Жаль, что Вы не прислушались к тому, что в науке ценятся аргументы и факты, а не мнения, эмоции и заявления. К сожалению в Ваших сообщениях АиФ не обнаружено... Кушелев: Есть. Проверьте отклонение от параллельности соседних рядов блоков пирамид.     Вы в курсе, что "проход" в пирамиде отклоняется от идеальной прямой на 5 мм при длине в десятки метров? Есть и более протяженные мегалитические сооружения. Например, "овечьи заборы" острова Пасхи: http://nanoworld88.narod.ru/data/115.htm     Кушелев: Вы процитировали Анатолия Шестопалова, а вывод сделали про Александра Кушелева. Самому-то не смешно? :)
    • Александр Кушелев
      А Вы уверены, что Вам понятно. Может быть "понятно", но привычно? Специалисты по структурам белков обычно говорят: "Что это за точность Пикотехнологии, если начало/конец спирали не совпадает с данными рентгеноструктурного анализа (РСА) на 4-5 аминокислотных остатков? Погрешность РСА менее ангстрема, а 5 аминокислотных остатков - это в десятки раз больше. Я их спрашиваю: Если РСА ошибется на пол ангстрема, это может означать ошибку на один атом? Ведь граница между атомами не имеет ширины... -Да, но не более, чем на один! -Прекрасно. А этот один атом может принадлежать другому аминокислотному остатку. -Конечно. -Замечательно. А этот другой аминокислотный остаток может принадлежать другому витку спирали? -Может... Это Вы намекаете, что ошибка на любую величину может означать ошибку на один виток спирали? -Ну да. А теперь обратите внимание, что РСА не может часто отличить альфа-спираль от пи-спирали, где на один виток приходится примерно 4.4 аминокислотных остатка. И в этом случае ошибка на любую величину означает ошибку на 5 аминокислотных остатков. После этого специалисты по структурам белков понимают, что ошибка на 5 аминокислотных остатков - это не ошибка Пикотехнологии, а ошибка РСА...
      А до этого им было "понятно", что РСА не может ошибиться больше, чем на один атом, один аминокислотный остаток... Так что не торопитесь делать Выводы о понятности тех направлений, которыми Вы занимаетесь. Это может быть всего лишь иллюзия... :) А Вы подумайте, может ли существовать звук без воздуха или другой звуконосной среды? Так же и электромагнитные волны  не могут существовать без среды. Отказ от среды - это то же самое, что отказ от маятника с сохранением колебаний маятника.  Что касается опыта Майкельсона, то опыт Ю.Н. Иванова (Ритмодинамика, акустический аналог опыта Майкельсона) показал, что с помощью акустического аналога спектрального эталона длины не представляется возможным зафиксировать ... обычный ветер! По логике релятивистов необходимо отказаться от звуконосной среды! Ссылки используются с разной целью. У спамеров - одна цель, у меня - другая. С помощью перекрестных ссылок и дублирования я защищаю информацию, которую целенаправленно уничтожает группа интернет-преступников, создавших и поддерживающих ряд интернет-ресурсов по борьбе с научными группами, в частности, Российскими.   Так что если преступники могут что-то делать, например, ходить, стрелять и т.д., то это вовсе не означает, что все, кто могут ходить и стрелять - преступники. :)
    • Александр Кушелев
      У меня сайт большой и неоднородный. Если Вам хочется видеть информацию на уровне научной статьи, то нет проблем: http://www.nanoworld.org.ru/data/05/20021205/index.htm Приглашали меня один раз, но речь идет о том, что большинство явлений под названием "Полтергейст" как раз относится к тому же классу резонансных явлений. Инопланетный полтергейст - класс более редких случаев. Как алмаз среди обычных камней. "Под лежачий камень вода не течет" :)
    • Сережа
      Спасибо)
      На счет бесконечного крыла у меня есть несколько вопросов по поводу теории индуктивного сопротивления...даже и не знаю у кого их спрашивать.(( Кто-нибудь шарит в этом? 
      Вообщем сколько я не продувал 2Д профиль, я получал качество не больше 25. А по экспериментальным данным пересчитанным на бесконечное крыло получается около 60. Так вообще корректно сравнивать?
      Я не  верю в то, что если взять этот профиль, сделать крыло длиной 40 метров то мы получим качество больше 25. А по теории индуктивного сопротивления получим.....
    • Семен Владимирович
      Вечер добрый. Меня зовут Семен и я занимаюсь проектом по прогнозированию времени изготовления металлических изделий по 3d-моделям на станках с ЧПУ. Наша команда создала программу на основе машинного обучения, которая, зная, как были сделаны предыдущие детали, прогнозирует время изготовления новых.   На текущем этапе нам требуются данные для обучения программы (3d-модели, время их изготовления или управляющая программа, g-code) и её тестирование на реальном производстве.   Если у вас есть хотя бы один станок с ЧПУ, и вам интересен проект по применению искусственного интеллекта в машиностроении, напишите мне в личные сообщения, на телефон +7(985)133-09-50 или на почту karpov@absolute.msk.ru
    • Maik812
      Да пущай повышает. Ну чем то помочь человеку святое дело.. даже если он  в заблуждениях  свои по уши..
    • BSV1
    • vik_q
      прэлестно! Мои поздравления. а данные на бесконечное крыло пересчитывали, или там не сильно большая разница?
    • Maik812
      Пусть пишет.. каждый уникум по своему.. и если не понимаете его или он Вас , то что того!? Лишь-бы не было причинению физ повреждений, что в инете априори не возможно.