明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 3348|回复: 11

[原创]指定零件表面颜色的程序

  [复制链接]
发表于 2006-8-9 09:05:00 | 显示全部楼层 |阅读模式

       为了特殊需要,我们常常要为零件的一个或多个表面指定不同的颜色,比如表示加工面或喷漆表面等,在AIP中可以通过选择零件表面,然后右击,在快捷菜单中选择特性,然后在特性对话框中指定。

       这种操作方式比较麻烦,第一,不能及时显示出效果,只有退出对话框后才能显示,如果选得不如意,还得从头再来一次。第二,有时候,我们不知道颜色的具体名称,我们想指定一些表面的颜色和一个特定表面的颜色相同,相当于其他软件中的格式刷,这时,操作将更加麻烦。

      为了解决这些问题,我在默认工程中写了如下程序:

      添加名称为Userform1的窗体

      在窗体的代码窗口输入如下代码:

Private WithEvents oInteraction As InteractionEvents
Private WithEvents oSelect As SelectEvents
Private oFace As Face
Private oRender As RenderStyle

Private Sub CheckBox1_Click()
If Me.CheckBox1.Value = True Then
   Me.ListBox1.Enabled = False
Else
   Me.ListBox1.Enabled = True
End If
End Sub

Private Sub CommandButton1_Click()
Unload Me
End Sub


Private Sub ListBox1_Click()
Set oRender = AcDoc.RenderStyles.Item(Me.ListBox1.ListIndex + 1)
Me.TextBox1.Text = oRender.Name
oFace.SetRenderStyle kOverrideRenderStyle, oRender
End Sub

Private Sub oSelect_OnSelect(ByVal JustSelectedEntities As ObjectsEnumerator, ByVal SelectionDevice As SelectionDeviceEnum, ByVal ModelPosition As Point, ByVal ViewPosition As Point2d, ByVal View As View)
Set oFace = JustSelectedEntities(1)
Me.CheckBox1.Visible = True

If Me.CheckBox1.Value = True Then
   oFace.SetRenderStyle kOverrideRenderStyle, oRender
   Me.ListBox1.Enabled = False
Else
   Set oRender = oFace.GetRenderStyle(kOverrideRenderStyle)
   Me.TextBox1.Text = oRender.Name
   Me.ListBox1.Enabled = True
   Me.ListBox1.Text = oRender.Name
End If
End Sub

Private Sub UserForm_Initialize()
Set oInteraction = ThisApplication.CommandManager.CreateInteractionEvents
Set oSelect = oInteraction.SelectEvents
oSelect.ClearSelectionFilter
oSelect.AddSelectionFilter kPartFaceFilter
oSelect.SingleSelectEnabled = True
oInteraction.Start


For Each oRender In AcDoc.RenderStyles
   Me.ListBox1.AddItem oRender.Name
Next oRender
End Sub
在模块中输入如下代码:

Public AcDoc As Inventor.Document

Public Sub Set_Color()
Set AcDoc = ThisApplication.ActiveDocument
If AcDoc.DocumentType <> kPartDocumentObject Then
  MsgBox "这个命令只能用于零件文档!"
  Exit Sub
End If
UserForm1.Show vbModeless
End Sub

       使用时,运行过程Set_Color,启动对话框,选择零件表面,再在列表框中指定颜色,选定锁定复选框,可以当作格式刷使用。

本帖子中包含更多资源

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

x
发表于 2006-8-9 09:40:00 | 显示全部楼层

多谢分享!

发表于 2006-8-9 13:29:00 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
发表于 2006-8-9 14:50:00 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
发表于 2006-8-10 23:14:00 | 显示全部楼层

无法用到iam上

发表于 2006-8-11 08:40:00 | 显示全部楼层
非常好,我以前就提出过颜色选择的问题,lijiao又帮忙解决了一个问题。
发表于 2006-8-11 14:10:00 | 显示全部楼层
lijiao的,好东东啊。谢谢无私的奉献。俺们该好好学习
发表于 2006-8-13 23:02:00 | 显示全部楼层

终于有了,以前一直想问怎样实现。谢谢太好了。加工表面可以清楚地表达了

发表于 2006-8-14 00:05:00 | 显示全部楼层
能用到R11上吗?
 楼主| 发表于 2006-8-15 08:48:00 | 显示全部楼层

我就是在R11上写的。

应该可以用于其它版本。

多亏陈老师的书指导着我写这点小东西,不敢独用,拿出源码和大家分享,真正博大精深的是陈老师。

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

本版积分规则

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

GMT+8, 2024-11-25 16:30 , Processed in 0.176601 second(s), 29 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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