乐筑天下

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

VBA图像控制

[复制链接]
284

1

主题

1

帖子

1

银币

初来乍到

Rank: 1

铜币
5
发表于 2006-3-15 11:25:59 | 显示全部楼层 |阅读模式

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

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

使用道具 举报

0

主题

12

帖子

5

银币

初来乍到

Rank: 1

铜币
15
发表于 2006-3-15 12:16:00 | 显示全部楼层
您是要重命名tif文件还是只重命名绘图中的tif引用名称?
回复

使用道具 举报

0

主题

12

帖子

5

银币

初来乍到

Rank: 1

铜币
12
发表于 2006-3-15 12:22:07 | 显示全部楼层
一些细节
1)路径是否保存在tifs
a)如果是,总是,肯定?
b)如果不是,它们在绘图文件夹中吗?
2)绘图中是否有多个tif?
3)新的tif名称是否始终是绘图名称?
4)您还能想到什么?
回复

使用道具 举报

0

主题

13

帖子

6

银币

初来乍到

Rank: 1

铜币
13
发表于 2006-3-15 13:16:10 | 显示全部楼层
1-是,2-否3 -是4-我饿了4-我需要小睡一会儿
回复

使用道具 举报

0

主题

6

帖子

4

银币

初来乍到

Rank: 1

铜币
7
发表于 2006-3-15 13:18:04 | 显示全部楼层
试试这个
  1. Sub RastaRenameMon()
  2.   Dim objSelSets As AcadSelectionSets
  3.   Dim objSelSet As AcadSelectionSet
  4.   Dim intType(0) As Integer
  5.   Dim varData(0) As Variant
  6.   Dim objImg As AcadRasterImage
  7.   Dim objNewImg As AcadRasterImage
  8.   Dim strImgName As String
  9.   Dim strDwgName As String
  10.   Dim strImgExt As String
  11.   Dim strImgPath As String
  12.   Dim strNewName As String
  13.   
  14.   strDwgName = Left(ThisDrawing.Name, Len(ThisDrawing.Name) - 4)
  15.   Set objSelSets = ThisDrawing.SelectionSets
  16.   For Each objSelSet In objSelSets
  17.     If objSelSet.Name = "Imagen" Then
  18.       objSelSets.Item("Imagen").Delete
  19.       Exit For
  20.     End If
  21.   Next
  22.   Set objSelSet = objSelSets.Add("Imagen")
  23.   intType(0) = 0
  24.   varData(0) = "IMAGE"
  25.   objSelSet.Select acSelectionSetAll, _
  26.   filtertype:=intType, filterdata:=varData
  27.   If objSelSet.Count > 0 Then
  28.   For Each objImg In objSelSet
  29.     strImgExt = Right(objImg.ImageFile, 4)
  30.     strImgName = objImg.Name
  31.     strImgPath = Left(objImg.ImageFile, Len(objImg.ImageFile) - Len(strImgName) - 4)
  32.     strNewName = strImgPath & strDwgName & strImgExt
  33.     FileCopy objImg.ImageFile, strNewName
  34.     Set objNewImg = PaperSpace.AddRaster(strNewName, objImg.Origin, objImg.ScaleFactor, objImg.Rotation)
  35.     DetachImage (strImgName)
  36.     Kill strImgPath & strImgName & strImgExt
  37.     Rename
  38.   Next objImg
  39.   End If
  40. End Sub
  41. Function DetachImage(ByVal strName As String)
  42. 'Function jacked then Bobbed from Luis Alberto who got it somewhere else http://groups.google.com/group/autodesk.autocad.customization.vba/browse_thread/thread/2a3de0506ce1ed32/4e8b16d28d05e7a2%234e8b16d28d05e7a2?sa=X&oi=groupsr&start=0&num=3
  43. On Error GoTo NoPicYo
  44.   Dim objImgDic As AcadDictionary
  45.   Dim objImg As AcadObject
  46.   
  47.   Set objImgDic = ThisDrawing.Dictionaries("ACAD_IMAGE_DICT")
  48.   Set objImg = objImgDic(strName)
  49.   objImg.Delete
  50. Bounce:
  51.   Exit Function
  52. NoPicYo:
  53.   Set objImgDic = Nothing
  54.   Set objImg = Nothing
  55. End Function

回复

使用道具 举报

0

主题

3

帖子

4

银币

初来乍到

Rank: 1

铜币
4
发表于 2006-3-15 14:08:40 | 显示全部楼层
它在重命名时崩溃???
回复

使用道具 举报

0

主题

5

帖子

4

银币

初来乍到

Rank: 1

铜币
9
发表于 2006-3-15 14:15:41 | 显示全部楼层
哦,对不起,把线拿开。
回复

使用道具 举报

0

主题

11

帖子

5

银币

初来乍到

Rank: 1

铜币
12
发表于 2006-3-15 14:17:45 | 显示全部楼层
奇怪,不确定。我过一会儿会玩它。那又快又脏,我不得不在CPU和设置我的新绘图仪的技术人员之间来回切换。
回复

使用道具 举报

0

主题

8

帖子

7

银币

初来乍到

Rank: 1

铜币
11
发表于 2006-3-15 14:22:43 | 显示全部楼层
我想这可能与dwg中的单位设置为英尺有关。我在2006年,所以我必须确保插入单元设置正确
不过,感谢您的代码,它的工作原理很好,这是一个简单的修复
回复

使用道具 举报

0

主题

5

帖子

5

银币

初来乍到

Rank: 1

铜币
7
发表于 2006-3-15 14:23:13 | 显示全部楼层
它看起来就像是对新图像引用的随机名称,这就是重命名开始之前开始的,因为我决定让你担心这一点。 甚至没有想到插入单元。 它可能更干净,但在我得到你的答案之前,我已经完成了大约一半。 开始使它更通用,然后在最后切到更具体。
回复

使用道具 举报

发表回复

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

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

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

GMT+8, 2025-7-6 05:55 , Processed in 1.303951 second(s), 72 queries .

© 2020-2025 乐筑天下

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