乐筑天下

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

[编程交流] 矩形交叉需要lisp

[复制链接]

9

主题

43

帖子

34

银币

初来乍到

Rank: 1

铜币
45
发表于 2022-7-6 08:46:52 | 显示全部楼层 |阅读模式
代码1=使矩形在内部交叉(x)(不同层)
代码2=通过多选矩形使(+)穿过中心线并删除。
回复

使用道具 举报

9

主题

167

帖子

163

银币

初来乍到

Rank: 1

铜币
43
发表于 2022-7-6 08:55:50 | 显示全部楼层
代码1:
 
  1. (defun c:cr (/         lt  ename   b         c   sn         sn1 sn2 p1  p2         p3  p4         f
  2.      d         d1  d2         d3  a1         a2  a3         a4  p5         p6  p7         p8  p9         p10
  3.      sc ocl la
  4.     )
  5. (command "cmdecho" (getvar "cmdecho"))
  6. (setq lt "center")
  7. (if (= (tblsearch "ltype" lt) nil)
  8.    (command "-linetype" "l" lt "acad.lin" "")
  9. )
  10. (setq        ocl   (getvar "clayer"))
  11. (setq la "different")
  12. (if (tblsearch "layer" la)
  13.    (command "-layer" "s" la "")
  14.    (command "-layer" "m" la "")
  15. )
  16. (princ "\n Select rectangles: ")
  17. (setq        ss  (ssget '((-4 . "<and")
  18.              (0 . "LWPOLYLINE")
  19.              (70 . 1)
  20.              (90 . 4)
  21.              (-4 . "and>")
  22.             )
  23.     )
  24. sn  (sslength ss)
  25. sn1 sn
  26. )
  27. (repeat sn
  28.    (setq sn2        (1- sn1)
  29.   ename        (ssname ss sn2)
  30.   b        (entget ename)
  31.   b        (member (assoc 10 b) b)
  32.    )
  33.    (while (member (assoc 10 b) b)
  34.      (setq c (append c (list (cdr (assoc 10 b))))
  35.     b (cdr b)
  36.     b (member (assoc 10 b) b)
  37.      )
  38.    )
  39.    (setq f   0.125
  40.   d   0.12
  41.   p1  (nth 0 c)
  42.   p2  (nth 1 c)
  43.   p3  (nth 2 c)
  44.   p4  (nth 3 c)
  45.   c   nil
  46.   d1  (/ (distance p1 p2) 2)
  47.   d2  (/ (distance p2 p3) 2)
  48.   d3  (if (> d1 d2)
  49.         (* d1 0.12)
  50.         (* d2 0.12)
  51.       )
  52.   a1  (angle p1 p2)
  53.   a2  (angle p2 p1)
  54.   a3  (angle p2 p3)
  55.   a4  (angle p3 p2)
  56.   p5  (polar p1 a1 d1)
  57.   p6  (polar p5 a4 d3)
  58.   p7  (polar p6 a3 (+ (* d2 2) (* d3 2)))
  59.   p8  (polar p2 a3 d2)
  60.   p9  (polar p8 a1 d3)
  61.   p10 (polar p9 a2 (+ (* d1 2) (* d3 2)))
  62.   sc  (* (+ d1 d2) f)
  63.   sn1 sn2
  64.    )
  65.    (entmake (list
  66.        (cons 0 "LINE")
  67.        (cons 8 la)
  68.        (cons 6 lt)
  69.        (cons 62 3)
  70.        (cons 10 p6)
  71.        (cons 11 p7)
  72.        (cons 48 sc)
  73.        (cons 210 (list 0.0 0.0 1.0))
  74.      )
  75.    )
  76.    (entmake (list
  77.        (cons 0 "LINE")
  78.        (cons 8 la)
  79.        (cons 6 lt)
  80.        (cons 62 3)
  81.        (cons 10 p9)
  82.        (cons 11 p10)
  83.        (cons 48 sc)
  84.        (cons 210 (list 0.0 0.0 1.0))
  85.      )
  86.    )
  87. )
  88. (setvar "clayer" ocl)
  89. (princ)
  90. )

 
对于代码2,删除什么?矩形?
回复

使用道具 举报

9

主题

43

帖子

34

银币

初来乍到

Rank: 1

铜币
45
发表于 2022-7-6 08:59:48 | 显示全部楼层
代码1=x cross no+cross(在0层中设置矩形,在1层中设置x cross)代码2=代码1您,但我想在多选矩形中的cont line(无中心线线型)中创建cross line并删除rec
回复

使用道具 举报

9

主题

167

帖子

163

银币

初来乍到

Rank: 1

铜币
43
发表于 2022-7-6 09:07:20 | 显示全部楼层
给你(代码1=>cr,代码2=>crd)。
 
  1. (defun c:cr (/         lt  ename   b         c   sn         sn1 sn2 p1  p2         p3  p4         f
  2.      d         d1  d2         d3  a1         a2  a3         a4  p5         p6  p7         p8  p9         p10
  3.      sc ocl la ent lar
  4.     )
  5. (command "cmdecho" (getvar "cmdecho"))
  6. (setq lt "center")
  7. (if (= (tblsearch "ltype" lt) nil)
  8.    (command "-linetype" "l" lt "acad.lin" "")
  9. )
  10. (setq        ocl   (getvar "clayer"))
  11. (setq la "1"
  12. lar "0")
  13. (if (tblsearch "layer" la)
  14.    (command "-layer" "s" la "")
  15.    (command "-layer" "m" la "")
  16. )
  17. (princ "\n Select rectangles: ")
  18. (setq        ss  (ssget '((-4 . "<and")
  19.              (0 . "LWPOLYLINE")
  20.              (70 . 1)
  21.              (90 . 4)
  22.              (-4 . "and>")
  23.             )
  24.     )
  25. sn  (sslength ss)
  26. sn1 sn
  27. )
  28. (repeat sn
  29.    (setq sn2        (1- sn1)
  30.   ename        (ssname ss sn2)
  31.   ent        (entget ename)
  32.   b        (member (assoc 10 ent) ent)
  33.    )
  34.    (while (member (assoc 10 b) b)
  35.      (setq c (append c (list (cdr (assoc 10 b))))
  36.     b (cdr b)
  37.     b (member (assoc 10 b) b)
  38.      )
  39.    )
  40.    (setq f   0.125
  41.   d   0.12
  42.   p1  (nth 0 c)
  43.   p2  (nth 1 c)
  44.   p3  (nth 2 c)
  45.   p4  (nth 3 c)
  46.   c   nil
  47.   d1  (/ (distance p1 p2) 2)
  48.   d2  (/ (distance p2 p3) 2)
  49.   d3  (if (> d1 d2)
  50.         (* d1 0.12)
  51.         (* d2 0.12)
  52.       )
  53.   a1  (angle p1 p2)
  54.   a2  (angle p2 p1)
  55.   a3  (angle p2 p3)
  56.   a4  (angle p3 p2)
  57.   p5  (polar p1 a1 d1)
  58.   p6  (polar p5 a4 d3)
  59.   p7  (polar p6 a3 (+ (* d2 2) (* d3 2)))
  60.   p8  (polar p2 a3 d2)
  61.   p9  (polar p8 a1 d3)
  62.   p10 (polar p9 a2 (+ (* d1 2) (* d3 2)))
  63.   sc  (* (+ d1 d2) f)
  64.   sn1 sn2
  65.    )
  66.    (entmake (list
  67.        (cons 0 "LINE")
  68.        (cons 8 la)
  69.        (cons 6 lt)
  70.        ;(cons 62 3)
  71.        (cons 10 p1)
  72.        (cons 11 p3)
  73.        (cons 48 sc)
  74.        (cons 210 (list 0.0 0.0 1.0))
  75.      )
  76.    )
  77.    (entmake (list
  78.        (cons 0 "LINE")
  79.        (cons 8 la)
  80.        (cons 6 lt)
  81.        ;(cons 62 3)
  82.        (cons 10 p2)
  83.        (cons 11 p4)
  84.        (cons 48 sc)
  85.        (cons 210 (list 0.0 0.0 1.0))
  86.      )
  87.    )
  88.    (if (= "0" (cdr (assoc 8 ent)))
  89.      ()
  90.      (progn
  91.        (setq ent (subst (cons 8 lar) (assoc 8 ent) ent))
  92.        (entmod ent)
  93.      )
  94.    )
  95. )
  96. (setvar "clayer" ocl)
  97. (princ)
  98. )
  99. (defun c:crd (/         lt  ename   b         c   sn         sn1 sn2 p1  p2         p3  p4         f
  100.      d         d1  d2         d3  a1         a2  a3         a4  p5         p6  p7         p8  p9         p10
  101.      sc ocl la ent
  102.     )
  103. (command "cmdecho" (getvar "cmdecho"))
  104. (setq lt "center")
  105. (if (= (tblsearch "ltype" lt) nil)
  106.    (command "-linetype" "l" lt "acad.lin" "")
  107. )
  108. (setq        ocl   (getvar "clayer"))
  109. (setq la "1")
  110. (if (tblsearch "layer" la)
  111.    (command "-layer" "s" la "")
  112.    (command "-layer" "m" la "")
  113. )
  114. (princ "\n Select rectangles: ")
  115. (setq        ss  (ssget '((-4 . "<and")
  116.              (0 . "LWPOLYLINE")
  117.              (70 . 1)
  118.              (90 . 4)
  119.              (-4 . "and>")
  120.             )
  121.     )
  122. sn  (sslength ss)
  123. sn1 sn
  124. )
  125. (repeat sn
  126.    (setq sn2        (1- sn1)
  127.   ename        (ssname ss sn2)
  128.   ent        (entget ename)
  129.   b        (member (assoc 10 ent) ent)
  130.    )
  131.    (while (member (assoc 10 b) b)
  132.      (setq c (append c (list (cdr (assoc 10 b))))
  133.     b (cdr b)
  134.     b (member (assoc 10 b) b)
  135.      )
  136.    )
  137.    (setq f   0.125
  138.   d   0.12
  139.   p1  (nth 0 c)
  140.   p2  (nth 1 c)
  141.   p3  (nth 2 c)
  142.   p4  (nth 3 c)
  143.   c   nil
  144.   d1  (/ (distance p1 p2) 2)
  145.   d2  (/ (distance p2 p3) 2)
  146.   d3  (if (> d1 d2)
  147.         (* d1 0.12)
  148.         (* d2 0.12)
  149.       )
  150.   a1  (angle p1 p2)
  151.   a2  (angle p2 p1)
  152.   a3  (angle p2 p3)
  153.   a4  (angle p3 p2)
  154.   p5  (polar p1 a1 d1)
  155.   p6  (polar p5 a4 d3)
  156.   p7  (polar p6 a3 (+ (* d2 2) (* d3 2)))
  157.   p8  (polar p2 a3 d2)
  158.   p9  (polar p8 a1 d3)
  159.   p10 (polar p9 a2 (+ (* d1 2) (* d3 2)))
  160.   sc  (* (+ d1 d2) f)
  161.   sn1 sn2
  162.    )
  163.    (entmake (list
  164.        (cons 0 "LINE")
  165.        (cons 8 la)
  166.        ;(cons 6 lt)
  167.        ;(cons 62 3)
  168.        (cons 10 p6)
  169.        (cons 11 p7)
  170.        ;(cons 48 sc)
  171.        (cons 210 (list 0.0 0.0 1.0))
  172.      )
  173.    )
  174.    (entmake (list
  175.        (cons 0 "LINE")
  176.        (cons 8 la)
  177.        ;(cons 6 lt)
  178.        ;(cons 62 3)
  179.        (cons 10 p9)
  180.        (cons 11 p10)
  181.        ;(cons 48 sc)
  182.        (cons 210 (list 0.0 0.0 1.0))
  183.      )
  184.    )
  185. (entdel ename)
  186. )
  187. (setvar "clayer" ocl)
  188. (princ)
  189. )
回复

使用道具 举报

9

主题

43

帖子

34

银币

初来乍到

Rank: 1

铜币
45
发表于 2022-7-6 09:11:15 | 显示全部楼层
谢谢你。
paulmcz plese make code=创建rec和xcross
回复

使用道具 举报

9

主题

167

帖子

163

银币

初来乍到

Rank: 1

铜币
43
发表于 2022-7-6 09:17:54 | 显示全部楼层
由于您没有清楚地描述您想要(或需要)的内容,我或其他人可能会连续几天编写代码,这对您来说仍然不够好。我认为现在是你开始学习如何编写自己的代码的好时机。从一开始,你现在想要的应该很容易学会。
 
从这里开始。如果你陷入困境,在这里问你的问题,我或其他人会帮助你。如果你不打算清楚而详细地表达你的问题,不要指望有人会读懂你的心思。看看这里如何发帖子,这样你就有机会得到一些答案。此外,请参见AutoCAD的vlide部分中的帮助文件(在命令行上键入vlide并转到“帮助”菜单)。
 
祝你好运
回复

使用道具 举报

pBe

32

主题

2722

帖子

2666

银币

后起之秀

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

铜币
211
发表于 2022-7-6 09:24:30 | 显示全部楼层
 
同上
 
相信我。Autolisp并不难学。
回复

使用道具 举报

88

主题

346

帖子

281

银币

后起之秀

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

铜币
423
发表于 2022-7-6 09:30:13 | 显示全部楼层
编写基本的Autolisp并没有那么难,但我仍然对这里的人编写的代码感到惊讶。。。
我仍然是新手(尤其是在这里的许多人中),但这里有很多代码甚至
试图分析某个特定程序中发生的事情超出了我的理解范围。
 
虽然至少需要学习一些基础知识是有道理的
我们大多数人不会告诉别人,学会自己修车或
学会自己做水管,学会自己做木工活
或板岩或电气工程。
如果你知道怎么做,这些事情都不难。。。
没有人超越了“学习能力”。。。
 
在寻求帮助之前,我会想办法解决问题,但很多应用程序
对我们大多数人来说是相当先进的。
我确实意识到“我需要帮助”和
“我需要有人为我编写一个特定的程序。”
 
我不是唯一一个同时做到这两件事的人。。
 
请宽恕我们这些知识较少的人,否则我们会害怕寻求帮助。。。
回复

使用道具 举报

114

主题

1万

帖子

1万

银币

中流砥柱

Rank: 25

铜币
543
发表于 2022-7-6 09:37:59 | 显示全部楼层
 
但我们大多数人也会付钱给别人帮我们做这些事情,而不是免费的。。。
 
不是恨,只是说。
回复

使用道具 举报

88

主题

346

帖子

281

银币

后起之秀

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

铜币
423
发表于 2022-7-6 09:46:22 | 显示全部楼层
说得好。。。
 
我知道当我提出请求时,我并没有“期待”任何东西。
我“希望并祈祷”有人会怜悯我!
 
让我想起我第一次买卡车的时候。。。。
每个周末我好像都会接到一个电话
 
“这个周末你在做什么?”
 
 
我们中的一些人只是没有达到高级编程的能力。
我渴望它,但我几乎没有通过代数,也没有很好的逻辑头脑。。。
 
我经常来这里是因为那些比我了解更多的人的慷慨。
 
 
一、 首先,我永远感谢您和其他人通过该网站提供的所有帮助!
 
=^.^=
回复

使用道具 举报

发表回复

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

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

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

GMT+8, 2025-3-7 08:31 , Processed in 0.857791 second(s), 72 queries .

© 2020-2025 乐筑天下

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