jason_a 发表于 2022-7-5 17:31:48

施工线自动呼叫

这就是我目前正在做的。
 
我画了一条45度角的线,把它放在自己的图层上(我们称之为“45”)。然后,我创建了一条与45度角线相交的垂直构造线。(创建垂直构造线时,我不会选择45度角线作为点。该点位于45度角线上以外的任何位置。)最后,我在垂直线和45度角线最终相交的点处创建了一条水平构造线。我创建的这些线是为了通过正交投影快速双重检查我的图形布局。
 
我试图通过lisp实现的是一个例程,提示输入点以创建垂直构造线。然后创建垂直构造线并与标记为45的线相交时,我希望在该点自动创建一条水平构造线。垂直构造线可能与图形中的其他线相交,但只有在检测到与标记为45的特定线相交时,才应创建水平构造线。这可能吗?
 
非常感谢。

marko_ribar 发表于 2022-7-5 17:40:34

未经测试。。。
 
关于。。。

pkenewell 发表于 2022-7-5 17:42:55

我的版本-快速组合,仅适用于线条对象:
 
 

(defun c:test (/ doc space en el ep1 ep2 vp1 vp2 inp)
(vl-load-com)
(setq doc (vla-get-activedocument (vlax-get-acad-object))
      space (if (> (getvar "CVPORT") 1)(vla-get-modelspace doc)(vla-get-paperspace doc))
)
(if (setq en(entsel "\nSelect a Line: "))
   (progn
      (setq el(entget (car en))
            ep1 (cdr (assoc 10 el))
            ep2 (cdr (assoc 11 el))
      )
      (if (setq vp1 (getpoint "\nSelect a point for a vertical xline: ")
                  vp2 (polar vp1 (/ pi 2) 1.0)
                  inp (inters ep1 ep2 vp1 vp2 nil)
            )
         (progn
            (vla-addxline space (vlax-3d-point vp1)(vlax-3d-point vp2))
            (vla-addxline space (vlax-3d-point inp)(vlax-3d-point (polar inp 0.0 1.0)))
         )
      )
   )
)
)

jason_a 发表于 2022-7-5 17:46:31

非常感谢!我很快就会复习,非常感谢!

jason_a 发表于 2022-7-5 17:53:24

我已经尝试了这两个例程,第一个似乎更无缝地工作。再次感谢你们的投入。
 
我的下一个问题是关于第一个例程,我将如何修改它以反向工作。也就是说,当我创建一条水平构造线时,我会在交点处得到一条垂直构造线?

MaxwellEdison 发表于 2022-7-5 17:57:20

关于工作流程的冒昧问题。根据您的请求,您似乎希望为正交投影创建自动斜接线。如果是这样的话,那么创建俯视图的参考副本而不是在侧视图上方旋转90度,是否有我遗漏的好处?

pkenewell 发表于 2022-7-5 18:02:15

这里有几个可以试试。第一个与前一个帖子相同,只是我正在检查以确保所选对象是一条线。两者都经过了测试。
 
 
2
 
 
编辑:请注意:我不是想给你一个完整的解决方案,只是想告诉你如何做你需要的。此程序没有错误处理。我希望你一旦掌握了这方面的知识,就会将其融入到自己的日常生活中。

jason_a 发表于 2022-7-5 18:08:15

 
是的,我以前就是这样做的,但最近我被介绍到这个替代方案,我发现这样做时我的工作流程要快得多。

jason_a 发表于 2022-7-5 18:13:21

 
谢谢我试试看。

jason_a 发表于 2022-7-5 18:16:27

 
太好了,谢谢你们,他们都做得很好!
页: [1] 2
查看完整版本: 施工线自动呼叫