乐筑天下

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

更新行

[复制链接]

154

主题

1274

帖子

8

银币

顶梁支柱

Rank: 50Rank: 50

铜币
1936
发表于 2007-9-11 07:03:32 | 显示全部楼层 |阅读模式
我有一个vba模块,允许用户选择一条线。然后交换端点以反转线#039;s方向。但是,当我更新线时,图形窗口中的方向不会反转,尽管在VBA Manager中是这样;我加了一条线来改变颜色,当这条线更新时就可以了 与I'我也在努力
有什么想法吗?
回复

使用道具 举报

170

主题

1424

帖子

8

银币

顶梁支柱

Rank: 50Rank: 50

铜币
2119
发表于 2007-9-11 07:53:06 | 显示全部楼层
你能发布一些代码吗?
回复

使用道具 举报

170

主题

1424

帖子

8

银币

顶梁支柱

Rank: 50Rank: 50

铜币
2119
发表于 2007-9-11 09:49:05 | 显示全部楼层
看起来是这样的:
  1. Attribute VB_Name = "RichtungAendern"
  2. Option Explicit
  3. 'Attribute VB_Name = "Richtung Ändern"
  4. 'Reverse line direction - German Version
  5. Sub RichtungAendern()
  6.     Dim objLineEnt As AcadEntity
  7.     Dim txtEnt As AcadText
  8.     Dim linEnt As AcadLine
  9.     Dim orgLineAngle As Double
  10.     Dim varSelPoint As Variant
  11.     Dim linAngle As Double
  12.     Dim PI As Double
  13.     Dim varLineStart As Variant
  14.     Dim varLineEnd As Variant
  15.     Dim varTemp As Variant
  16.     'initialise variables
  17.     varSelPoint = 0#
  18.     'get a line
  19.     Do
  20.         On Error Resume Next
  21. START:
  22.         ThisDrawing.Utility.GetEntity objLineEnt, varSelPoint, "eine Linie wählen"
  23.             Dim entName As String
  24.             entName = objLineEnt.ObjectName
  25.         
  26.         'only process if a line was selected
  27.         If objLineEnt.ObjectName = "AcDbLine" Then
  28.             varLineStart = objLineEnt.StartPoint
  29.             varLineEnd = objLineEnt.EndPoint
  30.             varTemp = varLineStart
  31.             varLineStart = varLineEnd
  32.             varLineEnd = varTemp
  33.             objLineEnt.color = acRed
  34.             objLineEnt.Update
  35.         Else    'inform user that no line was selected
  36.             MsgBox ("das war keine Linie!" & vbCr & "Bitte eine Linie wählen")
  37.             GoTo START
  38.         End If
  39.     Loop    'go back and get another line
  40. End Sub

_____u_ _NU_NU _ _它将线条颜色更新为红色,但不交换端点。
回复

使用道具 举报

170

主题

1424

帖子

8

银币

顶梁支柱

Rank: 50Rank: 50

铜币
2119
发表于 2007-9-11 10:02:16 | 显示全部楼层

  1.             varLineStart = objLineEnt.StartPoint
  2.             varLineEnd = objLineEnt.EndPoint
  3.             objLineEnt.StartPoint = varLineEnd
  4.             objLineEnt.EndPoint = varLineStart
  5.             objLineEnt.color = acRed
  6.             objLineEnt.Update
回复

使用道具 举报

170

主题

1424

帖子

8

银币

顶梁支柱

Rank: 50Rank: 50

铜币
2119
发表于 2007-9-11 10:41:55 | 显示全部楼层
嗨,基思,就是这样 谢谢
I'现在我们来试试折线。
回复

使用道具 举报

170

主题

1424

帖子

8

银币

顶梁支柱

Rank: 50Rank: 50

铜币
2119
发表于 2007-10-15 13:45:07 | 显示全部楼层
普林甚至不可能实现同样的功能 对于基准线,您必须获取坐标列表,反转列表,绘制新基准线并删除旧基准线 对于ACADLWPolylines和ACADPolyline,它也必须不同 以及#039;s假设所有选定的多段线都由直线段组成 如果它有任何曲线,乐趣将真正开始。
回复

使用道具 举报

170

主题

1424

帖子

8

银币

顶梁支柱

Rank: 50Rank: 50

铜币
2119
发表于 2007-10-15 19:54:46 | 显示全部楼层
鲍勃,很高兴再次收到你的来信
现在我知道你的说法对acad 2000是正确的,但在2008年试试这个
  1. Sub SwapEnds(P As AcadLWPolyline)
  2.     Dim P As AcadLWPolyline
  3.     Dim C1, C2
  4.     C1 = P.Coordinate(1)
  5.     C2 = P.Coordinate(0)
  6.     P.Coordinate(0) = C1
  7.     P.Coordinate(1) = C2
  8. End Sub
它在一条直线上交换端点
回复

使用道具 举报

发表回复

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

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

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

GMT+8, 2025-7-5 22:26 , Processed in 1.217596 second(s), 77 queries .

© 2020-2025 乐筑天下

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