明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 1175|回复: 3

[提问] [已解答] 为什么boundary命令在视图比例比较小时会不成功?

[复制链接]
发表于 2020-10-9 19:26:09 | 显示全部楼层 |阅读模式
本帖最后由 happyxt 于 2022-12-24 16:41 编辑

使用boundary命令创建封闭区域边界的多段线时,如果指定的点距离边界比较近,则在视图比例大的时候没问题,在视图比例比较小的时候会创建失败,提示“点在对象上”。测试代码如下:
(defun c:test ( / OldVarValueLst VarLst pt en1 en2)
  (setq VarLst '("CMDECHO" "HPISLANDDETECTIONMODE" "HPBOUNDRETAIN" "HPBOUND"))
  (setq OldVarValueLst '())
  (repeat (length VarLst)
    (setq OldVarValueLst (append OldVarValueLst (list (cons (car VarLst) (getvar (car VarLst))))))
    (setq VarLst (cdr VarLst))
  )
  (setvar "CMDECHO" 0)
  (setvar "HPISLANDDETECTIONMODE" 0);控制是否检测内部闭合边界(称为孤岛)。关闭
  (setvar "HPBOUNDRETAIN" 1);控制是否为新图案填充和填充创建边界对象。创建
  (setvar "HPBOUND" 1);控制由 HATCH 和 BOUNDARY 创建的对象类型。创建多段线
  (vl-cmdf "_.rectang" '(100 100) '(1000 1000))
  (setq pt '(101 101))
  (setq en1 (entlast))
  (vl-cmdf "_.boundary" pt "")
  (setq en2 (entlast))
  (if (equal en1 en2)
    (alert "创建不成功。")
    (alert "创建成功。")
  )
  (repeat (length OldVarValueLst)
    (setvar (caar OldVarValueLst) (cdar OldVarValueLst))
    (setq OldVarValueLst (cdr OldVarValueLst))
  )
  (princ)
)

为什么会有上面的情况?视图比例会影响CAD的判断精度吗?如果是的话,还有那些命令会受影响呢?
恳请大神解惑,谢谢。
发表于 2020-10-9 20:35:46 来自手机 | 显示全部楼层
与像素有关
 楼主| 发表于 2020-10-9 21:28:16 | 显示全部楼层
多谢解答,可以这样理解吗?boundary是读取显存中的数据来判断边界的。
发表于 2020-10-10 09:29:09 | 显示全部楼层
happyxt 发表于 2020-10-9 21:28
多谢解答,可以这样理解吗?boundary是读取显存中的数据来判断边界的。

对,是用像素判断的。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2025-6-26 04:52 , Processed in 0.179717 second(s), 25 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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