乐筑天下

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

[原创]仿Stretch命令的几何变形

[复制链接]

120

主题

326

帖子

7

银币

中流砥柱

Rank: 25

铜币
806
发表于 2008-6-21 13:23:00 | 显示全部楼层 |阅读模式

kdsd2m2wd55.jpg

kdsd2m2wd55.jpg


在图示中有一四边形ABCD,如果用Stretch命令,可得AB''C'D
编程要求原线段是AB=10,当AB=20时,
AD和BC线段不变,四边形变形后几何形状如AB‘C’D
解决方法如下,首先将获取四边形的实体数据
"m1","m2","m3","m4","m5","m6","m7","m8","m9","m10","m11","m12"
"AcDbLine",2129989240,416.61467,431.12093,960.02511,614.21426,0
"AcDbLine",2129989264,960.02511,614.21426,785.28137,810.08154,0
"AcDbLine",2129989272,416.61467,431.12093,320.71871,859.04836,0
"AcDbLine",2129989280,320.71871,859.04836,785.28137,810.08154,0
获取数据的源程序如下。
  1.   Dim LineData As AcadLine, ArcData As AcadArc
  2.   Close #1
  3.   Open "D:\ls.txt" For Output As #1
  4.   
  5.   Write #1, "m1", "m2", "m3", "m4", "m5", "m6", "m7", "m8", "m9", "m10", "m11", "m12"
  6.   
  7.   Dim Ent As AcadEntity
  8.   
  9.   For Each Ent In ThisDrawing.ModelSpace
  10.     m1 = Ent.ObjectName
  11.     m2 = Ent.ObjectID
  12.     Select Case Ent.ObjectName
  13.       Case "AcDbLine"
  14.         Set LineData = Ent
  15.         With LineData
  16.           m3 = Round(.StartPoint(0), 5)
  17.           m4 = Round(.StartPoint(1), 5)
  18.           m5 = Round(.StartPoint(2), 5)
  19.           m6 = Round(.EndPoint(0), 5)
  20.           m7 = Round(.EndPoint(1), 5)
  21.           m8 = Round(.EndPoint(2), 5)
  22.          
  23.         End With
  24.     End Select
  25.     Write #1, m1, m2, m3, m4, m6, m7, m8
  26.    
  27.   Next Ent
  28.   Ent.GetBoundingBox
  29.   Close #1
以下再做各线段相交点判断程序设计。[原创]仿Stretch命令的几何变形

lm2dxy24lxp.jpg

lm2dxy24lxp.jpg

回复

使用道具 举报

0

主题

16

帖子

8

银币

初来乍到

Rank: 1

铜币
16
发表于 2008-6-25 11:54:00 | 显示全部楼层
感谢楼主提供,谢谢,正用的着
回复

使用道具 举报

发表回复

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

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

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

GMT+8, 2025-7-4 12:17 , Processed in 0.490447 second(s), 59 queries .

© 2020-2025 乐筑天下

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