明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 2273|回复: 2

[求助]arx中怎样获得图纸空间中可打印区域的坐标

[复制链接]
发表于 2007-10-28 08:35:00 | 显示全部楼层 |阅读模式
朋友们,arx程序中怎样获得图纸空间中可打印区域(即虚线矩形)的四个点的坐标
发表于 2024-11-2 04:06:05 来自手机 | 显示全部楼层
没人解答吗?
发表于 2024-11-6 02:31:38 | 显示全部楼层

这是我写的方法,你可以试试

  1. bool GetDashedBox( AcDbLayout* pLayout,AcGePoint2d &MinPt,AcGePoint2d &MaxPt )
  2. {
  3.     if (pLayout==nullptr)
  4.     {
  5.      return false;
  6.     }
  7.     ads_name EntName;
  8.     Acad::ErrorStatus es=acdbGetAdsName (EntName,pLayout->objectId());
  9.     if (es!=Acad::eOk)
  10.     {   
  11.      return false;
  12.     }
  13.     struct resbuf *rbENT_root,*rbtmp;
  14.     rbENT_root=acdbEntGet(EntName);//获取对象链表
  15.     if (rbENT_root==nullptr)
  16.     {  
  17.      return false;
  18.     }   
  19.     rbtmp=rbENT_root;
  20.     while (rbtmp!=nullptr)
  21.     {
  22.       if (rbtmp->restype==148)
  23.       {
  24.        MinPt.x=-rbtmp->resval.rreal;
  25.       }
  26.       if (rbtmp->restype==149)
  27.       {
  28.        MinPt.y=-rbtmp->resval.rreal;
  29.       }
  30.      rbtmp=rbtmp->rbnext;
  31.     }
  32.     acutRelRb(rbENT_root);
  33.     double  Width=0,Heigth=0;//虚线框框的大小
  34.     pLayout->getPlotPaperSize(Width,Heigth);   //纸张定义的大小,包含不可打印区域
  35.     //去除不可打印区域。
  36.     double printableXmin,printableYmin,printableXmax,printableYmax;
  37.     pLayout->getPlotPaperMargins(printableXmin,printableYmin,printableXmax,printableYmax);
  38.     Width =Width-printableXmin-printableXmax;
  39.     Heigth=Heigth-printableYmin-printableYmax;
  40.     //现在才是那个虚线框框的大小

  41.     AcDbPlotSettings::PlotRotation RoAngtype=pLayout->plotRotation();//这个是相对与纸张定义来说的,纸张定义的如果是长乘以短,那么0度就是和定义的一样,90度就是逆时针旋转90  
  42.     if (RoAngtype==AcDbPlotSettings::k90degrees||RoAngtype==AcDbPlotSettings::k270degrees)
  43.     {
  44.      double  temp=Width;
  45.      Width=Heigth;
  46.      Heigth=temp;
  47.     }
  48.     MaxPt.x=MinPt.x+Width;
  49.     MaxPt.y=MinPt.y+Heigth;
  50.     return true;
  51. }

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

本版积分规则

小黑屋|手机版|CAD论坛|CAD教程|CAD下载|联系我们|关于明经|明经通道 ( 粤ICP备05003914号 )  
©2000-2023 明经通道 版权所有 本站代码,在未取得本站及作者授权的情况下,不得用于商业用途

GMT+8, 2024-12-27 11:44 , Processed in 0.187312 second(s), 23 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表