乐筑天下

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

使用ucs设置视图(&W);剪裁平面

[复制链接]

69

主题

875

帖子

15

银币

顶梁支柱

Rank: 50Rank: 50

铜币
1146
发表于 2008-1-16 19:18:07 | 显示全部楼层 |阅读模式
这里有几个线程涉及到这一点,但不完全是我'm之后
下面的代码使用当前ucs设置基本视图,我现在要做的是打开剪裁平面
到目前为止,我已经找到了可以用位掩码切换的sysvar VIEWMODE,这是失败的,有什么想法吗
下一个问题是设置剪切距离,有没有人幸运地使用了arx dll中的函数;s
  1. Public Sub SetClippedView()
  2.     ' This example creates a new view.
  3.     ' It then changes the active viewport to
  4.     ' the newly created view.
  5.    
  6.     ' Create a new view
  7.     Dim viewObj As AcadView
  8.     Set viewObj = ThisDrawing.Views.Add("TESTVIEW")
  9.    
  10.     ' Set the view characteristics
  11.     ' get the current ucs values:
  12.     Dim xdir As Variant, ydir As Variant, zdir(2) As Double, ucsorigin As Variant
  13.     xdir = ThisDrawing.GetVariable("UCSXDIR")
  14.     ydir = ThisDrawing.GetVariable("UCSYDIR")
  15.     'cross the x and y vecs to get the zdir
  16.     Dim xv(2) As Double, yv(2) As Double
  17.     InitVec xv, xdir: InitVec yv, ydir
  18.     VecCross zdir, xv, yv
  19.     ucsorigin = ThisDrawing.GetVariable("UCSORG")
  20.     viewObj.Center(0) = ucsorigin(0): viewObj.Center(1) = ucsorigin(1)
  21.     viewObj.Direction = zdir
  22.     viewObj.Target = ucsorigin
  23.     'set the clipping planes on:
  24.     ThisDrawing.SetVariable "VIEWMODE", 6 '<<-------- fails here
  25.    
  26.     ' Get the current active viewport
  27.     Dim viewportObj As AcadViewport
  28.     Set viewportObj = ThisDrawing.ActiveViewport
  29.       
  30.     ' Set the view in the viewport
  31.     viewportObj.SetView viewObj
  32.     ThisDrawing.ActiveViewport = viewportObj
  33.         
  34.     ThisDrawing.Regen True
  35.     ThisDrawing.SendCommand "_zoom" & vbCr & "a" & vbCr
  36. End Sub


回复

使用道具 举报

69

主题

875

帖子

15

银币

顶梁支柱

Rank: 50Rank: 50

铜币
1146
发表于 2008-1-16 19:24:15 | 显示全部楼层
It#039;自从我&#039;d完成了(我认为是35;039;95),但我已经成功地从lisp建立了剪裁平面。本人&#039;我看看能不能找到代码和显著位;可以这么说。
回复

使用道具 举报

69

主题

875

帖子

15

银币

顶梁支柱

Rank: 50Rank: 50

铜币
1146
发表于 2008-1-16 19:34:52 | 显示全部楼层
我设置剪切平面的答案只是咬了我一口……它&#039;无论如何,它就在那里(前/后);
回复

使用道具 举报

69

主题

875

帖子

15

银币

顶梁支柱

Rank: 50Rank: 50

铜币
1146
发表于 2008-1-16 19:39:03 | 显示全部楼层
好的,我最大的问题是设置sysvar#039;s、 似乎你需要做一些体操来设置它们,这是我到目前为止所做的,但它35;039;s仍然失败,我&#039;在此期间,我会四处挖掘一下
  1. 'set the clipping planes on:
  2.     Dim distF As Double, distB As Double, vmode As Integer, vardata As Variant
  3.     distF = 500#: distB = -500#: vmode = 6
  4.     vardata = distF
  5.     ThisDrawing.SetVariable "FRONTZ", vardata
  6.     vardata = distB
  7.     ThisDrawing.SetVariable "BACKZ", vardata
  8.     vardata = vmode
  9.     ThisDrawing.SetVariable "VIEWMODE", vardata
回复

使用道具 举报

69

主题

875

帖子

15

银币

顶梁支柱

Rank: 50Rank: 50

铜币
1146
发表于 2008-1-16 20:25:15 | 显示全部楼层
我找到了密码Mick,但是yeow,它&#039;这太令人沮丧了
本质上,我所做的是创建一个临时视图对象,对其进行适当的修改,然后将其设置为活动状态。我修改的视图对象变量(dxf组码)为:组码&nbsp&nbsp
描述&nbsp&nbsp
Activex等价物查看中心(安全阵列)视图扭曲(View Twist)我在完成上表时再次发现,对象模型无法与dxf组码1:1映射;grrrr。注意,我直接询问了一个视图对象,而不是依赖于帮助文件,因此我&#039;我很确定这些被标注的属性没有被暴露(甚至没有作为隐藏属性)
不过可能是错的
因此(如果我理解正确的话)这意味着如果使用VB[A],您只能使用sys vars来设置剪裁平面等,正如您&#039;你在上一篇文章中做得很好
上面的蓝色变量是您&#039;在代码中重新寻址;红色的是你可能需要设置的变量(或确认它们的值),以完成你的任务。对不起,那是&#039;s all I&#039;我现在没有时间了。对不起。
回复

使用道具 举报

170

主题

1424

帖子

8

银币

顶梁支柱

Rank: 50Rank: 50

铜币
2119
发表于 2008-1-16 20:32:31 | 显示全部楼层
谢谢迈克尔,那&#039;这可能就是为什么我可以#039;别放他们,笨蛋
不过,我可以得到vardata,这对我有什么好处
回复

使用道具 举报

69

主题

875

帖子

15

银币

顶梁支柱

Rank: 50Rank: 50

铜币
1146
发表于 2008-1-16 23:12:40 | 显示全部楼层
哦,好吧,再次取出旧的arx拐杖。附加的arx(用于2007/8)有两个命令:
SETCLIPVIEW-将视图设置为当前ucs,并在500mm/-500mm的距离上前后打开剪裁平面。将ucs设置为要工作和运行的点和方向
VIEWSEISO-将视图设置为std东南iso视图并关闭剪裁。如果有人想要解决方案或代码,请大声喊叫
补充:我刚刚添加了一个帝国版,将裁剪平面设置为24英寸,希望合适,如果不让我知道的话。
回复

使用道具 举报

170

主题

1424

帖子

8

银币

顶梁支柱

Rank: 50Rank: 50

铜币
2119
发表于 2008-1-16 23:38:16 | 显示全部楼层
Arx的米克可能是一条路要走
中心-作为一个2d点,很难计算出这个2d点需要在哪个平面上,我以为它会在dcs中,但那不是&#039;不一定行
DCS的原点是存储在AutoCAD系统变量目标中的点,其Z轴是观察方向,但目标没有#039;t更新
&quot;VIEWMODE“;是只读的
I&#039;我再多看一点
回复

使用道具 举报

170

主题

1424

帖子

8

银币

顶梁支柱

Rank: 50Rank: 50

铜币
2119
发表于 2008-1-17 00:56:20 | 显示全部楼层
可悲的是,一行lisp可以设置方向,剪裁平面,雅达如果它不是&#039;迟到了,我没有#039;我已经吃了安眠药;d扔出一个剪子,但我的诺金#039;正在被猛烈抨击。
回复

使用道具 举报

发表回复

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

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

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

GMT+8, 2025-7-5 13:43 , Processed in 0.799256 second(s), 81 queries .

© 2020-2025 乐筑天下

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