chenbh2 发表于 2019-7-22 18:39:19

删除指定点的圆

删除p1处的圆下面这样为何行不通

(setq px (rtos(nth 0 p1 )2 8 ))
(setq py (rtos(nth 1 p1 )2 8 ))
(setq ss(list '((0 . "circle")(-4 . ">,<,=")(list 10 px py 0.0))))
(command "_.ERASE"ss "")

1291500406 发表于 2019-7-22 20:17:43

本帖最后由 1291500406 于 2019-7-22 20:25 编辑




ERASE的对象是选择集或者图元名,而你的参数是圆加点参数的表,当然删不了

Andyhon 发表于 2019-7-22 20:18:28

您得附上 Dwg + 标明 P1点
另就是您执行后想达成的效果
别让人有无从理清的臆测空间

yshf 发表于 2019-7-23 08:07:45

;试用以下程序
(defun c:test()
    (setq cmd (getvar "cmdecho"))
    (setq osm (getvar "osmode"))
    (setvar "cmdecho" 0)
    (setvar "osmode" 4)
    (if (setq p1 (getpoint "\n选取圆心点P1:"))
      (if (setq ss (ssget "x" (list '(0 . "circle") '(-4 . "=,=,=") (cons 10 p1))))
            (command "_.ERASE"ss "")
      )
    )
    (setvar "osmode" osm)
    (setvar "cmdecho" cmd)
    (princ)
)

1784290342 发表于 2019-7-24 11:44:03

浮点数不能用=直接判断,1可能表示为0.99999999999999999999999999999999

chenbh2 发表于 2019-7-24 16:57:00

1784290342 发表于 2019-7-24 11:44
浮点数不能用=直接判断,1可能表示为0.99999999999999999999999999999999

感谢回复!以下代码可以解决!
(if (setq ss (ssget "x" (list '(0 . "circle") '(-4 . "=,=,=") (cons 10 p1))))
            (command "_.ERASE"ss "")
      )
页: [1]
查看完整版本: 删除指定点的圆