品茗新秀 发表于 2012-9-17 08:14:00

求如何查找一根竖线左边500mm范围的字的lisp

求如何查找一根竖线左边500mm范围的字的lisp

lyqiezi 发表于 2012-9-17 13:04:12

找出竖线两个端点,各左偏500,得到的4个点
用ssget “wp"选择不就ok咯

有个问题就是如果不是竖直线,有点角度,怎么判断左边和右边,嘿嘿

lyqiezi 发表于 2012-9-18 14:34:05

没反应,不知道哪里出问题,谁给看下
当时思路就是偏移一条线,这样就可以判断方向,然后用(entlast)来选择这条线得到两个点与原先两条线的点形成一个框,以框选里面的文字,然后再把它删除。但是不知道哪里有问题
(defun c:fwxz()
(setq os "osmode")
(setvar "osmode" 0)
(setq l1 (entsel "\n选择线段:"))
(setq dst (getreal "\n输入选择范围:"))
(setq ent (entget (car l1)))
(setq lpt1 (cdr (assoc 10 ent)))
(setq lpt2 (cdr (assoc 11 ent)))
(setq ppt (getpoint "\n选择哪一侧的文字:"))
(command "offset" dst l1 ppt "")
(setq l2 (entlast))
(setq ent1 (entget (car l2)))
(setq lpt3 (cdr (assoc 10 ent1)))
(setq lpt4 (cdr (assoc 11 ent1)))
(setq txt1 (ssget "wp" (list lpt1 lpt2 lpt3 lpt4) '((0 . "text"))))
(setvar "osmode" os)
(command "earse" l2 "")
(command "select" txt1 pause "")
)
       

Andyhon 发表于 2012-9-18 15:35:02

以豎直线取二端点,令为 P1;P2
(setq pt (polar p2 Pi 500)

以 P1 pt 为角点框选

lyqiezi 发表于 2012-9-18 16:06:07

我现在是想把这个扩展到任何角度,不是单纯一个竖线的问题
而是entlast后续的操作怎么不行

Andyhon 发表于 2012-9-18 16:58:25

取二端点得向量 加/减 (* Pi 0.5) 而分侧
页: [1]
查看完整版本: 求如何查找一根竖线左边500mm范围的字的lisp