乐筑天下

搜索
欢迎各位开发者和用户入驻本平台 尊重版权,从我做起,拒绝盗版,拒绝倒卖 签到、发布资源、邀请好友注册,可以获得银币 请注意保管好自己的密码,避免账户资金被盗
查看: 75|回复: 16

[编程交流] 如何在2段上绘制打断

[复制链接]

1

主题

8

帖子

7

银币

初来乍到

Rank: 1

铜币
5
发表于 2022-7-6 07:24:18 | 显示全部楼层 |阅读模式
我试着打断两条平行线,画闭合线和交点。
我试图使用getpoint在线路的某个地方指出一个点,但它不起作用。
有人有办法吗?
 
然后插入一个对象。
parlinesbreak。图纸
parlines。图纸
回复

使用道具 举报

40

主题

103

帖子

63

银币

后起之秀

Rank: 20Rank: 20Rank: 20Rank: 20

铜币
200
发表于 2022-7-6 07:31:26 | 显示全部楼层
你好
 
试试这个。
 
  1. (defun c:BRK()
  2. (setq snp (getvar "OSMODE"))
  3. (setvar "OSMODE" 0)
  4. (setq ent (entsel "\nSelect line to break"))
  5. (setq po (cadr ent))
  6. (setq ent (car ent))
  7. (setq vlent (vlax-ename->vla-object ent))
  8. (setq po (vlax-curve-getclosestpointto vlent po))
  9. (setq po1 (getpoint po "\nSelect next point to break"))
  10. (setq po1 (vlax-curve-getclosestpointto vlent po1))
  11. (setq ent1 (car (entsel "\nSelect parallen entity")))
  12. (setq vlent1 (vlax-ename->vla-object ent1))
  13. (setq po2 (vlax-curve-getclosestpointto vlent1 po))
  14. (setq po3 (vlax-curve-getclosestpointto vlent1 po1))
  15. (command "Break" ent po po1)
  16. (command "Break" ent1 po2 po3)
  17. (command "line" po po2 "")
  18. (command "line" po1 po3 "")
  19. (setvar "OSMODE" snp)
  20. )
回复

使用道具 举报

pBe

32

主题

2722

帖子

2666

银币

后起之秀

Rank: 20Rank: 20Rank: 20Rank: 20

铜币
211
发表于 2022-7-6 07:33:13 | 显示全部楼层
另一个:
 
  1. (defun c:br2 (/ lines pt1 pt2 ol plst)
  2. ;;;        pBe Sep 2012        ;;;
  3. (vl-load-com)
  4. (prompt "\nSelect Objects to Break:")
  5. (cond
  6.    ((and
  7.       (setq plst  nil
  8.      lines (ssget ":L" '((0 . "LINE")))
  9.       )
  10.       (= (sslength lines) 2)
  11.       (setq pt1 (getpoint "\nPick first point:"))
  12.       (setq pt2 (getpoint pt1 "\nPick second point:"))
  13.       (repeat (sslength lines)
  14. (setq ol (ssname lines 0))
  15. (setq plst (cons (vlax-curve-getclosestpointto ol pt1) plst)
  16.        plst (cons (vlax-curve-getclosestpointto ol pt2) plst)
  17. )
  18. (command "_break" ol "_non" pt1 "_non" pt2)
  19. (ssdel ol lines)
  20.       )
  21.       (mapcar '(lambda        (j)
  22.           (entmakex (list (cons 0 "LINE")
  23.                           (cons 10 (nth (Car j) plst))
  24.                           (cons 11 (nth (Cadr j) plst))
  25.                     )
  26.           )
  27.         )
  28.        '((0 2) (1 3))
  29.       )
  30.     )
  31.    )
  32. )
  33. (princ)
  34. )

 
HTH公司
回复

使用道具 举报

1

主题

8

帖子

7

银币

初来乍到

Rank: 1

铜币
5
发表于 2022-7-6 07:38:29 | 显示全部楼层
谢谢它起作用了,但一点也不起作用。
这就是我想要做的:
brklns。图纸
 
 
我的代码的一部分:
  1. (defun c:WR1 ( / aa b c c5 c6 c7 c8 cc3 d l la lb dr wbl)
  2. (setq bl (getvar "BLIPMODE"))
  3. (setq cm (getvar "CMDECHO"))
  4. (setvar "CMDECHO" 0)
  5. (if (not doorw)
  6.    (setq doorw 0.9)
  7. )
  8. (initget 2)
  9. (setq dr (getdist (strcat "Door with: <" (rtos doorw 2 2) ">")))
  10. (if dr
  11.    (setq doorw dr)
  12. )
  13. ;(setq a1 (cdr (assoc 10 (entget (car (entsel))))))
  14. (setq aobject (cdr (entget (car (entsel "\nSelect first line: ")))))
  15. (setq a1 (cdr (assoc 10 (cdr aobject))))
  16. (setq a2 (cdr (assoc 11 (cdr aobject))))
  17. (setq bobject (cdr (entget (car (entsel "\nSelect second line: ")))))
  18. (setq b1 (cdr (assoc 10 (cdr bobject))))
  19. (setq b2 (cdr (assoc 11 (cdr bobject))))
  20. (setq _c (getpoint "\nBase point: "))
  21. (initget 1 "Left Right:")
  22. (setq d (getkword "\nLeft or Right?"))
  23. (setq _la (angle a1 a2))
  24. (setq _lb (angle b1 b2))
  25. (setq lac (angle a1 _c))
  26. (setq c1 (polar a1 _la (* (cos (- _la lac)) (distance a1 _c))))
  27. (setq cd (distance a1 b1))
  28. (setq lbc (angle b1 (polar _c (+ _lb (* 0.5 pi)) (* (cos (- _lb lbc)) cd))))
  29. (setq c2 (polar b1 (+ _lb (* 0.5 pi)) (* (cos (- _lb lbc)) cd)))

 
..........................
该“_c”点不在我拾取它的位置(基点)。
回复

使用道具 举报

pBe

32

主题

2722

帖子

2666

银币

后起之秀

Rank: 20Rank: 20Rank: 20Rank: 20

铜币
211
发表于 2022-7-6 07:40:37 | 显示全部楼层
提示输入门宽度:
 
  1. (defun c:br2 (/ lines pt1 pt2 ol  plst)
  2. ;;;        pBe Sep 2012        ;;;
  3. (vl-load-com)
  4. (prompt "\nSelect Objects to Break:")
  5. (cond
  6.    ((and
  7.       (setq plst  nil
  8.      lines (ssget ":L" '((0 . "LINE")))
  9.       )
  10.       (= (sslength lines) 2)
  11.       [color="blue"](setq dr (cond
  12. ((getdist (strcat "\nEnter Window width"
  13.                 (if dr (strcat " <" (rtos dr) ">: ") ": ")
  14.                            )))(dr))
  15.                )[/color]
  16.       (setq pt1 (getpoint "\nPick first point:"))
  17.       (setq pt2 (getpoint pt1 "\nPick second point for direction:"))
  18.       [color="blue"](setq pt2 (polar pt1 (angle pt1 pt2) dr))[/color]
  19.       (repeat (sslength lines)
  20. (setq ol (ssname lines 0))
  21. (setq plst (cons (vlax-curve-getclosestpointto ol pt1) plst)
  22.        plst (cons (vlax-curve-getclosestpointto ol pt2) plst)
  23. )
  24. (command "_break" ol "_non" pt1 "_non" pt2)
  25. (ssdel ol lines)
  26.       )
  27.       (mapcar '(lambda        (j)
  28.           (entmakex (list (cons 0 "LINE")
  29.                           (cons 10 (nth (Car j) plst))
  30.                           (cons 11 (nth (Cadr j) plst))
  31.                     )
  32.           )
  33.         )
  34.        '((0 2)
  35.          (1 3))
  36.       )
  37.     )
  38.    )
  39. )
  40. (princ)
  41. )

 
顺便说一句:欢迎来到论坛
请务必阅读本代码发布指南
回复

使用道具 举报

1

主题

8

帖子

7

银币

初来乍到

Rank: 1

铜币
5
发表于 2022-7-6 07:44:39 | 显示全部楼层
太好了,谢谢。它正在工作。
我发现在autolisp中有很多想法需要澄清:)
但是使用getpoint可以得到一个点,因为我认为这是错误的,对吗。
回复

使用道具 举报

pBe

32

主题

2722

帖子

2666

银币

后起之秀

Rank: 20Rank: 20Rank: 20Rank: 20

铜币
211
发表于 2022-7-6 07:47:27 | 显示全部楼层
 
不客气,很乐意帮忙。
希望你能从中学习。
 
请在阅读代码发布指南后更新您的帖子
 
干杯
回复

使用道具 举报

1

主题

8

帖子

7

银币

初来乍到

Rank: 1

铜币
5
发表于 2022-7-6 07:53:44 | 显示全部楼层
好啊为什么我真的需要那个Lisp程序的“vlax curve getClosestPoint”?!
回复

使用道具 举报

106

主题

1万

帖子

101

银币

顶梁支柱

Rank: 50Rank: 50

铜币
1299
发表于 2022-7-6 07:57:10 | 显示全部楼层
这是你想做的吗?如果是这样的话,再加上更多的私人电子邮件给我,附加做简单的房子设计仍然可用,可以提供详细信息吗
 
082423u6qnneib6y5n6qte.jpg
回复

使用道具 举报

1

主题

8

帖子

7

银币

初来乍到

Rank: 1

铜币
5
发表于 2022-7-6 08:01:16 | 显示全部楼层
是的,我试着去做,但我试着做的主要事情是学习autolisp。
斯特凡_ss@abv.bg
回复

使用道具 举报

发表回复

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

QQ|关于我们|小黑屋|乐筑天下 繁体中文

GMT+8, 2025-3-10 04:55 , Processed in 0.704563 second(s), 74 queries .

© 2020-2025 乐筑天下

联系客服 关注微信 帮助中心 下载APP 返回顶部 返回列表