明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 2034|回复: 2

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

[复制链接]
发表于 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

加上图片~~~

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

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

我不知你这个程序是为了实验SendCommand方法还是有其它用途,如果程序中需要的话,最好还是用编程的方法来修改对象的属性。
 楼主| 发表于 2003-12-8 16:34:00 | 显示全部楼层
其实我用sendcommand的目的是想简单的实现猴皮筋的效果~~~~即使是个示意性的东西,但是可能作为需求就足够了~~~~

谢谢老大的建议,谢谢提供的知识点~~~~
您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|CAD论坛|CAD教程|CAD下载|联系我们|关于明经|明经通道 ( 粤ICP备05003914号 )  
©2000-2023 明经通道 版权所有 本站代码,在未取得本站及作者授权的情况下,不得用于商业用途

GMT+8, 2024-11-28 10:38 , Processed in 0.178380 second(s), 25 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表