cluser.c

来自「proe5.0野火版下载(中文版免费下载)」· C语言 代码 · 共 122 行

C
122
字号
#include <stdlib.h>#include <math.h>#include "CustomDLL.h"#include "ProToolkitDll.h"#include "ProArray.h"#include "ProUtil.h"/******************************************************************************    Title:      CLuser.c    Notice:     (c) Copyright 2001-2006 Parametric Technology Corporation    Purpose:    An example of user-supplied file for MDX custom loads support.    History:Date      Build   Who    Vers  Comment========= ======= =====  ====  ================================================05-Apr-06 L-01-06  rnaik    $$1  Replaced malloc/free by wrapper functions10-Dec-06 L-01-24  zar      $$2  Rolled back previous. Added MyCos custom load.******************************************************************************/#define STATE_VEC_SIZE 3int CLUSEREvalCustomLoad(   char*   CustomLoadName, 			    char*   ForceName,			    double  CurrentTime, 			    double* value){    double *StateVar, measval;    int status;    if (!strcmp(ForceName, "CLForce")) {	*value = 10000000.0;	return 0;    }    if (!strcmp(CustomLoadName, "MyCos"))    {        *value = cos (CurrentTime * 2.0);        return 0;    }/*// Our custom load is not specific to any particular force it was used with, // so we ignore ForceName    */    if (CLevalMeasure("test123", &measval))	return 1;    *value = 0.3 * measval;    StateVar = (double*)malloc(STATE_VEC_SIZE*sizeof(double));    status = CLevalStateVariables(CustomLoadName, ForceName, STATE_VEC_SIZE, StateVar);    free(StateVar);    if (status)	return 1;        return 0;}/*    CLUSERGetStateVariablesSize should return a size of 0 or a non zero status    if State Variables are not going to be used.*/int CLUSERGetStateVariablesSize(char* CustomLoadName,char* forceName, int* size){    if (strcmp(CustomLoadName, "CustomLoad1"))	return 1;    *size = STATE_VEC_SIZE;    return 0;}int CLUSERInitStateVariables(char* CustomLoadName, char* forceName, double* StateVar){    int i;    if (strcmp(CustomLoadName, "CustomLoad1"))	return 1;    for(i=0; i<STATE_VEC_SIZE;i++)	StateVar[i] = 0.0;    return 0;}int CLUSERGetStateVariableDerivatives(	char* CustomLoadName, 			char* forceName,			double CurrentTime, 			double* StateVar){    int i;    if (strcmp(CustomLoadName, "CustomLoad1"))	return 1;    for(i=0; i<STATE_VEC_SIZE;i++)	StateVar[i] = 0.0;    return 0;}extern int CLUSERDefineInit(char* CustomLoadName, char* ForceName){    if (!strcmp(ForceName, "BadLoad"))	return 1;    else	return 0;}extern int CLUSERRunInit(char* CustomLoadName, char* ForceName){    if (!strcmp(ForceName, "BadRun"))	return 1;    else	return 0;}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?