明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 2826|回复: 5

直线上任意点取位置画线程序

[复制链接]
发表于 2012-2-27 23:18:28 | 显示全部楼层 |阅读模式
请教各位大虾:

程序功能:要求在选取的点位置(必须在直线图元上)画线

;;;两直线之间画线
(defun c:tt()
  (setvar "osmode" 0)
  (princ "\请指定起始点:")
  (setq en1(entsel))
  (princ "\请指定终点:")
  (setq en2(entsel))
  (setq pt1(cadr en1))
  (setq pt2(cadr en2))
  (command "line" pt1 pt2 "")
)
运行结果:

所画直线跑了,起点和终点不在选取的两条直线上!
不知如何解决?期待高手解答!!!


本帖子中包含更多资源

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

x
发表于 2012-2-28 00:23:31 | 显示全部楼层
需要用vlax-curve-getclosestpointto函数解决
发表于 2012-2-28 08:37:04 | 显示全部楼层
要捕捉一下,点才能落到直线上
发表于 2012-2-28 13:58:24 | 显示全部楼层
(defun c:TT (/ P1 P2)
(if (and (setq P1 (getpoint "\n指定起点: "))
         (setq P1 (nentselp P1))
         (setq P1 (apply 'vlax-curve-getclosestpointto P1))
         (setq P2 (getpoint "\n指定起点: "))
         (setq P2 (nentselp P2))
         (setq P2 (apply 'vlax-curve-getclosestpointto P2))
    )
  (command "_.LINE" "_NON" P1 "_NON" P2 "")
)
)
 楼主| 发表于 2012-2-28 23:16:28 | 显示全部楼层
谢谢各位大虾指点,程序已修改成功!

;;;两直线之间画线
(defun c:tt ()
  (setvar "osmode" 0)
  (princ "\请指定起始点:")
  (setq en1 (entsel))
  (setq pt1 (osnap (cadr en1) "nea"))
  (princ "\请指定终点:")
  (setq en2 (entsel))
  (setq pt2 (osnap (cadr en2) "nea"))
  (command "line" pt1 pt2 "")
)
发表于 2012-5-16 21:35:32 | 显示全部楼层
谢谢楼主,学习了
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2025-7-22 05:06 , Processed in 0.192834 second(s), 28 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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