明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
123
返回列表 发新帖
楼主: song宋_74729

[提问] (已解决)叉路口圆弧如何求出交点

[复制链接]
发表于 2022-4-4 17:16:11 | 显示全部楼层
song宋_74729 发表于 2022-4-4 16:02
改为图上标注编号并提
取圆弧首末坐标及交点坐标 半径
夏生生 谢谢

您拿19楼的改改就是了,就是那么几个函数转圈圈
  1. (defun c:tt (/ en f i lst n pt pt1 pt1a pt2 pt2a r ss)
  2.   (setq ss (ssget '((0 . "arc"))))
  3.   (repeat (setq i (sslength ss))
  4.     (setq n    (* 3 i)
  5.     en   (ssname ss (setq i (1- i)))
  6.     r    (rtos (cdr (assoc 40 (entget en))) 2 3)
  7.     pt1  (vlax-curve-getstartpoint en)
  8.     pt1a (mapcar '+
  9.            pt1
  10.            (vlax-curve-getfirstderiv
  11.        en
  12.        (vlax-curve-getparamatpoint en pt1)
  13.        )
  14.            )
  15.     pt2  (vlax-curve-getendpoint en)
  16.     pt2a (mapcar '-
  17.            pt2
  18.            (vlax-curve-getfirstderiv
  19.        en
  20.        (vlax-curve-getparamatpoint en pt2)
  21.        )
  22.            )
  23.     pt   (trans (inters pt1 pt1a pt2 pt2a nil) 0 1)
  24.     pt1  (trans pt1 0 1)
  25.     pt2  (trans pt2 0 1)
  26.     lst  (cons (strcat (itoa n)
  27.            ","
  28.            (rtos (car pt) 2 3)
  29.            ","
  30.            (rtos (cadr pt) 2 3)
  31.            ","
  32.            r
  33.            ",心"
  34.            )
  35.          lst
  36.          )
  37.     lst  (cons (strcat (itoa (1- n))
  38.            ","
  39.            (rtos (car pt2) 2 3)
  40.            ","
  41.            (rtos (cadr pt2) 2 3)
  42.            ","
  43.            r
  44.            ",末"
  45.            )
  46.          lst
  47.          )
  48.     lst  (cons (strcat (itoa (- n 2))
  49.            ","
  50.            (rtos (car pt1) 2 3)
  51.            ","
  52.            (rtos (cadr pt1) 2 3)
  53.            ","
  54.            r
  55.            ",首"
  56.            )
  57.          lst
  58.          )
  59.     )
  60.     (entmake
  61.       (list '(0 . "circle") (cons 10 (trans pt 1 0)) (cons 40 1))
  62.       )
  63.     (entmake (list '(0 . "text")
  64.        '(100 . "AcDbEntity")
  65.        '(100 . "AcDbText")
  66.        (cons 10 (trans pt 1 0))
  67.        (cons 1 (itoa n))
  68.        (cons 40 1)
  69.        )
  70.        )
  71.     (entmake (list '(0 . "text")
  72.        '(100 . "AcDbEntity")
  73.        '(100 . "AcDbText")
  74.        (cons 10 (trans pt2 1 0))
  75.        (cons 1 (itoa (1- n)))
  76.        (cons 40 1)
  77.        )
  78.        )
  79.     (entmake (list '(0 . "text")
  80.        '(100 . "AcDbEntity")
  81.        '(100 . "AcDbText")
  82.        (cons 10 (trans pt1 1 0))
  83.        (cons 1 (itoa (- n 2)))
  84.        (cons 40 1)
  85.        )
  86.        )
  87.     )
  88.   (setq f (open "d:\\1.csv" "w"))
  89.   (foreach n (cons "序号,X=,Y=,半径,点类别" lst)
  90.     (write-line n f)
  91.     )
  92.   (close f)
  93.   )


 楼主| 发表于 2022-4-4 18:03:00 | 显示全部楼层
感谢 夏生生 问题解决了
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-9-29 11:40 , Processed in 0.142075 second(s), 20 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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