我在做delphi 7 對solidworks 進行二次開發時,在模架裝配階段遇到如下問題:
如下是我呼叫上下模座的程式,在程式運行時出現‘63*50*25' is not a valid floating point value的錯誤提示,63*50*25是我下模座資料庫中的一個規格,與此相同,我的上模座的規格也是類似這種格式, ‘63*50*20',但是上模座就沒有報錯,呼叫兩個零件的程式幾乎相同,但是不知道為什么后面一個會報錯。下面是呼叫的部分程式 ,請各位大神幫幫忙,為什么會出現這種錯誤?
謝謝大家了!!!
Table2.TableName:='shangmozuo.db';
Table2.Open;
Table2.First;
Comp:=Table2.Fields[0].AsString+'*'+Table2.Fields[1].AsString +'*'+
Table2.Fields[2].AsString;
if Comp <> Umod then
Repeat
Table2.Next;
Comp:=Table2.Fields[0].AsString+'*'+Table2.Fields[1].AsString +'*'+
Table2.Fields[2].AsString;
Until (Comp = Umod ) or Table2.Eof;
if Comp <> Umod then
showmessage('資料庫不匹配');
PrtDoc:=SwApp.INewPart;
PrtDoc.QueryInterFace(IID_IModelDoc2,moddoc);
Titlename:='上模座';
ModDoc.SetTitle2(TitleName) ;
ModDoc.ViewDisplayHiddengreyed;
SMZ:= Titlename +'-1';
FileName:=WorkingDir+TitleName+'.SLDPRT';
Draw_shangmozuo;
ModDoc.SaveAs4(FileName,0,1,errors,Warning);
Table2.Close;
Table2.TableName:='';
AsmDoc.IAddComponent2(FileName,0,0.2,0);
//下模座
Table2.TableName:='xiamozuo.db';
Table2.Open;
Table2.First;
Comp:=Table2.Fields[0].AsString+'*'+Table2.Fields[1].AsString +'*'+
Table2.Fields[2].AsString;
if Comp <> Lmod then
Repeat
Table2.Next;
Comp:=Table2.Fields[0].AsString+'*'+Table2.Fields[1].AsString +'*'+
Table2.Fields[2].AsString;
Until (Comp = Lmod) or Table2.Eof;
if Comp <> Lmod then
showmessage('資料庫不匹配');
PrtDoc:=SwApp.INewPart;
PrtDoc.QueryInterFace(IID_IModelDoc2,moddoc);
Titlename:='下模座';
ModDoc.SetTitle2(TitleName) ;
ModDoc.ViewDisplayHiddengreyed;
XMZ:= Titlename +'-1';
FileName:=WorkingDir+TitleName+'.SLDPRT';
Draw_xiamozuo;
ModDoc.SaveAs4(FileName,0,1,errors,Warning);
Table2.Close;
Table2.TableName:='';
AsmDoc.IAddComponent2(FileName,0,0,0);
uj5u.com熱心網友回復:
求大神回復啊!!!! 謝謝啦uj5u.com熱心網友回復:
有人么!!!~~~~~~~uj5u.com熱心網友回復:
是不是把字符63*50*25當作數學運算了,把*用別的符號代替試下uj5u.com熱心網友回復:
檢查一下你定義Comp,Umod,Lmod 的型別uj5u.com熱心網友回復:
除錯跟蹤進去,看一下錯在哪個地方,各個變更的值是多少uj5u.com熱心網友回復:
這種情況要下段點更進除錯uj5u.com熱心網友回復:
建議你一步一步地,通過F8, 步進除錯,找到出錯行,再判斷。轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/39529.html
標籤:VCL組件開發及應用
