明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 1720|回复: 8

付费:点两条直线或多义线在这两条线的交点产生一个点

[复制链接]
发表于 2019-8-15 17:38:34 | 显示全部楼层 |阅读模式
不需要那条线,点两下出现箭头处的点(就需要那个点),点的样式按系统的设定。有意的联系我(小东西不要天价)qq:1016768907

本帖子中包含更多资源

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

x
发表于 2019-8-15 19:28:03 | 显示全部楼层
;试用以下程序
(defun c:qjd()
     (vl-load-com)
     (setq cmd (getvar "cmdecho"))
     (setq osm (getvar "osmode"))
     (setvar "cmdecho" 0)
     (setvar "osmode" 0)
     (command "_undo" "be")
     (if (and
              (princ "\n请选取第1条线:")
              (setq ssa (ssget ":S" '((0 . "line,lwpolyline"))))
              (princ "\n请选取第2条线:")
              (setq ssb (ssget ":S" '((0 . "line,lwpolyline"))))
         )
         (progn
             (setq obja (vlax-ename->vla-object (ssname ssa 0)))
             (setq objb (vlax-ename->vla-object (ssname ssb 0)))
             (setq jdb (vl-catch-all-apply 'vlax-invoke (list obja "intersectwith" objb acExtendBoth)))
             (if (not (vl-catch-all-error-p jdb))
                 (progn
                     (setq pt (list (car jdb) (cadr jdb)))
                     (command "_point" pt)
                     (command "_chprop" (entlast) "" "c" 1 "")
                     (command "_circle" pt 1)
                     (command "_chprop" (entlast) "" "c" 1 "")
                 )
                 (alert "求交点出错!")
            )
         )
     )
     (command "_undo" "e")
     (setvar "osmode" osm)
     (setvar "cmdecho" cmd)
     (princ)
)
 楼主| 发表于 2019-8-16 00:16:02 | 显示全部楼层
yshf 发表于 2019-8-15 19:28
;试用以下程序
(defun c:qjd()
     (vl-load-com)

谢谢热心的坛友。
 楼主| 发表于 2019-8-16 00:16:25 | 显示全部楼层
谢谢上面热心的坛友。
发表于 2019-8-23 17:33:46 | 显示全部楼层
 楼主| 发表于 2019-8-28 17:05:53 | 显示全部楼层
djjeson 发表于 2019-8-23 17:33
刚好看到一个类似的 http://bbs.mjtd.com/forum.php?mod=viewthread&tid=77085&extra=&highlight=%BD%BB%B5 ...

谢谢,我买了一个,你要的话可以艾特我。
发表于 2019-12-3 15:08:01 | 显示全部楼层
不知道哪位热心人能否帮忙把圆半径1改为提示输入的数值?
发表于 2019-12-5 09:02:46 | 显示全部楼层
sunny_8848 发表于 2019-12-3 15:08
不知道哪位热心人能否帮忙把圆半径1改为提示输入的数值?

(defun c:qjd()
     (vl-load-com)
     (setq cmd (getvar "cmdecho"))
     (setq osm (getvar "osmode"))
     (setvar "cmdecho" 0)
     (setvar "osmode" 0)
     (command "_undo" "be")
     (if (and
              (princ "\n请选取第1条线:")
              (setq ssa (ssget ":S" '((0 . "line,lwpolyline"))))
              (princ "\n请选取第2条线:")
              (setq ssb (ssget ":S" '((0 . "line,lwpolyline"))))
         )
         (progn
             (setq obja (vlax-ename->vla-object (ssname ssa 0)))
             (setq objb (vlax-ename->vla-object (ssname ssb 0)))
             (setq jdb (vl-catch-all-apply 'vlax-invoke (list obja "intersectwith" objb acExtendBoth)))
             (if (not (vl-catch-all-error-p jdb))
                 (progn
                   ;;自定义半径
                   (setq r (getreal"\n输入圆半径: "))
                     (setq pt (list (car jdb) (cadr jdb)))
                     (command "_point" pt)
                     (command "_chprop" (entlast) "" "c" 1 "")
                     (command "_circle" pt r)
                     (command "_chprop" (entlast) "" "c" 1 "")
                 )
                 (alert "求交点出错!")
            )
         )
     )
     (command "_undo" "e")
     (setvar "osmode" osm)
     (setvar "cmdecho" cmd)
     (princ)
)
发表于 2019-12-5 10:34:34 | 显示全部楼层
satan421 发表于 2019-12-5 09:02
(defun c:qjd()
     (vl-load-com)
     (setq cmd (getvar "cmdecho"))

非常感谢帮忙,效果完美
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-11-18 08:45 , Processed in 0.177444 second(s), 24 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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