明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 1444|回复: 2

[提问] 求高手修改下程序 实现批量在2条直线的交点处画垂线 如何 ?

[复制链接]
发表于 2013-10-13 20:31:51 | 显示全部楼层 |阅读模式


(defun C:qxcx (/ SS PT1 PT2 ANG LST OBJ ORT_OLD PT3 PT4 PT5)
    (if        (and (setq PT1 (getpoint "\n点取线上一点: "))
             (setq SS (ssget PT1
                             '((0 . "*LINE,ARC,CIRCLE,ELLIPSE"))
                      )
             )
        )
        (progn
            (princ "\n选择到了对象。")
            ;;将图元名转换为 VLA对象
            (setq OBJ (vlax-ename->vla-object (ssname SS 0)))
            ;;距pt1最近的曲线上的点pt2
            (setq PT2 (vlax-curve-getclosestpointto OBJ PT1))
            ;;pt2点的切线方向矢量
            (setq LST (vlax-curve-getfirstderiv
                          OBJ
                          (vlax-curve-getparamatpoint
                              OBJ
                              PT2
                          )
                      )
            )
            ;;计算切线方位角
            (setq ANG (atan (/ (cadr LST) (car LST))))
            ;;计算切线上的一点
            (setq PT3 (polar PT2 ANG 10))
            ;;计算垂线上一点
            (setq PT4 (polar PT2 (+ ANG (* 0.5 pi)) 10))
            ;;设置用户坐标系
            (command "_.UCS" "n" "3" PT2 PT3 PT4)
            ;;设置正交
            (setq ORT_OLD (getvar "ORTHOMODE"))
            (setvar "ORTHOMODE" 1) ;_打开正交模式
            (if        (setq PT5 (getpoint '(0 0 0) "\n指定距离: "))
                (command "_.line" "non" '(0 0 0) "non" PT5 "")
            )
            ;;恢复正交模式
            (setvar "ORTHOMODE" ORT_OLD)
            ;;恢复用户坐标系
            (command "_.UCS" "p")
        )
    )
    (princ)
)
;;;=================================================================
"觉得好,就打赏"
还没有人打赏,支持一下
发表于 2013-10-13 22:24:53 | 显示全部楼层

  1. (defun c:tt ()
  2.   (setq dist (udist 3 "" "距离<输入或鼠标直接量取>" dist nil))
  3.   (if (and (setq s1 (car (entsel "\n选择: ")))
  4.            (xyp-curve-check s1)
  5.       )
  6.     (progn
  7.       (redraw s1 3)
  8.       (while (setq p1 (getpoint "\n基点<退出>: "))
  9.         (setq pt (vlax-curve-getclosestpointto s1 p1))
  10.         (xyp-faxian s1 pt dist)
  11.       )
  12.       (redraw s1 4)
  13.     )
  14.   )
  15.   (princ)
  16. )

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

x
发表于 2014-10-31 18:34:56 | 显示全部楼层
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-11-23 07:48 , Processed in 0.232054 second(s), 32 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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