乐筑天下

搜索
欢迎各位开发者和用户入驻本平台 尊重版权,从我做起,拒绝盗版,拒绝倒卖 签到、发布资源、邀请好友注册,可以获得银币 请注意保管好自己的密码,避免账户资金被盗
查看: 179|回复: 12

关闭当前视图中的修剪平面

[复制链接]

69

主题

875

帖子

15

银币

顶梁支柱

Rank: 50Rank: 50

铜币
1146
发表于 2006-2-22 01:09:39 | 显示全部楼层 |阅读模式
我正在尝试关闭当前视图的剪裁平面。如果我将我的视图设置为我在打开剪裁时创建的命名视图,然后选择一个标准视图,它仍然显示“打开”剪裁平面。如果我在“视图”对话框->视图设置中查看,我可以看到即使在我运行了这段代码之后,裁剪平面仍然是打开的。
我是否需要其他方法来获取当前视图,或者我是否需要其他方法来关闭剪辑?蒂亚,米克。
  1.        
  2. static void DCSDCSARX3dunclip(void)
  3.         {
  4.                 // function to turn the clip planes off after being
  5.                 // in a clipped view. Use current view to change settings
  6.                 AcDbViewTable* pVt;
  7.                 acdbHostApplicationServices()->workingDatabase()
  8.                         ->getSymbolTable(pVt, AcDb::kForWrite);
  9.                 if (!pVt->has("Current"))
  10.                 {
  11.                         AcDbViewTableRecord* pVtrec = new AcDbViewTableRecord;
  12.                         pVt->getAt("Current", *&pVtrec,AcDb::kForWrite,false);
  13.                         pVtrec->setFrontClipEnabled(false);
  14.                         pVtrec->setBackClipEnabled(false);
  15.                         pVtrec->close();
  16.                         pVt->close();
  17.                         acutPrintf("\nDone:");
  18.                 }
  19.                 else
  20.                 {
  21.                         pVt->close();
  22.                         acutPrintf("\nFailed to turn off clipping, try again:");
  23.                 }
  24.         }

本帖以下内容被隐藏保护;需要你回复后,才能看到!

游客,如果您要查看本帖隐藏内容请回复
回复

使用道具 举报

69

主题

875

帖子

15

银币

顶梁支柱

Rank: 50Rank: 50

铜币
1146
发表于 2006-2-22 07:43:16 | 显示全部楼层
您是在图层模型1中显示视图,还是在图层模型0的视口中显示视图?
回复

使用道具 举报

69

主题

875

帖子

15

银币

顶梁支柱

Rank: 50Rank: 50

铜币
1146
发表于 2006-2-22 09:32:16 | 显示全部楼层
我使用了上面的一些代码来获得tilemode等,然后设置剪切平面为假,没有去。然后我用acedSetCurrentView()做了同样的尝试,但是它完全改变了视图,尽管它关闭了裁剪平面??
也许我必须为标准视图设置自己的工具栏?
回复

使用道具 举报

69

主题

875

帖子

15

银币

顶梁支柱

Rank: 50Rank: 50

铜币
1146
发表于 2006-2-22 15:44:16 | 显示全部楼层
我忙不起来...这里。。。在我所做的工作类型中,从未使用过或需要实现过这样的东西......
[工作类型:清洁街道上的车窗..... ]
一个dwg我对我的帮助超过1000字....
回复

使用道具 举报

69

主题

875

帖子

15

银币

顶梁支柱

Rank: 50Rank: 50

铜币
1146
发表于 2006-2-22 16:13:54 | 显示全部楼层
好的,这里有一个dwg,附有一个带有剪裁平面的命名视图。将视图设置为当前视图,然后选择一个iso视图将其恢复,您将看到裁剪平面裁剪出一些细节。
将下面的代码复制并粘贴到一个新的arx命令中,尝试取消对acedSetCurrentView的注释,看看会发生什么。
谢谢。
  1.                 // function to turn the clip planes off after being
  2.                 // in a clipped view. Use current view to change settings
  3.                 AcDbViewTable* pVt;
  4.                 acdbHostApplicationServices()->workingDatabase()
  5.                         ->getSymbolTable(pVt, AcDb::kForWrite);
  6.                 if (!pVt->has("CURRENT"))
  7.                 {
  8.                         AcDbViewTableRecord* pVtrec = new AcDbViewTableRecord;
  9.                         pVt->getAt("CURRENT", *&pVtrec,AcDb::kForWrite,false);
  10.                         struct resbuf rb;
  11.                         acedGetVar("TILEMODE", &rb);
  12.                         int tilemode = rb.resval.rint;
  13.                         acedGetVar("CVPORT", &rb);
  14.                         int cvport = rb.resval.rint;
  15.                         // Paperspace flag
  16.                         bool paperspace = ((tilemode == 0) && (cvport == 1)) ? Adesk::kTrue : Adesk::kFalse;
  17.                         pVtrec->setIsPaperspaceView(paperspace);
  18.                         if (Adesk::kFalse == paperspace)
  19.                         {
  20.                                 pVtrec->setFrontClipEnabled(false);
  21.                                 pVtrec->setBackClipEnabled(false);
  22.                                 acutPrintf("\nDone:");
  23.                         }
  24.                         else
  25.                         {
  26.                                 acutPrintf("\nCan't turn off clipping planes in paperspace!");
  27.                         }
  28.                         //acedSetCurrentView(pVtrec,NULL);//close();
  29.                         pVt->close();
  30.                        
  31.                 }
  32.                 else
  33.                 {
  34.                         pVt->close();
  35.                         acutPrintf("\nFailed to turn off clipping, try again:");
  36.                 }

回复

使用道具 举报

69

主题

875

帖子

15

银币

顶梁支柱

Rank: 50Rank: 50

铜币
1146
发表于 2006-2-22 16:18:35 | 显示全部楼层
不...它总是去计划视图...奇怪。
回复

使用道具 举报

116

主题

996

帖子

9

银币

顶梁支柱

Rank: 50Rank: 50

铜币
1466
发表于 2006-2-22 16:36:56 | 显示全部楼层

我在想,也许AcDbViewport对象的属性优先于AcDbViewTableRecord的属性。
我会仔细看看,看看能不能弄明白。
回复

使用道具 举报

69

主题

875

帖子

15

银币

顶梁支柱

Rank: 50Rank: 50

铜币
1146
发表于 2006-2-22 17:42:15 | 显示全部楼层
在我使用的另一个应用程序中,你可以设置一个带有裁剪平面的视图,如果你使用std isoviews返回并查看整个drg,它会做同样的事情,唯一恢复正常的方法是使用他们预定义的视图工具,然后如果你想使用std工具。也许我也需要这样做,但只需创建模型范围的标准平面图?
我真的很惊讶,您有一个全局函数来“设置”当前视图,而不是“获取”当前视图。
回复

使用道具 举报

69

主题

875

帖子

15

银币

顶梁支柱

Rank: 50Rank: 50

铜币
1146
发表于 2006-2-22 17:46:00 | 显示全部楼层
米克;
我使用不同的视图名称进行了测试,但没有转到平面视图...
回复

使用道具 举报

69

主题

875

帖子

15

银币

顶梁支柱

Rank: 50Rank: 50

铜币
1146
发表于 2006-2-22 17:57:04 | 显示全部楼层

不工作....假警报...
回复

使用道具 举报

发表回复

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

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

QQ|关于我们|小黑屋|乐筑天下 繁体中文

GMT+8, 2025-2-5 16:45 , Processed in 0.252634 second(s), 72 queries .

© 2020-2025 乐筑天下

联系客服 关注微信 帮助中心 下载APP 返回顶部 返回列表