乐筑天下

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

块内实体的修改?

[复制链接]

14

主题

52

帖子

4

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
108
发表于 2005-10-31 14:59:00 | 显示全部楼层 |阅读模式
又麻烦各位了!
  已经建立一个块,并在图中插入,前面的程序省略,执行正常,但当我执行一个块内某直线位置的修改时出了问题:  
For Each Bobj In ThisDrawing.Blocks(Bname)
     If Bobj.ObjectName = "AcDbLine" Then
       Bobj.Color = acGreen  '改为绿色
       Bobj.Move pt1, pt2
     End If
  Next

上面的代码都很正常,但       Bobj.Move pt1, pt2  无法执行,提示为“无法调用的过各或参数”
而且直接修改该直线的起点和端点座标也不行。
回复

使用道具 举报

16

主题

909

帖子

8

银币

中流砥柱

Rank: 25

铜币
973
发表于 2005-10-31 20:05:00 | 显示全部楼层
应该没问题的,可能是pt1和pt2不对,完了还要Regen
  1. Sub test()
  2. Dim pt1 As Variant
  3. Dim pt2 As Variant
  4. pt1 = ThisDrawing.Utility.GetPoint(, vbCrLf & "First point:")
  5. pt2 = ThisDrawing.Utility.GetPoint(pt1, vbCrLf & "Second point:")
  6. For Each Bobj In ThisDrawing.Blocks("aaa")
  7.      If Bobj.ObjectName = "AcDbLine" Then
  8.        Bobj.color = acGreen  '改为绿色
  9.        Bobj.Move pt1, pt2
  10.      End If
  11.   Next
  12.   ThisDrawing.Regen acActiveViewport
  13. End Sub
回复

使用道具 举报

14

主题

52

帖子

4

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
108
发表于 2005-10-31 20:20:00 | 显示全部楼层
OK,谢谢!犯了点低级错误,PT1和PT2的声明不对, 由于要移动的距离是固定的数值,不需要在屏幕上去选择,所以把声明改为double的数组就行了。
回复

使用道具 举报

发表回复

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

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

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

GMT+8, 2025-7-5 17:11 , Processed in 0.725145 second(s), 59 queries .

© 2020-2025 乐筑天下

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