找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 722|回复: 3

[求助] 求大神修改这段代码。点取标注封闭面积怎么才能让他在非封闭的时候也能求出面积

[复制链接]
发表于 2019-3-20 09:15:32 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

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

×
QQ截图20190319153839.png 求大神修改这段代码。点取标注封闭面积的时候怎么才能让他在非封闭的时候也能求出面积(如右侧这个图形,非封闭的)




(defun c:dqbzmj(/ pt pt1 en aa)
  (cmdla0)
  (prompt"请输入字高:")
  (setq hgt(getstring))
  (setq pt (getpoint "\n选取封闭域内一点: "))
  (while pt
    (setq pt1 pt)
    (mkla"封闭域辅助线"8)
    (command "bpoly" pt "")
    (setq en (entlast))
    (if        (/= en nil)
      (progn
        (command "area" "o" en)
        (setq aa (getvar "area"))
        (redraw en 4);1标准2空白3高亮4低亮
        ;;;句可以显示面积数(单位平方米)
        ;;;如果是总图或测量专业,画图单位为米时,下句中1000000.0应改为1.0
        ;(alert (strcat "面积=" (rtos (/ aa 1000000.0) 2 2)))
      )
    )
    ;(entdel en);;;此句可以删除“封闭域辅助线”
    (mkla"面积标注"4)
    ;;;如果是总图或测量专业,画图单位为米时,下句中1000000.0应改为1.0
    (command"text""mc" pt1 hgt "0" (rtos (/ aa 1.0) 2 2))
    (setq pt (getpoint "\n选取封闭域内一点: "))
  )
  ;(prin1)
  (cmdla1)

)

;;;For  YWJ
;;; 保存原有系统变量,设置程序运行时的系统变量
(Defun cmdla0 ()
  (Setq        cmdech (Getvar "Cmdecho")
        oom    (Getvar "Orthomode")
        osm    (Getvar "Osmode")
        la     (Getvar "Clayer")
  )
  (Setvar "Cmdecho" 0)
  (Setvar "Regenmode" 0)
)

;;; 建图层: (mala "层名" 颜色号)
(Defun MKLA (a b)
  (If (= (Tblsearch "layer" a) nil)
    (Command "layer" "m" a "c" b a "")
    (Command "layer" "t" a "s" a "c" b a "")
  )
)

;;; 恢复原有系统变量
(Defun cmdla1 ();(/ cmdech LA oom osm)
  (Setvar "Cmdecho" cmdech)
  (Setvar "Clayer" LA)
  (Setvar "Orthomode" oom)
  (Setvar "Osmode" osm)
  (setvar "regenmode" 1)
  (Terpri)
  (Princ)
)


论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!

已领礼包: 40个

财富等级: 招财进宝

发表于 2019-3-20 09:39:35 | 显示全部楼层
XDRX API 强大的函数 xdrx_geom_bpoly

【拓扑边界】带容差支持的BPOLY
11 个回复 - 460 次查看
XDRX API 2018.0328+版本,增强了几个求拓扑边界函数的功能,下面介绍支持带容差的构建边界函数 xdrx_geom_bpoly,设置容差,通过设置系统变量 "boundaryextendlength"的值达到,设置系统变量的函数是 xdrx_setvar ...
2018-4-5 20:01 - newer - XDRX_API应用


                               
登录/注册后可看大图
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2019-3-20 09:55:05 | 显示全部楼层
newer 发表于 2019-3-20 09:39
XDRX API 强大的函数 xdrx_geom_bpoly

【拓扑边界】带容差支持的BPOLY11 个回复 - 460 次查看XDRX API 2 ...

大神 请问怎么结合到我发的那个程序里面 我不想要填充面积 想要直接点选就标注面积  谢谢大神!

点评

xdrx_geom_bpoly 帮你生成边界线了, 填充这些是后续处理,你不要填充 直接算出边界线的面积标到图里面就可以了。  详情 回复 发表于 2019-3-20 10:41
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 40个

财富等级: 招财进宝

发表于 2019-3-20 10:41:23 | 显示全部楼层
yjpyjp 发表于 2019-3-20 09:55
大神 请问怎么结合到我发的那个程序里面 我不想要填充面积 想要直接点选就标注面积  谢谢大神!

xdrx_geom_bpoly 帮你生成边界线了, 填充这些是后续处理,你不要填充
直接算出边界线的面积标到图里面就可以了。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

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

本版积分规则

QQ|申请友链|Archiver|手机版|小黑屋|辽公网安备|晓东CAD家园 ( 辽ICP备15016793号 )

GMT+8, 2024-3-29 06:01 , Processed in 0.376050 second(s), 41 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

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