凯得吧[CAD8.Net]

 找回密码
 注册会员

QQ登录

只需一步,快速开始

尊敬的会员:如您的密码仅为数字等简单密码,为帐号安全,请务必修改! 新会员请验证邮箱!升级后可发主题贴!
分享内容请勿对会员进行二次引导,附件有密码请务必在贴内说明,或使用本站默认密码:www.cad8.net
本站所有资料为会员上传仅供大家学习之用,商用请务必购买正版版权!有侵权之处,请联系管理员(QQ:119891935)删除!
查看: 57|回复: 0
收起左侧

CAD文档坐标到视区坐标的转换

[复制链接]
发表于 2019-8-7 15:47:23 | 显示全部楼层 |阅读模式 简体中文繁體中文
用QQ等截图工具截图后,点中发贴区直接按Ctrl+V键就可以将截图粘贴到发贴框.

欢迎加入,注册成为会员,享用更多功能,完全免费。

您需要 登录 才可以下载或查看,没有帐号?注册会员

x
_DMxDrawX::DocToViewCoord 方法
文档坐标到视区坐标的转换。
例如:Delphi调用例程 ,保存放当前图为jpg文件,大小为当前视区看到的大小:
  1. procedure TForm1.Button1Click(Sender: TObject);

  2. var
  3.   pRet: MxDrawResbuf;
  4.   h, w: double;
  5.   ptMin        : IMxDrawPoint;
  6.   ptMax       : IMxDrawPoint;
  7.   ptOle        : OleVariant;
  8.   begin
  9.   if dlgSave1.Execute then
  10.   begin
  11.     pRet := MxDrawResbuf(MxDrawX1.Call('Mx_GetMcDbDatabaseBound', ''));

  12.     if pRet.AtString(0) = 'Ok' then
  13.     begin
  14.       ptMin :=  CoMxDrawPoint.Create();
  15.       ptMin.Set_x(pRet.AtDouble(1));
  16.       ptMin.Set_y(pRet.AtDouble(2));
  17.       ptOle := MxDrawX1.DocToViewCoord(ptMin);
  18.       ptMin:=IMxDrawPoint(IDisPatch(ptOle));

  19.       ptMax :=  CoMxDrawPoint.Create();
  20.       ptMax.Set_x(pRet.AtDouble(3));
  21.       ptMax.Set_y(pRet.AtDouble(4));
  22.       ptOle := MxDrawX1.DocToViewCoord(ptMax);
  23.       ptMax:=IMxDrawPoint(IDisPatch(ptOle));


  24.       MxDrawX1.ViewColor := clWhite;
  25.       w := ptMax.Get_x();
  26.       w := w - ptMin.Get_x() + 1;
  27.       h := ptMax.Get_y();
  28.       h := ptMin.Get_y() - h  + 1;

  29.       if not MxDrawX1.SaveJpgFile(dlgSave1.FileName, Round(w), Round(h),0) then
  30.         Showmessage('失败')
  31.       else
  32.         Showmessage('成功');
  33.     end;
  34.   end;
  35.   end;
复制代码




您需要登录后才可以回帖 登录 | 注册会员

本版积分规则

本站所有资料仅供大家学习之用,商用请务必购买正版版权!有侵权之处,请联系管理员(QQ:119891935)删除!
快速回复 返回顶部 返回列表