大神们求救,用注释段的代码就可以打断,有未注释的就不行
[*] (setq pt3 (getpoint"\n 截断点"))
[*](setq pt4 (list(car pt3)(-(cadr pt3)500) 0.0 ))
[*] (setq pt5 (list(car pt3)(+(cadr pt3) 500) 0.0))
[*];(setq pt4 (getpoint"\n 截断点"))
[*];(setq pt5 (getpoint"\n 截断点"))
[*] (command "break" s1pt4 pt5)
(defun c:test()
(setq pt1 (getpoint"\n 第一点"))
(setq pt2 (getpoint pt1 "\n 第二点"))
(command "line" pt1 pt2 "")
(setq s1 (entlast))
(setq pt3 (getpoint"\n 截断点"))
(setq pt4 (list(car pt3)(-(cadr pt3)500) 0.0 ))
(setq pt5 (list(car pt3)(+(cadr pt3) 500) 0.0))
;(setq pt4 (getpoint"\n 截断点"))
;(setq pt5 (getpoint"\n 截断点"))
(command "break" s1pt4 pt5)
) 本帖最后由 cq4920 于 2020-11-4 19:22 编辑
你想要什么效果呢?两线无缝??—— 还是两线分开—— ——
而且你这个东西现在水平是无缝垂直是分开的,能干嘛用?
(defun C:dr()(command "_break" pause "F" pause "@"));;打断选择打断与一点
;;画直线然后再打断。PS:如果确定了4个点干嘛不直接画两条直线?
(defun c:test()
(command "line" pausepause"")
(command "break" (entlast) pause pause)
)
整那么复杂 同样的效果这样做还有动态预览不更好?
;;画直线然后再打断 也不知道你要干嘛!
(defun c:test()
(command "line" pausepause"")
(command "break"(entlast)pause "@" )
)
cq4920 发表于 2020-11-4 19:09
你想要什么效果呢?两线无缝??—— 还是两线分开—— ——
而且你这个东西现在水平 ...
就是获得直线上一点pt3,自动打断与其相距500的两个点pt4,pt5.但现在我没加注释的可以成功,想让大家看看为啥注释的上面两行不管用:L 本帖最后由 陈同学 于 2020-11-5 08:37 编辑
cq4920 发表于 2020-11-4 19:09
你想要什么效果呢?两线无缝??—— 还是两线分开—— ——
而且你这个东西现在水平 ...
就是简单的做个垂直打断的测试,目的是让线段分开,未注释的两行分不开线段,不知道啥情况
陈同学 发表于 2020-11-5 08:36
就是简单的做个垂直打断的测试,目的是让线段分开,未注释的两行分不开线段,不知道啥情况
你就一点都看不懂那个代码吗?他的P3是指定的,P4 P5是有P3得来的,并且是可以断开,只是打断的是一个点!你要手动的去指定P4 P5 是可以的啊。 本帖最后由 陈同学 于 2020-11-5 09:16 编辑
cq4920 发表于 2020-11-5 08:58
你就一点都看不懂那个代码吗?他的P3是指定的,P4 P5是有P3得来的,并且是可以断开,只是打断的是一个点 ...
就是现在不用手动指定一直不行啊,通过p3获得p4,p5来打断一直失败,也不叫失败吧,有点时灵时不灵的,不知道啥情况
你用的从上到下的顺序,如果要两者二选一,一般要用判断才行啊。 本帖最后由 cq4920 于 2020-11-5 09:44 编辑
陈同学 发表于 2020-11-5 09:13
就是现在不用手动指定一直不行啊,通过p3获得p4,p5来打断一直失败,也不叫失败吧,有点时灵时不灵的,不 ...
失败的原因基本可以确定你没有关闭捕捉,你打断点的位置不在线上!
(defun c:test(/ pt1 pt2 pt3 pt4 pt5 )
(setq pt1 (getpoint"\n 第一点"))
(setq pt2 (getpoint pt1 "\n 第二点"))
(command "line" pt1 pt2 "")
(setq s1 (entlast))
(setq pt3 (getpoint"\n 截断点"))
(setq pt4 (list(car pt3)(-(cadr pt3)500) 0.0 ))
(setq pt5 (list(car pt3)(+(cadr pt3) 500) 0.0))
;(setq pt4 (getpoint"\n 截断点"))
;(setq pt5 (getpoint"\n 截断点"))
(setvar "OSMODE" 0)
(command "break" s1pt4 pt5)
(setvar "OSMODE" 6079)
)
这里的P5是没用的,求出p4就可以用p3 p4来执行了
cq4920 发表于 2020-11-5 09:35
失败的原因基本可以确定你没有关闭捕捉,你打断点的位置不在线上!
(defun c:test(/ pt1 pt2 pt3 pt4...
解决了,谢谢,真是没关捕捉
页:
[1]