乐筑天下

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

关于sendcommand的小问题~~~~~

[复制链接]

6

主题

60

帖子

3

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
84
发表于 2003-12-8 15:43:00 | 显示全部楼层 |阅读模式
大虾们,偶请教一个关于sendcommand使用小问题
偶想使用sendcommand,然后使用stretch 可是后面的字符串都需要什么呢,偶试了上午只找到的头两个对象(见代码),后面的对角点,和基点不知道怎么弄了~~~~~
大家帮忙给试试,谢了,谢了~~~~~~
代码部分:
Option Explicit
Sub sTestStretch()
  Dim vPnt1, vPnt2, vPnt3
  vPnt1 = ThisDrawing.Utility.GetPoint
  vPnt2 = ThisDrawing.Utility.GetPoint(vPnt1)
  vPnt3 = ThisDrawing.Utility.GetPoint(vPnt2)
  
  Dim objLine1 As AcadLine
  Dim objLine2 As AcadLine
  Dim objCircle As AcadCircle
  
  Set objLine1 = ThisDrawing.ModelSpace.AddLine(vPnt1, vPnt2)
  Set objLine2 = ThisDrawing.ModelSpace.AddLine(vPnt2, vPnt3)
  Set objCircle = ThisDrawing.ModelSpace.AddCircle(vPnt2, 5)
  
  ThisDrawing.SendCommand "Stretch " & fGetDoubleEntTable(objLine1, vPnt1) & " " & _
                          fGetDoubleEntTable(objLine2, vPnt2) & " "
  
  
End Sub'函数名称:fGetDoubleEntTable
'功能描述:转换双元表的函数
'接收参数:objEntity双元表中的图元对象,vPnt点对象
'返回参数:双元表字符串
'更改人员及日期 Angus@20031027
Private Function fGetDoubleEntTable(objEntity As AcadEntity, vPnt As Variant) As String
  Dim entHandle As String
  entHandle = objEntity.Handle
  fGetDoubleEntTable = "(list(handent " & Chr(34) & entHandle & Chr(34) & _
                     ")(list " & Str(vPnt(0)) & Str(vPnt(1)) & Str(vPnt(2)) & "))"
End Function
'函数名称:faxPoint2lspPoint
'功能描述:转换点的函数
'接收参数:vPnt双元表中的点对象
'返回参数:点对象字符串
'更改人员及日期 Angus@20031027
Private Function faxPoint2lspPoint(vPnt As Variant) As String
  faxPoint2lspPoint = vPnt(0) & "," & vPnt(1) & "," & vPnt(2)
End Function
'函数名称:faxEnt2lspEnt
'功能描述:转换图元函数
'接收参数:objEntity双元表中的图元对象
'返回参数:图元对象字符串
'更改人员及日期 Angus@20031027
Private Function faxEnt2lspEnt(objEntity As AcadEntity) As String
  Dim entHandle As String
  entHandle = objEntity.Handle
  faxEnt2lspEnt = "(handent " & Chr(34) & entHandle & Chr(34) & ")"
End Function
加上图片~~~

ofd5tmbe505.jpg

ofd5tmbe505.jpg

回复

使用道具 举报

158

主题

2315

帖子

10

银币

顶梁支柱

Rank: 50Rank: 50

铜币
2951
发表于 2003-12-8 16:25:00 | 显示全部楼层
这样编程真是少见。
拉伸这种命令在程序中是很少有人用的,因为实际意义不大。如果真的编程,出错的机率也会很大,因为对于拉伸命令来说,拉伸窗口是最重要的。提示已经很清楚“以交叉窗口或交叉多边形选择要拉伸的对象...”,所以你不能以双元表的方式提供选择集,也不能以点的方式提供选择集,而应该给一个窗口的坐标给程序。这样就存在着窗口的大小问题了,所以必须使用选择集的CP选项,以圈交方式来选择对象,然后按所需要移动的点计算四周的几个点做为圈交点。这样才能保证选择对象的正确性。
对于基点和移动到的点,是由你自己定义的。
我不知你这个程序是为了实验SendCommand方法还是有其它用途,如果程序中需要的话,最好还是用编程的方法来修改对象的属性。
回复

使用道具 举报

6

主题

60

帖子

3

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
84
发表于 2003-12-8 16:34:00 | 显示全部楼层
其实我用sendcommand的目的是想简单的实现猴皮筋的效果~~~~即使是个示意性的东西,但是可能作为需求就足够了~~~~
谢谢老大的建议,谢谢提供的知识点~~~~
回复

使用道具 举报

发表回复

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

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

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

GMT+8, 2025-6-29 14:08 , Processed in 0.888565 second(s), 62 queries .

© 2020-2025 乐筑天下

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