scubastu 发表于 2022-7-6 12:20:00

SSGET-按坐标选择块

以前可能有人问过这个问题,但我不能完全理解ssget函数及其所有选项。
 
我想在lisp中写入一个命令,以选择行末尾的一个块,该块是变量pt2。然后,我将块移动到一个新位置(在那里线的结束结束)。
 
提前感谢

SteveK 发表于 2022-7-6 12:36:02

您好,如果您只是想在一个点上选择一个对象,请查看开发人员帮助中的nentselp函数。
如果你需要进一步的帮助,请告诉我。
 
我记得曾经尝试过ssget函数,但如果有人能纠正我的话,这可能是错误的。
(setq Ent (car(entsel))
    ss (ssget "_X" (list (-4 . "=1,1,1") (assoc 11 (entget Ent)))))

SteveK 发表于 2022-7-6 12:51:38

续。
或者这个?
蓝色是dxf代码,红色是坐标。
 
或者,如果您想添加模糊因子:
 
(setq pt2 (getpoint)
   fuz 1.0
   ss (ssget "_X" (list '(-4 . "<,<,<")(cons 11 (list (+ (car pt2) fuz)
                                                      (+ (cadr pt2) fuz)
                                                      (+ (caddr pt2) fuz)
                           ))
                           '(-4 . ">,>,>")(cons 11 (list (- (car pt2) fuz)
                                                      (- (cadr pt2) fuz)
                                                      (- (caddr pt2) fuz)
                           ))
             )))

CarlB 发表于 2022-7-6 13:04:17

我在想这样的事情;
 
(ssget Pt)
 
但选择单个对象时,可能会拾取线而不是块。
您可能需要定义Pt1附近的交叉窗口第二点“p2”,然后;
 
(ssget“c”(list pt1 pt2)((0。“BLOCK”))

scubastu 发表于 2022-7-6 13:13:29

 
嘿,谢谢史蒂夫,你的回复足以让我分清头绪。我无法获得代码的正确结构,并且不断出现错误。当有人给你正确的信息时,你会如释重负!干杯
 
这是我插入的最后一行
 
3
 
我试过你的上面一个,但由于坐标是相同的结束线(图标11而不是图标10)。。所有的台词都变了,但实际上我可能会在其他地方使用它。。因此,添加过滤器“insert”确保了与命令没有混淆(我认为)
 
再次感谢

SteveK 发表于 2022-7-6 13:25:50

太棒了很高兴它对你有效,如果有更好的方式来表达它,我不会感到惊讶,我不知道。
 
CarlB,我不知道使用ssget的方法,谢谢。
页: [1]
查看完整版本: SSGET-按坐标选择块