乐筑天下

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

同时获取距离和GetPoint

[复制链接]

18

主题

55

帖子

1

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
127
发表于 2006-4-1 01:01:39 | 显示全部楼层 |阅读模式
根据我对GetDistance实用程序的理解,您无法获得两个已知点的距离。
即。
CurDist = GetDistance(PointA,PointB)
显然你只能使用一个已知点,你必须选择下一个点或输入一些东西。
选择第二点并不是什么大不了的事情,除了我必须将同一点用于2个目的(获取距离并获得插入点)。
那么,有没有办法在一步之内利用GetDistance和Getpoint实用程序?
我希望这是有道理的...

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

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

使用道具 举报

0

主题

2

帖子

1

银币

初来乍到

Rank: 1

铜币
2
发表于 2006-4-1 04:34:59 | 显示全部楼层
嗨,凯文
,你可以做这样的事情:
  1. Public Function MeGetPointOrDistance() As Variant
  2.   Dim aFstPnt As Variant
  3.   Dim aNxtPnt As Variant
  4.   On Error Resume Next
  5.   
  6.   With ThisDrawing.Utility
  7.     aFstPnt = .GetPoint(, vbCrLf & "Select first point: ")
  8.     If Err.Number  0 Then
  9.       Err.Clear
  10.       Exit Function
  11.     End If
  12.     aNxtPnt = .GetPoint(aFstPnt, vbCrLf & "Select next point/enter distance  : ")
  13.     If Err.Number  0 Then
  14.       Err.Clear
  15.       TestPnt = aFstPnt
  16.     Else
  17.       TestPnt = Sqr(((aFstPnt(0) - aNxtPnt(0)) ^ 2) + _
  18.                     ((aFstPnt(1) - aNxtPnt(1)) ^ 2) + _
  19.                     ((aFstPnt(2) - aNxtPnt(2)) ^ 2))
  20.     End If
  21.   End With
  22.   
  23. End Function
  24. Use:
  25. Dim vRetVal As Variant
  26. vRetVal = MeGetPointOrDistance()
  27. Select Case VarType(RetVal)
  28.   Case vbEmpty
  29.     'User pressed enter - do nothing
  30.   Case vbDouble
  31.     'User had enter a distance
  32.   Case Else
  33.     'User had enter a point
  34. End Select

回复

使用道具 举报

170

主题

1424

帖子

8

银币

顶梁支柱

Rank: 50Rank: 50

铜币
2119
发表于 2006-4-1 10:44:07 | 显示全部楼层
不确定如果我理解您的问题,但选择的最后一个点存储在“lastpoint”系统变量中,或者如果两个点设置为变量,则该变量可用于其他任何操作。
  1. (defun C:DS (/ A B)
  2.               (PROMPT (STRCAT(RTOS (CAR(SETQ A(GETPOINT "START\t")))3 10)
  3.                              "   "(RTOS (CADR A)3 10)
  4.                              "   "(RTOS (CADDR A)3 10)"\n"
  5.               ))
  6.               (PROMPT(RTOS (DISTANCE A (SETQ B(GETPOINT A "TO\n") ))3 10))
  7.               (PROMPT(STRCAT "\tX="(RTOS (SETQ DX(CAR(MAPCAR '- B A)))3 10)"\tor X="(RTOS (SETQ DX(CAR(MAPCAR '- B A)))2 10)
  8.                    "\tY="  (RTOS (SETQ DY(CADR(MAPCAR '- B A)))3 10)"\tor Y="  (RTOS (SETQ DY(CADR(MAPCAR '- B A)))2 10)
  9.                    "\tZ="  (RTOS (SETQ DZ(CADDR(MAPCAR '- B A)))3 10)
  10.                      )) (PRINC (DISTANCE A B))
  11. (command "insert" (getstring "blockname") "s" 1 "r" 0 B)
  12. (terpri)
  13.      )
回复

使用道具 举报

发表回复

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

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

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

GMT+8, 2025-7-6 05:54 , Processed in 1.252415 second(s), 58 queries .

© 2020-2025 乐筑天下

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