找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
热搜: 活动 交友 discuz
查看: 134|回复: 0

[每日一码] 模拟ZOOM命令的ARX代码

[复制链接]

1

主题

0

回帖

33

积分

管理员

积分
33
发表于 2024-3-14 20:43:43 | 显示全部楼层 |阅读模式
  1. ////////////////////////////////////////////////////////////////////////////
  2. //
  3. // This is command 'ZOOMEXT, by Fenton Webb [Apr/17/2002], DevTech, Autodesk
  4. void asdkzoomExt()
  5. {
  6.         // get the extents of the drawing
  7.         AcDbViewTableRecord view;
  8.         AcGePoint3d max =
  9.                 acdbHostApplicationServices()->workingDatabase()->extmax(),
  10.                 min = acdbHostApplicationServices()->workingDatabase()->extmin();
  11.         AcGePoint2d max采用2d (max, max);
  12.         AcGePoint2d min采用2d (min, min);
  13.         // now set the view centre point
  14.         view.setCenterPoint (min采用2d + (max采用2d - min采用2d) / 2.0);
  15.         // now height and width of view
  16.         view.setHeight(max采用2d - min采用2d);
  17.         view.setWidth (max采用2d - min采用2d);
  18.         // set the view
  19.         acedSetCurrentView (&view, NULL);
  20.         // updates the extents
  21.         acdbHostApplicationServices()->workingDatabase()->updateExt(TRUE);
  22. }
  23. ////////////////////////////////////////////////////////////////////////////
  24. //
  25. // This is command 'ZOOMWIN, by Fenton Webb [Apr/17/2002], DevTech, Autodesk
  26. void asdkzoomWin()
  27. {
  28.         AcGePoint3d max, min;
  29.         // get the window coords
  30.         int res = acedGetPoint (NULL, "\nPick zoom window pnt : ",
  31.                 asDblArray(min));
  32.         // if ok
  33.         if (res == RTNORM)
  34.         {
  35.                 res = acedGetCorner (asDblArray(min), "\nPick other corner : ",
  36.                         asDblArray(max));
  37.                 // get the extents of the drawing
  38.                 AcDbViewTableRecord view;
  39.                 AcGePoint2d max采用2d (max, max);
  40.                 AcGePoint2d min采用2d (min, min);
  41.                 // now set the view centre point
  42.                 view.setCenterPoint (min采用2d + (max采用2d - min采用2d) / 2.0);
  43.                 // now height and width of view
  44.                 view.setHeight(max采用2d - min采用2d);
  45.                 view.setWidth (max采用2d - min采用2d);
  46.                 // set the view
  47.                 acedSetCurrentView (&view, NULL);
  48.                 // updates the extents
  49.                 acdbHostApplicationServices()->workingDatabase()->updateExt(TRUE);
  50.         }
  51. }
复制代码
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋|膜结构网

GMT+8, 2024-12-29 21:49 , Processed in 0.134738 second(s), 23 queries .

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

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