Пример #1
0
 static int
funobj(int *MODE, int *N, double *X, double *F, double *G, int *NSTATE,
	char *cu, int *lencu, int *iu, int *leniu, double *ru, int *lenru,
	ftnlen cu_len)
{
	Optimizer1 *D;
	Snopt_Details *T;
	int asv_req;

	T = snopt_details;
	D = T->D;

	if (eval_check(&asv_req, MODE, X)) {
		*MODE = -2;
		return 0;
		}
	if (asv_req & 1)
		GetFuncs(D, 0, 1, F);
	if (asv_req & 2)
		GetGrads(D, 0, 1, T->n, T->n, 1, G);
	return 0;
	}
Пример #2
0
static void WriteDrillDataToReport(const AcDbObjectId& objId)
{
	CString GEType = _T("DrillGE");
	AcStringArray funcs;
	AcDbObjectIdArray objIds;
	if(!GetFuncs(GEType,funcs,objIds))
	{
		//AfxMessageBox(_T("系统中未发现钻孔!"));
		MyWord->WriteText(_T("系统中未发现钻孔!!"),wdAlignParagraphJustify);
		MyWord->TypeParagraph();
		return;
	}
	funcs.remove(_T("高位钻孔参数计算"));
	funcs.remove(_T("孔口负压参数"));
	if (objId.isNull())
	{
		ReportAllDrill(objIds,GEType,funcs);
	}
	else
	{
		ReportOneDrill(objId,GEType,funcs);
	}
}
Пример #3
0
 static int
funcon(int *MODE, int *M1, int *N, int *NJAC, double *X, double *F, double *G,
	int *NSTATE, char *CU, int *LENCU, int *IU, int *LENIU, double *RU,
	int *LENRU, ftnlen len_cu)
{
	Optimizer1 *D;
	Snopt_Details *T;
	int asv_req, co, nnlc;

	T = snopt_details;
	D = T->D;
	nnlc = T->nnlc;

	if (eval_check(&asv_req, MODE, X)) {
		*MODE = -2;
		return 0;
		}
	co = T->co;
	if (asv_req & 1)
		GetFuncs(D, co, co + nnlc, F);
	if (asv_req & 2)
		GetGrads(D, co, co + nnlc, T->n, 1, T->m, G);
	return 0;
	}