明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 1528|回复: 11

[讨论] 桥接程序求完善

[复制链接]
发表于 2023-2-24 18:09:46 | 显示全部楼层 |阅读模式
  • (defun c:ff()
  •   (command "undo" "be")
  •   (setvar "cmdecho" 0)
  •   (setq bz(getvar "osmode"))(setvar "osmode" 0)
  •   (setq p1(getpoint "\n选择桥接起点:"))
  •   (setq p2(getpoint p1 "\n选择桥接终点:"))
  •   (setq p3(polar p1 (angle p2 p1) 0.01));---外扩点(为后面框选做准备)
  •   (setq p4(polar p2 (angle p1 p2) 0.01));---外扩点(为后面框选做准备)
  •   (setq p5(polar p1 (angle p1 p2) 0.01));---内缩点(为后面修剪做准备)
  •   (setq p6(polar p2 (angle p2 p1) 0.01));---内缩点(为后面修剪做准备)
  •   (setq jk(getdist "\n量取或输入桥接宽度:<5>"))(if (null jk)(setq jk 5))
  •   (setq d(* jk 0.5))
  •   (setq dd(* d 0.999));---内缩
  •   (setq ddd(* d 1.001));---外扩
  •   (setq r(+ (angle p1 p2) (* pi 0.5)))
  •   (command "pline" (polar p1 r (- d)) (polar p2 r (- d)) (polar p2 r d) (polar p1 r d) "c")
  •   (setq rec(entlast))
  •   (command "trim" rec "" "f" (polar p5 r (- dd)) (polar p6 r (- dd)) (polar p6 r dd) (polar p5 r dd) (polar p5 r (- dd)) "" "")
  •   (setq ss(ssget "wp" (list (polar p3 r (- ddd)) (polar p4 r (- ddd)) (polar p4 r ddd) (polar p3 r ddd))))
  •   (command "erase" ss "")
  •   (setvar "osmode" bz)
  •   (command "undo" "e")
  •   (setvar "cmdecho" 0)
  •   (princ)
  • )

本帖子中包含更多资源

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

x
"觉得好,就打赏"
还没有人打赏,支持一下
发表于 2023-2-24 18:57:36 | 显示全部楼层
本帖最后由 cq4920 于 2023-2-24 19:18 编辑
  1. ;;平面开门洞
  2. (defun c:ttr (/ os p1 p2 ss layername i n ptla obj ptl ent   )
  3.         (setvar "cmdecho" 0)
  4.   (setq os (getvar "osmode"))
  5.         (setq p1 (getpoint"\n 指定双线外侧第一点"))
  6.         (setq p2 (getpoint p1 "\n 指定双线另一侧的点"))
  7.         (setq
  8.                 ss (ssget "_f" (list p1 p2))
  9.                 layername (cdr (assoc 8 (entget (ssname ss 0)))))
  10.         (entmake (list '(0 . "LINE") (cons 10 p1) (cons 11 p2)))
  11.         (setq ent (entlast))
  12.         (setq i 0 n (sslength ss) ptla '())
  13.         (repeat n
  14.    (setq obj  (ssname ss i))
  15.      (setq ptl  (HH:TwoEntsInters  ent obj 0))
  16.                  (setq ptla (append ptla ptl))
  17.    (setq i (1+ i))
  18. )
  19.   (setq ptla        (MC-pt ptla))
  20.         (COMMAND "_.erase"  ENT "")
  21.   (command "_.BOUNDARY" (mc:md (car ptla) (cadr ptla)) "")
  22.         (mc:ggtc (last_ent ent) layername)
  23.         (setvar "osmode" 0)         
  24.         (vl-cmdf "trim"  "" "f"  p1  p2 "" "")
  25.         (lj (ssget "x" (list (cons 0 "line,LWPOLYLINE,arc") (cons 8 layername))) )
  26.         (command "._undo" "end")
  27.   (setvar "osmode" os)
  28.         (princ)
  29. )


如果是这样的问题那我其他的帖子可以看一看!!


本帖子中包含更多资源

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

x
发表于 2023-2-24 19:04:20 | 显示全部楼层
aws 发表于 2023-2-24 18:56
如果能获取到四个端点,加个判断,两两连接,是可以做到的。问题是,怎么获取这四个端点?

就是 你图中的状态是一开始就是如此,还是你将双线,用命令TR剪切后形成的,如果一开始如此,那就可以直接框选,如果一开始是双线,那么在你打断的时候 就已经得到了4个的坐标!
发表于 2023-2-24 18:41:06 | 显示全部楼层
aws 发表于 2023-2-24 18:11
现在就差最后一步了,就是把四个点,进行连线,但是没有头绪,有没有大佬,能提供思路

框选4个端点 并且得到每个端点与之对应的下一点,如果是直线就求另一点 如果是多义线,就求相邻点,然后计算这两点的在空间内的方向,按照方向相同分两组,分别连接
 楼主| 发表于 2023-2-24 18:11:01 | 显示全部楼层
现在就差最后一步了,就是把四个点,进行连线,但是没有头绪,有没有大佬,能提供思路
发表于 2023-2-24 18:53:42 | 显示全部楼层
aws 发表于 2023-2-24 18:11
现在就差最后一步了,就是把四个点,进行连线,但是没有头绪,有没有大佬,能提供思路

按什么规则连接?找出规则,就不是难事。
 楼主| 发表于 2023-2-24 18:54:52 | 显示全部楼层
mahuan1279 发表于 2023-2-24 18:53
按什么规则连接?找出规则,就不是难事。

这还不太好语言表达,就按照图片上的情况连接
 楼主| 发表于 2023-2-24 18:56:52 | 显示全部楼层
cq4920 发表于 2023-2-24 18:41
框选4个端点 并且得到每个端点与之对应的下一点,如果是直线就求另一点 如果是多义线,就求相邻点,然后 ...

如果能获取到四个端点,加个判断,两两连接,是可以做到的。问题是,怎么获取这四个端点?
 楼主| 发表于 2023-2-24 19:02:49 | 显示全部楼层
如图所示,我需要连接p1和p3,p2和p4,如果能获取到这四个点,分别计算他们的angle函数值。如果等于起点和终点的angle函数值,就进行连线。否则就不连线。

本帖子中包含更多资源

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

x
 楼主| 发表于 2023-2-24 19:10:21 | 显示全部楼层
cq4920 发表于 2023-2-24 19:04
就是 你图中的状态是一开始就是如此,还是你将双线,用命令TR剪切后形成的,如果一开始如此,那就可以直 ...

一开始是两个完整矩形,通过tr修剪后形成的缺口,那么我怎么调出来那四个坐标呢
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-11-16 10:29 , Processed in 0.281547 second(s), 28 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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