乐筑天下

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

[编程交流] 简单的问题

[复制链接]

10

主题

23

帖子

20

银币

初来乍到

Rank: 1

铜币
44
发表于 2022-7-6 22:25:19 | 显示全部楼层 |阅读模式
在下面的代码中,我在删除并重新插入一些文本后重新生成。在删除文本或重新生成之前(在下一次运行之前的代码末尾),程序正在读取extmin变量,这意味着插入的文本高度比上一次低一个文本高度。目标是始终将其插入extmin下方相同的y维度。
 
如果我在图形中手动执行删除和重新生成并运行代码,它将按我所希望的方式工作。在代码中执行这些功能似乎是无效的。
 
提前感谢
 
下面列出了部分代码。。。
 
 
  1.     Dim minext As Variant
  2.    minext = ThisDrawing.GetVariable("EXTMIN")
  3.    Dim min(0 To 2) As Double
  4.    min(0) = minext(0)
  5.    min(1) = minext(1)
  6.    min(2) = minext(2)
  7.    Dim ip(0 To 2) As Double
  8.    ip(0) = min(0)
  9.    ip(1) = min(1) + negret(h * 1.3)
  10.    ip(2) = 0
  11.    
  12.    ' Check for Text String at coordinates and delete - Option 2
  13.    Dim objDataBase As AcadDatabase
  14.    Dim objBlock As AcadBlock
  15.    Dim Ent As AcadEntity
  16.    Dim c As Integer
  17.    Dim i As Integer
  18.    Dim entCollection As Collection
  19.    Dim varHandle As Variant
  20.    Set entCollection = New Collection
  21.    
  22.    For Each objBlock In ThisDrawing.Blocks
  23.        c = objBlock.Count
  24.        For i = 0 To c - 1
  25.            If TypeOf objBlock.Item(i) Is AcadEntity Then
  26.                If objBlock.Item(i).Layer = "FILEPATHTEXT" Then
  27.                    entCollection.Add (objBlock.Item(i).Handle)
  28.            
  29.                End If
  30.       
  31.            End If
  32.            
  33.        Next
  34.                
  35.        On Error Resume Next
  36.        For Each varHandle In entCollection
  37.            Set Ent = ThisDrawing.HandleToObject(CStr(varHandle))
  38.            Ent.Delete
  39.            
  40.        Next
  41.       
  42.        On Error GoTo 0
  43.       
  44.    Next
  45.       
  46.    ' Regen after deletion
  47.    ThisDrawing.SendCommand "ZOOM" & vbCr & "EXTENTS"
  48.    ThisDrawing.Regen acActiveViewport
  49.    
  50.    ' Add Text String
  51.    Dim dir As String
  52.    dir = ThisDrawing.GetVariable("DWGPREFIX")
  53.    Dim fil As String
  54.    fil = ThisDrawing.GetVariable("DWGNAME")
  55.       
  56.    Dim objText2 As AcadText
  57.    Dim textString As String
  58.    textString = dir & fil
  59.    Set objText2 = ThisDrawing.ModelSpace.AddText(textString, ip, h)
回复

使用道具 举报

发表回复

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

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

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

GMT+8, 2025-3-4 08:33 , Processed in 0.458092 second(s), 54 queries .

© 2020-2025 乐筑天下

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