乐筑天下

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

(求助)有关周长的问题,帮忙看一下代码

[复制链接]

6

主题

11

帖子

1

银币

初来乍到

Rank: 1

铜币
35
发表于 2006-3-27 16:03:00 | 显示全部楼层 |阅读模式
想求多个面域的累加周长,怎么做?有一段代码是求多个面域的累加面积的,程序正确.我把其中的area必成list ,想求周长,但运行时出错.
求累加面积的正确代码:
&nbspublic Sub carea()
  On Error GoTo ErrorHandler
  Dim pt As Variant
  Dim spt As String
  Dim i As Integer
  Dim zarea As Double
  zarea = 0
  For i = 0 To 500
   pt = ThisDrawing.Utility.GetPoint(, vbCrLf & "输入要计算面积对象的内部一点:")
   spt = pt(0) & "," & pt(1)
   With ThisDrawing
     SendCommand "-boundary "
     SendCommand spt & " "
     SendCommand " "
     SendCommand "area "
     SendCommand "o "
     SendCommand "last "
     SendCommand "erase "
     SendCommand "last "
     SendCommand " "
   End With
   zarea = zarea + ThisDrawing.GetVariable("AREA")
   ThisDrawing.Utility.Prompt vbCrLf & "选定对象的总面积为: " & zarea & vbCrLf
  Next
ErrorHandler:
  Exit Sub
End Sub
我改后的代码:
Public Sub clist()
  Dim pt As Variant
  Dim spt As String
  Dim i As Integer
  Dim zlist As Double
  zlist = 0
  For i = 0 To ThisDrawing.ModelSpace.Count
   pt = ThisDrawing.Utility.GetPoint(, vbCrLf & "输入要计算周长对象的内部一点:")
   spt = pt(0) & "," & pt(1)
   With ThisDrawing
     SendCommand "-boundary "
     SendCommand spt & " "
     SendCommand " "
     SendCommand "list"
     SendCommand "last "
     SendCommand "erase "
     SendCommand "last "
     SendCommand " "
   End With
   zlist = ThisDrawing.GetVariable("list")
   ThisDrawing.Utility.Prompt vbCrLf & "选定对象的总面积为: " & zlist
  Next
ErrorHandler:
  Exit Sub
End Sub

请大家多多指教,不胜感激.
回复

使用道具 举报

72

主题

2726

帖子

9

银币

社区元老

Rank: 75Rank: 75Rank: 75

铜币
3014
发表于 2006-3-27 16:42:00 | 显示全部楼层
  1. Public Sub clist()
  2.     Dim pt As Variant
  3.     Dim spt As String
  4.     Dim i As Integer
  5.     pt = ThisDrawing.Utility.getpoint(, vbCrLf & "输入要计算周长对象的内部一点:")
  6.     spt = pt(0) & "," & pt(1)
  7.     ThisDrawing.SendCommand "-boundary" & vbCr & "a" & vbCr & "o" & vbCr & "r" & vbCr & vbCr & spt & vbCr & vbCr
  8.     If (ThisDrawing.GetVariable("LASTPROMPT")  "已创建 0 个面域。") Then
  9.         MsgBox ThisDrawing.ModelSpace(ThisDrawing.ModelSpace.Count - 1).Perimeter
  10.         ThisDrawing.ModelSpace(ThisDrawing.ModelSpace.Count - 1).Delete
  11.     End If
  12. End Sub
回复

使用道具 举报

6

主题

11

帖子

1

银币

初来乍到

Rank: 1

铜币
35
发表于 2006-3-27 22:11:00 | 显示全部楼层
我试过了,所有的内部面域都好用,但为什么最外的那个面域求得的结果不对呢,它的周长应该是最大的呀,可结果却是最小的
回复

使用道具 举报

6

主题

11

帖子

1

银币

初来乍到

Rank: 1

铜币
35
发表于 2006-3-27 22:13:00 | 显示全部楼层
请点击此处下载

请先注册会员后在进行下载

已注册会员,请先登录后下载

文件名称:znkailuehgp 
下载次数:0  文件大小:38.84 KB  售价:2银币 [记录]
下载权限: 不限 以上或 Vip会员   [开通Vip]   [签到领银币]  [免费赚银币]

回复

使用道具 举报

发表回复

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

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

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

GMT+8, 2025-7-6 06:41 , Processed in 0.659621 second(s), 65 queries .

© 2020-2025 乐筑天下

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