乐筑天下

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

在矩形的中点创建多行文字

[复制链接]

170

主题

1424

帖子

8

银币

顶梁支柱

Rank: 50Rank: 50

铜币
2119
发表于 2007-5-30 07:51:20 | 显示全部楼层 |阅读模式
帮助如何在矩形的中点和相同角度添加多行文字?
回复

使用道具 举报

170

主题

1424

帖子

8

银币

顶梁支柱

Rank: 50Rank: 50

铜币
2119
发表于 2007-5-30 08:36:11 | 显示全部楼层
你能从矩形#039;s边界框,然后计算中点 我可以'我无法帮助您使用VBA,但前几天我在Vlisp中完成了几乎相同的编码任务。
回复

使用道具 举报

170

主题

1424

帖子

8

银币

顶梁支柱

Rank: 50Rank: 50

铜币
2119
发表于 2007-5-30 09:58:54 | 显示全部楼层

角度是3D还是2D?
回复

使用道具 举报

170

主题

1424

帖子

8

银币

顶梁支柱

Rank: 50Rank: 50

铜币
2119
发表于 2007-5-30 10:02:22 | 显示全部楼层
角度为2D
回复

使用道具 举报

170

主题

1424

帖子

8

银币

顶梁支柱

Rank: 50Rank: 50

铜币
2119
发表于 2007-5-30 10:16:35 | 显示全部楼层
描述矩形。大小都一样吗。
回复

使用道具 举报

170

主题

1424

帖子

8

银币

顶梁支柱

Rank: 50Rank: 50

铜币
2119
发表于 2007-5-30 10:20:05 | 显示全部楼层
这里是#039;这是我的一个程序中的一个小片段 但它使用常规文本 它允许用户选择两个点来创建矩形,并自动将文本添加到矩形的中心
  1. Option Explicit
  2. Public Sub DrawTextInRectangle()
  3.     Dim pnt1 As Variant, pnt2 As Variant
  4.     Dim ctr(0 To 2) As Double, ht As Double
  5.     Dim newText As AcadText
  6.     Dim strText As String
  7.     Dim intTextHeight As Integer
  8.    
  9.     strText = "THIS SPACE FOR RENT"
  10.    
  11.     intTextHeight = 10
  12.     If getPoints1(pnt1, pnt2) = 0 Then
  13.         Rectangle pnt1, pnt2
  14.         ' Now add text at the midpoint of the rectangle...
  15.         ctr(0) = (pnt1(0) + pnt2(0)) / 2
  16.         ctr(1) = (pnt1(1) + pnt2(1)) / 2
  17.         ctr(2) = (pnt1(2) + pnt2(2)) / 2
  18.         ht = Abs(pnt1(1) - pnt2(1)) / 2
  19.         
  20.         Set newText = ThisDrawing.ModelSpace.AddText(UCase(strText), ctr, intTextHeight)
  21.         newText.Alignment = 4
  22.         newText.TextAlignmentPoint = ctr
  23.         newText.StyleName = "Standard"
  24.         newText.Update
  25.     End If
  26. End Sub
  27. ' From Frank Oquendo
  28. Private Function Rectangle(Point1, Point2) As AcadLWPolyline
  29.     Dim vertices(0 To 7) As Double, pl As AcadLWPolyline
  30.     vertices(0) = CDbl(Point1(0)): vertices(1) = CDbl(Point1(1))
  31.     vertices(2) = CDbl(Point2(0)): vertices(3) = CDbl(Point1(1))
  32.     vertices(4) = CDbl(Point2(0)): vertices(5) = CDbl(Point2(1))
  33.     vertices(6) = CDbl(Point1(0)): vertices(7) = CDbl(Point2(1))
  34.     Set pl = ThisDrawing.ModelSpace.AddLightWeightPolyline(vertices)
  35.     pl.Closed = True
  36.     Set Rectangle = pl
  37. End Function
  38. Private Function getPoints1(pt1 As Variant, pt2 As Variant) As Integer
  39. ' This sub returns two points, or an error flag if cancelled
  40.    On Error Resume Next
  41.    pt1 = ThisDrawing.Utility.GetPoint(, "Specify first corner:")
  42.    If Err Then
  43.       getPoints1 = -1
  44.       Exit Function
  45.    End If
  46.    pt2 = ThisDrawing.Utility.GetCorner(pt1, "Specify opposite corner:")
  47.    If Err Then
  48.       getPoints1 = -1
  49.       Exit Function
  50.    End If
  51.    On Error GoTo 0
  52. End Function

回复

使用道具 举报

170

主题

1424

帖子

8

银币

顶梁支柱

Rank: 50Rank: 50

铜币
2119
发表于 2007-5-30 10:25:37 | 显示全部楼层
贴上
回复

使用道具 举报

170

主题

1424

帖子

8

银币

顶梁支柱

Rank: 50Rank: 50

铜币
2119
发表于 2007-5-30 10:33:07 | 显示全部楼层
即#039;s、 嗯……不是矩形 关闭,但它's不是矩形
听起来/看起来你需要找到闭合多段线的质心??
回复

使用道具 举报

170

主题

1424

帖子

8

银币

顶梁支柱

Rank: 50Rank: 50

铜币
2119
发表于 2007-5-30 10:50:54 | 显示全部楼层
这可能是一个很容易做到的事情,并将帮助每个人,如果你试图先编码一些东西,你已经做了什么代码,到目前为止
谢谢。
回复

使用道具 举报

170

主题

1424

帖子

8

银币

顶梁支柱

Rank: 50Rank: 50

铜币
2119
发表于 2007-5-30 10:59:53 | 显示全部楼层
在我的绘图中,我有一个不同的矩形,我得到一些点,并创建了一条闭合的多段线&nbsp 将LastObj视为身份&nbsp Dim objLWPolyline(0)作为acadlwpolyleine&nbsp Dim minExt作为变体&nbsp Dim maxExt作为变体&nbsp 将MTEXTEXT设置为AcadMText&nbsp 将拐角(0到2)变暗为双&nbsp
&nbsp Dim Pt作为变体&nbsp&nbsp&nbsp varArea作为字符串&nbsp&nbsp&nbsp pstr作为字符串&nbsp&nbsp&nbsp SysVarName作为字符串&nbsp&nbsp&nbsp sysVarName2作为字符串&nbsp&nbsp&nbsp VarData作为变体&nbsp&nbsp&nbsp intData为双精度&nbsp&nbsp&nbsp textObj作为AcadText,_&nbsp&nbsp&nbsp 文本作为变体&nbsp&nbsp&nbsp 高度作为变量&nbsp&nbsp&nbsp 消息作为字符串&nbsp&nbsp&nbsp Varmimpt作为变体&nbsp&nbsp&nbsp varMaxPt作为变体&nbsp SysVarName="DIMSCALE“
&nbsp sysVarName2="面积“
&nbsp 使用此图纸&nbsp&nbsp&nbsp&nbsp。设置变量;OSMODE;,0&nbsp&nbsp&nbsp&nbsp。设置变量;CMDECHO“;,0&nbsp&nbsp&nbsp&nbsp'' Tony Tanzillo的多getpoint方法&nbsp&nbsp&nbsp 消息=vbCrLf&amp&引用;选择内部点
&nbsp&nbsp&nbsp Do&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp 出错时继续下一步&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp Pt=.Utility。获取点(,Msg)
&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp 如果出现错误,则&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp 犯错误清除&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp 退出Do&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp 如果结束&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp 错误转到0时&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp pstr=替换(CStr(Pt(0)),“&quot&QUOTE")&amp&quot&引用&amp_
&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp 替换(CStr(Pt(1)),“&quot&QUOTE")
&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp 。SendCommand Chr(3)&Chr(3)&amp&QUOTE_-“边界”&vbCr&pstr&vbCr&vbCr&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp
&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp 设置LastObj=.ModelSpace.Item.ModelSpace.Count-1&nbsp&nbsp&nbsp&nbsp 如果LastObj的类型是AcadLWPolyline,则&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp 设置objLWPolyline(0)=LastObj&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp objLWPolyline(0)。GetBoundingBox varMinPt,varMaxPt&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp objLWPolyline(0)。删除&nbsp&nbsp&nbsp&nbsp&nbsp 如果结束&nbsp&nbsp&nbsp&nbsp&nbsp 转角(0)=varMinPt(0):转角(1)=varMaxPt(1):转角(2)=0&nbsp&nbsp&nbsp&nbsp&nbsp 高度=2000&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp
&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp 设置MTEXPOBJ=.ModelSpace。AddMText(角点,10,“50”)
&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp MTEXPOBJ。高度=高度&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp MTEXPOBJ。旋转MTEXPOBJ。插入点,lineObj。角度&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp MTEXPOBJ。移动MTextObj。插入点,lineObj。终点&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp 设置textObj=.ModelSpace。AddText(varArea,Pt,Height)
&039&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp text目标更新;埃克索布。更新&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp 消息=vbCrLf&amp&引用;下一个内部点或回车退出:
&nbsp&nbsp&nbsp 循环&nbsp&nbsp&nbsp 错误转到0时&nbsp&nbsp&nbsp&nbsp。设置变量;OSMODE;,703&nbsp&nbsp&nbsp&nbsp。设置变量;CMDECHO“;,1&nbsp 以结尾&nbsp MsgBox“;“完成”
结束Sub
回复

使用道具 举报

发表回复

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

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

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

GMT+8, 2025-7-7 23:01 , Processed in 0.864366 second(s), 73 queries .

© 2020-2025 乐筑天下

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