CAD实现文档坐标到视区坐标的转换(com接口Delphi语言)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
|
procedure TForm1.Button1Click(Sender: TObject); var pRet: MxDrawResbuf; h, w: double; ptMin : IMxDrawPoint; ptMax : IMxDrawPoint; ptOle : OleVariant; begin if dlgSave1.Execute then begin pRet := MxDrawResbuf(MxDrawX1.Call( \'Mx_GetMcDbDatabaseBound\' , \'\' )); if pRet.AtString(0) = \'Ok\' then begin ptMin := CoMxDrawPoint.Create(); ptMin.Set_x(pRet.AtDouble(1)); ptMin.Set_y(pRet.AtDouble(2)); ptOle := MxDrawX1.DocToViewCoord(ptMin); ptMin:=IMxDrawPoint(IDisPatch(ptOle)); ptMax := CoMxDrawPoint.Create(); ptMax.Set_x(pRet.AtDouble(3)); ptMax.Set_y(pRet.AtDouble(4)); ptOle := MxDrawX1.DocToViewCoord(ptMax); ptMax:=IMxDrawPoint(IDisPatch(ptOle)); MxDrawX1.ViewColor := clWhite; w := ptMax.Get_x(); w := w - ptMin.Get_x() + 1; h := ptMax.Get_y(); h := ptMin.Get_y() - h + 1; if not MxDrawX1.SaveJpgFile(dlgSave1.FileName, Round(w), Round(h),0) then Showmessage( \'失败\' ) else Showmessage( \'成功\' ); end; end; end; |
请发表评论