乐筑天下

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

文本问题

[复制链接]

57

主题

235

帖子

3

银币

后起之秀

Rank: 20Rank: 20Rank: 20Rank: 20

铜币
463
发表于 2006-10-31 16:41:35 | 显示全部楼层
鉴于此,您可以使用文本ins pt,并计算文本长度,然后在第一行下面偏移(或绘制)第二行。
回复

使用道具 举报

12

主题

102

帖子

5

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
156
发表于 2006-11-1 05:00:39 | 显示全部楼层
实际上,我在VBA中完成了这项工作,因为我们工作的标题是带有双下划线的文本
我一开始工作就会发布代码。
回复

使用道具 举报

57

主题

235

帖子

3

银币

后起之秀

Rank: 20Rank: 20Rank: 20Rank: 20

铜币
463
发表于 2006-11-1 06:34:11 | 显示全部楼层
显然,您可以根据自己的内心进行自定义内容。
它们是铺线,因此宽度可以根据您的需要。
  1. Public Sub TitleLine()
  2. Dim objPick As AcadEntity
  3. Dim varPnt As Variant
  4. Dim strPrmt As String
  5. Dim objUtil As AcadUtility
  6. Dim fPt As Variant
  7. Dim rpt As Variant
  8. Dim txtIns As Variant
  9. Dim lin As AcadLine
  10. Dim plin As AcadPolyline
  11. Dim plinpts(0 To 5) As Double
  12. Dim linst(0 To 2) As Double
  13. Dim linend(0 To 2) As Double
  14. Dim fx As Variant
  15. Dim rx As Variant
  16. Dim midx As Variant
  17. Dim modscl As Integer
  18. On Error GoTo ErrHandler
  19. strPrmt = vbCr & "Pick Title: "
  20. Set objUtil = ThisDrawing.Utility
  21. DoOver:
  22. objUtil.GetEntity objPick, varPnt, strPrmt
  23. If TypeOf objPick Is AcadText Then
  24.     objPick.GetBoundingBox fPt, rpt
  25.     txtIns = objPick.InsertionPoint
  26.     If rpt(0) - fPt(0) < 1.75 Then
  27.         midx = fPt(0) + (0.5 * (rpt(0) - fPt(0)))
  28.         fx = midx - 0.875
  29.         rx = midx + 0.875
  30.     Else
  31.         fx = fPt(0)
  32.         rx = rpt(0)
  33.     End If
  34.     If ThisDrawing.ActiveSpace = acPaperSpace Then
  35.         plinpts(0) = fx
  36.         plinpts(1) = txtIns(1) - 0.0625
  37.         plinpts(2) = 0
  38.         plinpts(3) = rx
  39.         plinpts(4) = txtIns(1) - 0.0625
  40.         plinpts(5) = 0
  41.         Set plin = ThisDrawing.PaperSpace.AddPolyline(plinpts)
  42.         plin.ConstantWidth = 0.03125
  43.         plin.layer = "0"
  44.         plin.color = acGreen
  45.         linst(0) = fx
  46.         linst(1) = plinpts(1) - 0.0625
  47.         linst(2) = 0
  48.         linend(0) = rx
  49.         linend(1) = linst(1)
  50.         linend(2) = 0
  51.         Set lin = ThisDrawing.PaperSpace.AddLine(linst, linend)
  52.         lin.layer = "0"
  53.         lin.color = acGreen
  54.     Else
  55.         modscl = objPick.height / 0.175
  56.         plinpts(0) = fx
  57.         plinpts(1) = txtIns(1) - (0.0625 * modscl)
  58.         plinpts(2) = 0
  59.         plinpts(3) = rx
  60.         plinpts(4) = txtIns(1) - (0.0625 * modscl)
  61.         plinpts(5) = 0
  62.         Set plin = ThisDrawing.ModelSpace.AddPolyline(plinpts)
  63.         plin.ConstantWidth = (0.03125 * modscl)
  64.         plin.layer = "0"
  65.         plin.color = acGreen
  66.         linst(0) = fx
  67.         linst(1) = plinpts(1) - (0.0625 * modscl)
  68.         linst(2) = 0
  69.         linend(0) = rx
  70.         linend(1) = linst(1)
  71.         linend(2) = 0
  72.         Set lin = ThisDrawing.ModelSpace.AddLine(linst, linend)
  73.         lin.layer = "0"
  74.         lin.color = acGreen
  75.     End If
  76. End If
  77. 'GoTo DoOver
  78. ExitNow:
  79. Exit Sub
  80. ErrHandler:
  81. Select Case Err.Number
  82.     Case -2147352567
  83.         Err.Clear
  84.         GoTo ExitNow
  85.     Case Else
  86.         Err.Clear
  87.         GoTo ExitNow
  88. End Select
  89. End Sub

回复

使用道具 举报

12

主题

102

帖子

5

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
156
发表于 2006-11-3 07:57:46 | 显示全部楼层
伟大的代码墨菲!
谢谢!
回复

使用道具 举报

57

主题

235

帖子

3

银币

后起之秀

Rank: 20Rank: 20Rank: 20Rank: 20

铜币
463
发表于 2006-11-6 05:11:26 | 显示全部楼层
没问题。这就是这个地方如此伟大的原因。
为什么要重做某人已经做过的事情?
回复

使用道具 举报

发表回复

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

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

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

GMT+8, 2025-7-6 21:06 , Processed in 0.944171 second(s), 60 queries .

© 2020-2025 乐筑天下

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