明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 3318|回复: 6

已知一条直线和这条直线上一点,求画经过这个点并与这条直线垂直的线

[复制链接]
发表于 2006-4-7 18:29:00 | 显示全部楼层 |阅读模式
已知一条直线和这条直线上一点,求画经过这个点并与这条直线垂直的线段(长度已知,线一端为该点),请问用程序如何实现?谢谢
发表于 2006-4-7 22:04:00 | 显示全部楼层

这样的线段有两条。  分布在这条直线的两边。下面的程式是我随手写的,没有经过测试。您用用看。  如有问题可回帖。

(defun c:test0407()
  (setq os(getvar "osmode"))
  (setvar "osmode" 1)
  (setq ent(car(entsel"\n选择直线:");已知直线
      pt(getpoint"\n选择点:");直线上的点
      dist(getdistance"\n输入线段长:")
      info(entget ent))      
  (setvar "osmode" 0)
  (setq an(angle pt (list (cadr(assoc 10 info))(caddr(assoc 10 info))));这句???
     (setq pt2(polar pt (+ an (/ pi 2)) dist))
   (setq pt3(ploar pt (- an (/ pi 2)) dist))  ;pt和pt2(pt3)所连的线为已知直线的垂线
  (command "pline" pt pt2 "")
  (command "pline" pt pt3 "")
  )

发表于 2006-4-8 07:56:00 | 显示全部楼层

我也贴一个

[code]

;;;过直线上指定点作与已知直线的垂线
;;;by ljpnb
(defun c:p-l ()
  (setq errtmp *error*)
  (setq *error* err)
  (setq os (getvar "osmode"))
  (setq ent (car (entsel "\n 选择一条直线: ")))
  (setq point (getpoint "\n选择与已经直线垂直的起点: "))
  (setq obj (vlax-Ename->Vla-Object ent))
  (setq ang (vla-get-Angle obj))
  (if (> ang pi)
    (setq ang (- ang pi))
  )
  (setvar "osmode" 0)
  (setvar "snapang" ang)
  (setvar "ORTHOMODE" 1)
  (command "line" point pause "")
  (setvar "snapang" 0)
  (setvar "osmode" os)
  (setq *error* errtmp)   
  (princ)
)

(defun err (msg)
  (setvar "snapang" 0)
  (setvar "osmode" os)
  (setq *error* errtmp)   
)

[code]

明经网友  发表于 2010-6-23 20:00:00
;;;过直线上指定点作与已知直线的垂线
;;;by ljpnb
(defun c:p-l ()
  (setq errtmp *error*)
  (setq *error* err)
  (setq os (getvar "osmode"))
  (setq ent (car (entsel "\\n 选择一条直线: ")))
  (setq point (getpoint "\\n选择与已经直线垂直的起点: "))
  (setq obj (vlax-Ename->Vla-Object ent))
  (setq ang (vla-get-Angle obj))
  (if (> ang pi)
    (setq ang (- ang pi))
  )
  (setvar "osmode" 0)
  (setvar "snapang" ang)
  (setvar "ORTHOMODE" 1)
  (command "line" point pause "")
  (setvar "snapang" 0)
  (setvar "osmode" os)
  (setq *error* errtmp)   
  (princ)
)

(defun err (msg)
  (setvar "snapang" 0)
  (setvar "osmode" os)
  (setq *error* errtmp)   
)
回复 支持 反对

使用道具

发表于 2010-6-23 20:46:00 | 显示全部楼层
露水2又成黑客了!
发表于 2010-6-30 16:54:00 | 显示全部楼层
测试通过,谢谢。
发表于 2010-6-30 18:10:00 | 显示全部楼层
也测试过,通过
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-10-2 06:31 , Processed in 0.180382 second(s), 26 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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