明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 1597|回复: 1

[讨论] 圆、弧时,如果中心点没有相互垂直的两条线,画十字中心线

[复制链接]
发表于 2013-11-19 09:15:31 | 显示全部楼层 |阅读模式
  1. ;;圆、弧时,如果中心点没有相互垂直的两条线,画十字中心线
  2. (defun HH:circleCross (en / ANG1 ANG2 E1EN E1ST        E2EN E2ST EN1 EN2 ENT P10 PX1 PX2 PY1 PY2 R
  3.                        SS)
  4.   (setq ent (entget en))
  5.   (setq p10 (cdr (assoc 10 ent)))
  6.   (setq r (* (cdr (assoc 40 ent)) 1.25))
  7.   (if (and (setq ss (ssget "_C"
  8.                            p10
  9.                            p10
  10.                            (list '(-4 . "<or")          '(0 . "LINE")           '(-4 . "<and")
  11.                                  '(0 . "LWPOLYLINE")                   '(90 . 2)
  12.                                  '(-4 . "and>")          '(-4 . "or>")
  13.                                 )
  14.                     )
  15.            )
  16.            (cond ((equal (sslength ss) 2)
  17.                   (setq en1 (ssname ss 0))
  18.                   (setq en2 (ssname ss 1))
  19.                   (setq e1st (vlax-curve-getStartPoint en1))
  20.                   (setq e1en (vlax-curve-getendPoint en1))
  21.                   (setq e2st (vlax-curve-getStartPoint en2))
  22.                   (setq e2en (vlax-curve-getendPoint en2))
  23.                   (setq ang1 (angle e1st e1en))
  24.                   (setq ang2 (angle e2st e2en))
  25.                   (equal (rem (- ang1 ang2) (/ pi 2)) 0)
  26.                  )
  27.                  ((> (sslength ss) 2) T)
  28.                  (T nil)
  29.            )
  30.       )
  31.     nil
  32.     (progn
  33.       (setq px1 (mapcar '- p10 (list r 0 0)))
  34.       (setq px2 (mapcar '+ p10 (list r 0 0)))
  35.       (entmake (list (cons 0 "LINE") (cons 10 px1) (cons 11 px2)))
  36.       (setq py1 (mapcar '- p10 (list 0 r 0)))
  37.       (setq py2 (mapcar '+ p10 (list 0 r 0)))
  38.       (entmake (list (cons 0 "LINE") (cons 10 py1) (cons 11 py2)))
  39.     )
  40.   )
  41. )
  42. (defun C:W3 (/ EN)
  43.   (setq en (car (entsel)))
  44.   (HH:circleCross en)
  45.   (princ)
  46. )
"觉得好,就打赏"
还没有人打赏,支持一下

本帖被以下淘专辑推荐:

发表于 2018-6-6 16:04:05 | 显示全部楼层
黄老师,这函数我给你挖出来,让你回忆下,哈哈。

可不可以圆与直线  弧与直线    他们的最近点两线链接并垂直啊。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2025-5-19 13:49 , Processed in 0.152835 second(s), 28 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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