乐筑天下

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

真彩色滤光片

[复制链接]

9

主题

15

帖子

2

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
51
发表于 2008-4-21 02:04:10 | 显示全部楼层 |阅读模式
我想选择几个相同的ACI颜色实体,然后显示夹点
在绘图上…
一些图元颜色=255194,10(真彩色)
一些实体颜色=40(ACI颜色)
所有这些图元都是相同的ACI颜色40(但我想过滤真彩色图元)
我尝试以下代码..因为它似乎是DXF组过滤器不支持真彩色 Dim objSelSet As AcadSelectionSet 出错时继续下一步 此绘图。选择集(“sset”)。删除 出错时转到错误处&nbsp
 设置objSelSet=ThisDrawing.SelectionSets。添加(“sset”)
 Dim intGcode(0)作为整数 Dim varCodeData(0)作为变量 intGcode(0)=62 varCodeData(0)=“0”;40“
 对象集。选择acSelectionSetAll、intGcode、varCodeData&nbsp
 Dim lngMax(长) 长时变暗 Dim objRemove(0)作为AcadEntity lngMax=对象集。计数 对于lngCnt=0到lngMax-1&nbsp&nbsp Set objRemove(0)=objSelSet。项目(lngCnt)&nbsp&nbsp 如果objRemove(0)。TrueColor。ColorMethod=acColorMethodByRGB,然后&nbsp&nbsp&nbsp&nbsp 对象集。RemoveItems objRemove&nbsp&nbsp 如果结束 下一步 对象集。删除 此图纸。SendCommand“;(sssetfirst nil(ssget&Chr(34)&&引用_P“&Chr(34)&amp"))&引用
 退出Sub&nbsp
错误: 如果出现错误,则&nbsp&nbsp 犯错误清除&nbsp&nbsp MsgBox错误。说明 结束If结束Sub&039----------------------------
但是,它不起作用,我正在努力http://discussion.autodesk.com/thread.jspa?messageID=415583如果使用VLAX而不是上面的SendCommand,也会失败
有什么办法吗?或者有什么想法?
回复

使用道具 举报

170

主题

1424

帖子

8

银币

顶梁支柱

Rank: 50Rank: 50

铜币
2119
发表于 2008-4-21 10:55:43 | 显示全部楼层
255、194、10=我20个
回复

使用道具 举报

9

主题

15

帖子

2

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
51
发表于 2008-4-21 20:46:50 | 显示全部楼层
Bryco,这是我的例子。画相似的颜色或不同的颜色实体并测试它
我的目标是最后的选择集->选择实体并设置夹点
回复

使用道具 举报

170

主题

1424

帖子

8

银币

顶梁支柱

Rank: 50Rank: 50

铜币
2119
发表于 2008-4-21 23:59:46 | 显示全部楼层
你想做的只是在vba中不好,net会很好。
回复

使用道具 举报

71

主题

928

帖子

8

银币

顶梁支柱

Rank: 50Rank: 50

铜币
1230
发表于 2008-4-22 01:06:55 | 显示全部楼层
Chobo,
您的代码在迭代选择集时从选择集中删除对象……这是不允许的。此外,在报告错误之前,您清除了错误处理程序中的错误,因此错误MsgBox中没有显示任何内容
我认为下面的代码实现了您的期望。我不知道't喜欢使用SendCommand,但不去VL类,它'这是我现在唯一能想到的办法
  1. Option Explicit
  2. Sub ColorFilter()
  3.     Dim objSelSet As AcadSelectionSet
  4.     On Error Resume Next
  5.     ThisDrawing.SelectionSets("sset").Delete
  6.     On Error GoTo ErrHere
  7.    
  8.     Set objSelSet = ThisDrawing.SelectionSets.Add("sset")
  9.     Dim intGcode(0) As Integer
  10.     Dim varCodeData(0) As Variant
  11.     intGcode(0) = 62
  12.     varCodeData(0) = "40"
  13.     objSelSet.Select acSelectionSetAll, , , intGcode, varCodeData
  14.    
  15.     Dim lngMax As Long
  16.     Dim lngCnt As Long
  17.     Dim objRemove() As AcadEntity
  18.     Dim objEnt As AcadEntity
  19.     Dim I As Integer
  20.    
  21.     lngMax = objSelSet.Count
  22.     For lngCnt = 0 To lngMax - 1
  23.         Set objEnt = objSelSet.Item(lngCnt)
  24.         If objEnt.TrueColor.ColorMethod = acColorMethodByRGB Then
  25.             ReDim Preserve objRemove(I)
  26.             Set objRemove(I) = objEnt
  27.             I = 1 + I
  28.         End If
  29.     Next
  30.     objSelSet.RemoveItems objRemove
  31.     If objSelSet.Count > 0 Then
  32.         ThisDrawing.SendCommand "(setq ss (ssadd)) "
  33.         For Each objEnt In objSelSet
  34.             ThisDrawing.SendCommand "(ssadd (handent " & Chr(34) & objEnt.Handle & _
  35.                                      Chr(34) & ") ss) "
  36.         Next
  37.     End If
  38.     ThisDrawing.SendCommand "(sssetfirst nil ss) "
  39.     objSelSet.Delete
  40.     Exit Sub
  41.    
  42. ErrHere:
  43.     If Err Then
  44.         MsgBox Err.Description
  45.         Err.Clear
  46.     End If
  47. End Sub

回复

使用道具 举报

170

主题

1424

帖子

8

银币

顶梁支柱

Rank: 50Rank: 50

铜币
2119
发表于 2008-4-22 10:11:41 | 显示全部楼层
我不知道't完全达到目标
一些实体颜色=255194,10(真彩色)
一些图元颜色=40(ACI颜色)
如果你使用40,那么你赢了't获得255194,10;因为现在是20。所以我想你一定要把每件商品都涂上真的颜色
如果是这种情况,则不需要选择集过滤器
I'我希望杰夫能得到你想要的。
回复

使用道具 举报

71

主题

928

帖子

8

银币

顶梁支柱

Rank: 50Rank: 50

铜币
1230
发表于 2008-4-22 11:45:38 | 显示全部楼层
Bryco,用chobo显示的颜色创建4个圆,然后在每个圆上使用(entget(car(entsel)))。DXF 62代码显示除指定的30之外的所有40,因此过滤的SS(在DXF 62=40时)得到4个中的3个。他们只想要一个具体为ACI颜色40的SS。
回复

使用道具 举报

9

主题

15

帖子

2

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
51
发表于 2008-4-22 11:57:09 | 显示全部楼层
对不起,我解释得不好。我的目标是只选择ACI颜色实体。选择实体使用组码;62“;(任何ACI颜色以及40)从选择集中减去真彩色实体,因为组码;62“;不支持真彩色。
3.选择设置夹点,非常感谢Jeff\u M,Bryco!!
回复

使用道具 举报

170

主题

1424

帖子

8

银币

顶梁支柱

Rank: 50Rank: 50

铜币
2119
发表于 2008-4-22 23:36:16 | 显示全部楼层
55、194、10=20,我可以#039;不要让这种情况再次发生
我在喝什么,我是说在想什么。
回复

使用道具 举报

发表回复

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

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

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

GMT+8, 2025-7-4 21:23 , Processed in 0.358638 second(s), 71 queries .

© 2020-2025 乐筑天下

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