明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 1260|回复: 9

[提问] 各位大神,求两个图层的线的交点形成圆

[复制链接]
发表于 2023-4-26 21:45:33 | 显示全部楼层 |阅读模式
各位大神,求两个图层的线的交点形成圆,输入tt,提示选择第一个图层,然后提示选择第二个图层,然后选择图纸范围,范围内的图层一和图层二的线的交点形成圆形
"觉得好,就打赏"
还没有人打赏,支持一下
发表于 2023-5-2 11:38:08 | 显示全部楼层
  1. (defun c:tt  (/ en en1 en2 int lst1 lst2 n pt space ss)
  2.   (setq  en1   (car (entsel "\n图层1"))
  3.   en2   (car (entsel "\n图层2"))
  4.   ss    (ssget "w"
  5.          (setq pt (getpoint "\n窗口第一点:"))
  6.          (getcorner pt "\n窗口第二点:")
  7.          (list '(-4 . "<or")
  8.          (setq en1 (assoc 8 (entget en1)))
  9.          (setq en2 (assoc 8 (entget en2)))
  10.          '(-4 . "or>")))
  11.   space (vlax-get-property
  12.     (vlax-get-property
  13.       (vlax-get-acad-object)
  14.       "activedocument")
  15.     "ModelSpace"))
  16.   (repeat (setq n (sslength ss))
  17.     (setq en (ssname ss (setq n (1- n))))
  18.     (if  (equal en1 (assoc 8 (entget en)))
  19.       (setq lst1 (cons (vlax-ename->vla-object en) lst1))
  20.       (setq lst2 (cons (vlax-ename->vla-object en) lst2))))
  21.   (while lst1
  22.     (setq en1  (car lst1)
  23.     lst1 (cdr lst1))
  24.     (foreach n  lst2
  25.       (if (null  (vl-catch-all-error-p
  26.       (setq  int (vl-catch-all-apply
  27.             'vlax-safearray->list
  28.             (list (vlax-variant-value
  29.               (vlax-invoke-method
  30.           en1
  31.           "intersectwith"
  32.           n
  33.           acextendnone)))))))
  34.   (while int
  35.     (vlax-invoke-method
  36.       space
  37.       "addcircle"
  38.       (vlax-3d-point (car int) (cadr int) (caddr int))
  39.       50)
  40.     (setq int (cdddr int)))))))
我也来凑个热闹,极不严谨的代码
回复 支持 1 反对 0

使用道具 举报

发表于 2023-4-26 23:09:45 | 显示全部楼层
本帖最后由 vitalgg 于 2023-4-26 23:11 编辑

  1. (defun c:tt ()
  2.   (setq lay1 (entity:getdxf(car (entsel (@:speak"请点选第一个图层上的图形:"))) 8))
  3.   (setq lay2 (entity:getdxf(car (entsel (@:speak"请点选第二个图层上的图形:"))) 8))
  4.   (setq pt2 (getcorner (setq pt1(getpoint (@:speak"矩形第一角点:")))(@:speak"矩形第二角点:")))
  5.   (setq ents1 (pickset:to-list(ssget "w" pt1 pt2  (list (cons 0 (@:get-config '@curve:types))(cons 8 lay1)))))
  6.   (setq ents2 (pickset:to-list(ssget "w" pt1 pt2  (list (cons 0 (@:get-config '@curve:types))(cons 8 lay2)))))
  7.   (setq res nil)
  8.   (foreach ent1 ents1
  9.     (foreach ent2 ents2
  10.       (setq res (append res
  11.                     (curve:inters ent1 ent2 acextendnone)
  12.       ))))
  13.   (entity:make-circle
  14.     (vl-remove nil res)
  15.     50
  16.   ))




回复 支持 1 反对 0

使用道具 举报

发表于 2023-5-2 07:10:48 | 显示全部楼层
本帖最后由 zhaoxt 于 2023-5-2 07:15 编辑

稍微提点小意见。提问了问题有人解答,还是要表示下感谢的。我一开始以为你没登陆网站,但后来却看到你昨天还极有耐心的翻出了2008年的一个老帖,还在问人家要代码当然,这也可能只是是你疏忽忘记了 ,我想说的是,这个论坛对初学LISP的人真的很有用,都这样的话大家回复的热情就越来越少,能想象一下只有新手提问却无人回答的场面吗。。。。。。。。。。。。
 楼主| 发表于 2023-5-2 09:16:49 | 显示全部楼层
zhaoxt 发表于 2023-5-2 07:10
稍微提点小意见。提问了问题有人解答,还是要表示下感谢的。我一开始以为你没登陆网站,但后来却看到你昨天 ...

我了楼上那位已经再qq上深入交流了,谢谢你提的意见,我混迹论坛十几年,基本都是熟人了
 楼主| 发表于 2023-5-2 09:24:44 | 显示全部楼层
zhaoxt 发表于 2023-5-2 07:10
稍微提点小意见。提问了问题有人解答,还是要表示下感谢的。我一开始以为你没登陆网站,但后来却看到你昨天 ...

谢谢你啊,你也是一位非常热心的人
 楼主| 发表于 2023-5-2 11:44:31 | 显示全部楼层
x_s_s_1 发表于 2023-5-2 11:38
我也来凑个热闹,极不严谨的代码

大佬你可以更加严谨点
发表于 2023-5-2 12:00:27 | 显示全部楼层
x_s_s_1 发表于 2023-5-2 11:38
我也来凑个热闹,极不严谨的代码

大家是真谦虚啊
发表于 2023-5-25 09:31:23 | 显示全部楼层
感谢大神提供源码供我辈学习。
 楼主| 发表于 2023-5-25 16:31:15 | 显示全部楼层
jkop 发表于 2023-5-25 09:31
感谢大神提供源码供我辈学习。

期待你变大神.....
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-11-16 18:25 , Processed in 0.204568 second(s), 26 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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