明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 307|回复: 9

[源码] 大神们求救,用注释段的代码就可以打断,有未注释的就不行

[复制链接]
发表于 2020-11-4 18:10 | 显示全部楼层 |阅读模式
  •     (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" s1  pt4 pt5  )

 楼主| 发表于 2020-11-4 18:11 | 显示全部楼层
(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" s1  pt4 pt5  )
发表于 2020-11-4 19:09 | 显示全部楼层
本帖最后由 cq4920 于 2020-11-4 19:22 编辑

你想要什么效果呢?两线无缝??——        还是两线分开  ——     ——   

而且你这个东西  现在水平是无缝  垂直是分开的,能干嘛用?


(defun C:dr()(command "_break" pause "F" pause "@"));;打断选择打断与一点


;;画直线然后再打断。PS:如果确定了4个点干嘛不直接画两条直线?
(defun c:test()
                                        (command "line" pause  pause  "")   
                                        (command "break" (entlast) pause pause  )
)

整那么复杂 同样的效果这样做还有动态预览不更好?


;;画直线然后再打断   也不知道你要干嘛!
(defun c:test()
(command "line" pause  pause  "")  
                                        (command "break"  (entlast)  pause "@"   )
)

 楼主| 发表于 2020-11-5 08:34 | 显示全部楼层
cq4920 发表于 2020-11-4 19:09
你想要什么效果呢?两线无缝??——        还是两线分开  ——     ——   

而且你这个东西  现在水平 ...

就是获得直线上一点pt3,自动打断与其相距500的两个点pt4,pt5.但现在我没加注释的可以成功,想让大家看看为啥注释的上面两行不管用
 楼主| 发表于 2020-11-5 08:36 | 显示全部楼层
本帖最后由 陈同学 于 2020-11-5 08:37 编辑
cq4920 发表于 2020-11-4 19:09
你想要什么效果呢?两线无缝??——        还是两线分开  ——     ——   

而且你这个东西  现在水平 ...

就是简单的做个垂直打断的测试,目的是让线段分开,未注释的两行分不开线段,不知道啥情况

发表于 2020-11-5 08:58 | 显示全部楼层
陈同学 发表于 2020-11-5 08:36
就是简单的做个垂直打断的测试,目的是让线段分开,未注释的两行分不开线段,不知道啥情况

你就一点都看不懂那个代码吗?他的P3是指定的,P4 P5是有P3得来的,并且是可以断开,只是打断的是一个点!你要手动的去指定P4 P5 是可以的啊。
 楼主| 发表于 2020-11-5 09:13 | 显示全部楼层
本帖最后由 陈同学 于 2020-11-5 09:16 编辑
cq4920 发表于 2020-11-5 08:58
你就一点都看不懂那个代码吗?他的P3是指定的,P4 P5是有P3得来的,并且是可以断开,只是打断的是一个点 ...

就是现在不用手动指定一直不行啊,通过p3获得p4,p5来打断一直失败,也不叫失败吧,有点时灵时不灵的,不知道啥情况

发表于 2020-11-5 09:20 | 显示全部楼层
你用的从上到下的顺序,如果要两者二选一,一般要用判断才行啊。
发表于 2020-11-5 09:35 | 显示全部楼层
本帖最后由 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" s1  pt4 pt5  )
(setvar "OSMODE" 6079)



这里的P5是没用的,求出p4就可以用p3 p4来执行了

 楼主| 发表于 2020-11-5 10:33 | 显示全部楼层
cq4920 发表于 2020-11-5 09:35
失败的原因基本可以确定你没有关闭捕捉,你打断点的位置不在线上!

(defun c:test(/ pt1 pt2 pt3 pt4  ...

解决了,谢谢,真是没关捕捉
您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|CAD论坛|CAD教程|CAD下载|联系我们|关于明经|明经通道 ( 粤ICP备05003914号 )  
©2000-2023 明经通道 版权所有 本站代码,在未取得本站及作者授权的情况下,不得用于商业用途

GMT+8, 2024-5-19 01:08 , Processed in 4.426343 second(s), 25 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表