spiker7221 发表于 2022-7-6 06:18:26

选择窗口创建

我试图删除2个对象(绿线和长度标记文字)。窗口需要与使用npt1、npt2、pt3、pt4的绿线处于相同角度。我可以获得绿线的起点(pt1)和终点(pt2)点以及角度(ang)。我试过使用
SSGET "C" pt1 pt2位于直线中点,但选择窗口是一个非旋转框,捕捉绿线周围区域中过多的实体。我知道如何修改实体的现有点。。。一、 E.矩形,但不包括如何将该过程转移到点以供将来使用。我试图修改(2)两个已知点(pt1和pt2)的X和Y值,但没有成功。我是疯了用这种方法删除(2)两个对象,还是有更好的方法?
 

 
谢谢你的帮助,
迈克

Lee Mac 发表于 2022-7-6 06:35:33

嗨,迈克,
 
ssget交叉模式字符串将使用与WCS轴对齐的交叉窗口,角位于两个给定点-不幸的是,该交叉窗口将与活动UCS不对齐,因此无法旋转。
 
使用图像中标记的点,可以使用交叉多边形选择来收集线和文本实体,例如:
请注意,上述假设点相对于活动UCS表示(根据ssget的要求),并且要选择的对象在选择时在屏幕上可见(这对于任何ssget图形选择方法都是必需的)。
 
理想情况下,要选择的对象将位于其自己的不同图层上,或具有可以将其与图形中的其他对象区分开来的特性——这样,您可以使用ssget“X”模式字符串,使用适当的过滤器列表在图形数据库中迭代,以检索所需的图元,而不受位于选择窗口附近或内部的周围对象的干扰,并且选择将不取决于选择时绘图区域的位置。

spiker7221 发表于 2022-7-6 06:56:20

你好,李,
很高兴看到其中一个伟大的人在这里回应和帮助我。非常感谢。
那么,我如何获取(2)两个原始点,并为每个点添加值,以创建(4)四个新点?我试着给pt1加-1.0,把它移到它的左下角,但我只得到了X值的负值。我很确定我需要用Polar。
 
任何帮助都会很好。我有2005年的老套路,我正在为2014年重写,还有一个非常大的cadd用户群等着我。
 
再次感谢
干杯,迈克
 
仅供参考。。。我的妻子是英国人。。。来自萨里。我们将于十月来英国参加她姐姐的婚礼。所以期待着再次看到英国的乡村。惊险的
 

Tharwat 发表于 2022-7-6 07:15:22

 
看看这个,让我知道。
 

(defun Rectangle (p1 p2 / p3 p4 p5 p6 a h d)
(if (setq h(/ (setq d (distance p1 p2)) 10.)
         p3 (polar p1 (+ (setq a (angle p1 p2)) (* pi 0.5)) (/ h 2.))
         p4 (polar p3 a d)
         p5 (polar p4 (+ a (* pi 1.5)) h)
         p6 (polar p5 (+ a pi) d)
   )
   (command "_.pline" "_non" p3 "_non" p4 "_non" p5 "_non" p6 "_c")
)
(princ)
)

 
上述代码的用法。
 

(Rectangle p1 p2)

Lee Mac 发表于 2022-7-6 07:20:11

 
实际上,极函数可能是计算点的最简单方法。
考虑以下图表和代码,并注意变量如何与图表相对应:

4
 
太棒了-我相信你会喜欢这里的
页: [1]
查看完整版本: 选择窗口创建