kzd2004 发表于 2024-1-15 10:42:02

删除矩形内竖线

本帖最后由 kzd2004 于 2024-1-17 08:50 编辑

如图,当我画矩形的时候,自动删除里面的竖线,自己用trim编写的好卡,求助高人帮忙。

kwok 发表于 2024-1-15 10:42:03

(defun c:tt (/ p1 p2 en )
(setq p1 (getpoint "\n指定点:"))
(setq p2 (getcorner p1 "\n指定点:"))
(command "rectang" p1 p2)
(setq en (entlast))
(command ".trim" en """f" "non" p1 "non" p2 "" "")
(princ)
)

xyp1964 发表于 2024-1-15 12:44:34


kzd2004 发表于 2024-1-15 20:01:17

本帖最后由 kzd2004 于 2024-1-15 20:02 编辑

xyp1964 发表于 2024-1-15 12:44

谢谢你,正是需要的,大佬能给我源码吗?

kzd2004 发表于 2024-1-17 08:52:30

大佬不回复,给画了个饼,请问还有知道的吗?请帮忙,谢谢。

x_s_s_1 发表于 2024-1-17 17:17:03

本帖最后由 x_s_s_1 于 2024-1-18 08:44 编辑

胡编乱造版

(defun c:tt(/ en en1 en2 en3 f pt1 pt2)
    (setq pt1 (getpoint "\n第一点:")
    pt2 (getcorner pt1 "\n第二点:"))
    (vl-cmdf "rectangle" "non" pt1 "non" pt2)
    (setq en(vlax-ename->vla-object (entlast))
    en1 (car (vlax-invoke en 'offset 1e-3))
    en2 (car (vlax-invoke en 'offset -1e-3)))
    (if(> (vlax-get en1 'length) (vlax-get en2 'length))
(setq en3 en1
      en1 en2
      en2 en3))
    (setq f(mapcar
   'cdr
   (vl-remove-if-not '(lambda (x) (= 10 (car x)))
         (entget (vlax-vla-object->ename en1)))))
    (vla-delete en1)
    (vla-delete en2)
    (vl-cmdf "trim"
       (vlax-vla-object->ename en)
       ""
       "f"
       "non"
       (car f)
       "non"
       (cadr f)
       "non"
       (caddr f)
       "non"
       (cadddr f)
       "non"
       (car f)
       ""
       ""))

bai2000 发表于 2024-1-17 17:43:02

楼上,对直线、多义线支持有缺陷,会删除框外的线段

kzd2004 发表于 2024-1-17 22:07:14

kwok 发表于 2024-1-15 10:42
(defun c:tt (/ p1 p2 en )
(setq p1 (getpoint "\n指定点:"))
(setq p2 (getcorner p1 "\n指定点: ...

谢谢你了。

kzd2004 发表于 2024-1-17 22:17:31

kwok 发表于 2024-1-15 10:42
(defun c:tt (/ p1 p2 en )
(setq p1 (getpoint "\n指定点:"))
(setq p2 (getcorner p1 "\n指定点: ...

请问"non"这个是什么意思?

qazxswk 发表于 2024-1-18 01:24:01

kzd2004 发表于 2024-1-17 22:17
请问"non"这个是什么意思?

临时取消捕捉。
页: [1]
查看完整版本: 删除矩形内竖线