乐筑天下

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

[求助]如何求出两条闭合多义线的重叠部分的面积?

[复制链接]

1

主题

2

帖子

1

银币

初来乍到

Rank: 1

铜币
6
发表于 2004-7-28 13:35:00 | 显示全部楼层 |阅读模式
我想用LISP程序求出两条闭合LWPOLYLILNE的重迭部分的面积
回复

使用道具 举报

19

主题

79

帖子

6

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
155
发表于 2004-7-28 13:43:00 | 显示全部楼层
给您点东西,参考一下。
请点击此处下载

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

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

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

回复

使用道具 举报

74

主题

1603

帖子

24

银币

顶梁支柱

Rank: 50Rank: 50

铜币
1906
发表于 2004-7-28 13:50:00 | 显示全部楼层

看下帖:
dispbbs.asp?boardID=2&ID=24021&page=1
两条多义线并不需要闭合,只要标注部分闭合就可以,注意:画图比例1:1,面积为㎡。
回复

使用道具 举报

16

主题

909

帖子

8

银币

中流砥柱

Rank: 25

铜币
973
发表于 2004-7-28 15:04:00 | 显示全部楼层
;;;If neither of        the two LWpolyline        is self-intersected, then you can use ;;;        the codes below:
(defun c:tt         (/ ss1 ss2 a reg1 reg2)
         (vl-load-com)
         (princ "\nSelect first polyline: ")
         (setq ss1 (ssget ":s" '((0 . "LWPOLYLINE"))))
         (if ss1 (redraw (ssname ss1 0) 3))
         (princ "\nSelect second polyline: ")
         (setq ss2 (ssget ":s" '((0 . "LWPOLYLINE"))))
         (if (and ss1 ss2)
                         (progn
                                         (command "copy" ss1 ss2 "" '(0 0 0) '(0 0 0))
                                         (if (vl-cmdf "region" ss1 "")
                                                         (setq reg1 (vlax-ename->vla-object (entlast))))
                                         (if (vl-cmdf "region" ss2 "")
                                                         (setq reg2 (vlax-ename->vla-object (entlast))))
                                         (vla-boolean reg1 acIntersection reg2)
                                         (if (vlax-erased-p reg2)
                                                         (progn
                                                                         (setq a (vla-get-area reg1))
                                                                         (vla-erase reg1)
                                                         )
                                                         (setq a 0)
                                                         )
                                         )
                         )
                 (princ "\nArea = ")
                 (princ a)
                 (princ)
         )
回复

使用道具 举报

1

主题

2

帖子

1

银币

初来乍到

Rank: 1

铜币
6
发表于 2004-7-28 19:42:00 | 显示全部楼层
谢谢alin,你的方法正是我想要的
可是此法有限制,即当两条多义线有许多交叉点时,
(vla-boolean reg1 acIntersection reg2)会产生错误
命令行显示如下:
The Boolean operation on regions failed
Modeling operation Error
system inconsistency processing edge coincidence
回复

使用道具 举报

16

主题

909

帖子

8

银币

中流砥柱

Rank: 25

铜币
973
发表于 2004-7-28 23:06:00 | 显示全部楼层
你把含有问题多义线的图贴上来吧。我没有遇到这种情况。注意我的程序要求两条多义线均不能自相交,否则生成不了region
回复

使用道具 举报

74

主题

1603

帖子

24

银币

顶梁支柱

Rank: 50Rank: 50

铜币
1906
发表于 2004-7-29 01:39:00 | 显示全部楼层
认真看看3楼说的!
估计更简单实用!
回复

使用道具 举报

发表回复

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

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

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

GMT+8, 2025-8-19 06:13 , Processed in 3.131287 second(s), 72 queries .

© 2020-2025 乐筑天下

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