乐筑天下

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

使用ortho获得2个点

[复制链接]

2

主题

5

帖子

1

银币

初来乍到

Rank: 1

铜币
13
发表于 2009-2-3 16:19:38 | 显示全部楼层 |阅读模式
您好,
有没有办法使用ThisDrawing.Utility.GetPoint强制用户选择形成水平或垂直矢量的2个点? 就像正交在画线时一样?
谢谢!
   
  

本帖以下内容被隐藏保护;需要你回复后,才能看到!

游客,如果您要查看本帖隐藏内容请回复
回复

使用道具 举报

86

主题

744

帖子

6

银币

顶梁支柱

Rank: 50Rank: 50

铜币
1092
发表于 2009-2-3 16:38:13 | 显示全部楼层
是,也不是。
这都是我想出来的,所以不是真的,但应该能让人理解。
  1. sub test()
  2. dim dblPtOne(0 to 2) as double
  3. dim dblPtTwo(0 to 2) as double
  4. dim dblX as double
  5. dim dblY as double
  6. dblptone = thisdrawing.utility.getpoint(,"First point")
  7. dblpttwo = thisdrawing.utility.getpoint(,"Second point")
  8. dblx = dblptone(0) - dblpttwo(0)
  9. if dblx  >在这里
  10. [code]Sub grdraw_test()
  11.     Dim pt1, pt2
  12.     Dim VL As Object
  13.     Dim VLF As Object
  14.     Dim VLO As Object
  15.     Dim drawList As String
  16.    
  17.     Set VL = GetInterfaceObject("VL.Application.16") 'or .16 for 2004+
  18.     Set VLF = VL.ActiveDocument.Functions
  19.    
  20.     On Error GoTo Resume_here 'this is just a quick way of handling an "enter to end the point selection process. A more robust handler shoud be used
  21.    
  22.     pt1 = ThisDrawing.Utility.GetPoint(, vbCr & "Start point: ")
  23.     pt2 = ThisDrawing.Utility.GetPoint(pt1, vbCr & "Next point: ")
  24.     drawList = "(grdraw " & pt_list(pt1) & " " & pt_list(pt2) & " 7)"
  25.     Set VLO = VLF.Item("read").funcall(drawList)
  26.     VLF.Item("eval").funcall VLO
  27.     pt1 = pt2
  28.    
  29. Resume_here:
  30.     'do stuff for leader
  31.     Set VLO = VLF.Item("read").funcall("(redraw)")
  32.     VLF.Item("eval").funcall VLO
  33. End Sub
  34. Private Function pt_list(pt) As String
  35.     Dim newStr As String
  36.     newStr = "'(" & pt(0) & " " & pt(1) & ")"
  37.     pt_list = newStr
  38. End Function
回复

使用道具 举报

86

主题

744

帖子

6

银币

顶梁支柱

Rank: 50Rank: 50

铜币
1092
发表于 2009-2-3 16:45:02 | 显示全部楼层
很酷的炫耀
回复

使用道具 举报

5

主题

65

帖子

4

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
93
发表于 2009-2-3 16:46:00 | 显示全部楼层
嫉妒的小婊子!
回复

使用道具 举报

1

主题

1069

帖子

1050

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
69
发表于 2009-2-3 16:46:58 | 显示全部楼层
除了Bob的代码外,您还可以在例程期间打开“ortho”,然后在退出时重置状态。
回复

使用道具 举报

2

主题

5

帖子

1

银币

初来乍到

Rank: 1

铜币
13
发表于 2009-2-3 16:47:13 | 显示全部楼层
为实用程序设置位32。初始化输入:
  1. ThisDrawing.Utility.InitializeUserInput 32
  2. p2=ThisDrawing.Utility.GetPoint (p1,"Second point:")

~'J'~
回复

使用道具 举报

7

主题

42

帖子

1

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
70
发表于 2009-2-3 18:46:58 | 显示全部楼层
很棒的东西!
谢谢各位!
回复

使用道具 举报

170

主题

1424

帖子

8

银币

顶梁支柱

Rank: 50Rank: 50

铜币
2119
发表于 2009-2-4 18:26:48 | 显示全部楼层
我错过什么了吗?我在做任何工作时看到的仅有两行代码(错误陷阱除外)是
pt1=ThisDrawing.Utility。GetPoint(,vbCr&“起点:”)
pt2=ThisDrawing.Utility。GetPoint(pt1,vbCr&“下一点:”)
我看不到lisp在这里做任何事情
回复

使用道具 举报

86

主题

744

帖子

6

银币

顶梁支柱

Rank: 50Rank: 50

铜币
1092
发表于 2009-2-5 18:58:34 | 显示全部楼层
天啊,如果凯瑞看到这个。
回复

使用道具 举报

发表回复

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

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

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

GMT+8, 2025-8-8 05:59 , Processed in 4.307379 second(s), 70 queries .

© 2020-2025 乐筑天下

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