明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 2279|回复: 12

[提问] 求 内缩中间对半打断分开

[复制链接]
发表于 2024-4-22 13:21:45 | 显示全部楼层 |阅读模式
20明经币
本帖最后由 世井 于 2024-4-25 11:30 编辑

[quote][/quote]要怎么把中间没用的线修剪掉呢   
(DEFUN C:TT (/ en pykd pd P4 P6 s1 s2 S2E obj e1 e2)
  (IF (NULL *pykd) (setq *pykd 15))
  (setq pykd (getreal (strcat "\n输入偏移宽度<" (rtos *pykd 2 2) ">:")))
  (if (NULL pykd) (setq pykd *pykd) (setq *pykd pykd))
(setq en(car(entsel)))
(setq pd(POLY:clockwise (mapcar 'cdr(vl-remove-if-not '(lambda (x) (= (car x) 10)) (entget en)))))
(vla-offset (vlax-ename->vla-object en)(if pd pykd (- pykd)))
  (SETQ s1 (entlast))
  (command "change" s1 "" "P" "la" "layer3" "")
  (setq p4 (JNH9PT s1 4)
        p6 (JNH9PT s1 6))
  (setq s2 (LINE p4 p6))
  (SETQ S2E (entlast))
  (setq obj (vlax-ename->vla-object s2E))
  (vla-offset obj (/ pykd 2.0)) (setq e1 (entlast))
     (vla-offset obj (- 0 (/ pykd 2.0))) (setq e2 (entlast))
     (vla-erase obj)
  (princ))

;;;---------------------- 高飞函数改造------------------------------;
;;;功能: 判断多边形的方向(为简单多边形,不自交的多边形);
;;;输入: 多边形顶点列表  Pts(参数是点集)                           ;
;;;输出: 返回T则是顺时针,否则逆时针              ;
(defun POLY:clockwise (Pts / MATet2V)
        (defun MATet2V (v1 v2)
                (-  (* (car v1) (cadr v2))
                    (* (car v2) (cadr v1)) )        )
        (< (* (apply '+
                       (mapcar 'MATet2V pts
                               (append (cdr Pts) (list (car Pts)))
                            )) 0.5   ) 0.0        ))

;
(defun getboundingbox (e / BP UP)
  (cond ((equal (type e) 'ENAME) (setq e (vlax-ename->vla-object e))))
  (vla-getboundingbox e 'bp 'up)
  (list (safearray-value bp) (safearray-value up)))
;包围实体9点坐标 (JNH9PT e site)
(DEFUN JNH9PT (e site / obj p1 p2 p3 p4 p5 p6 p7 p8 p9)
  (defun MID (p1 p2) (mapcar '(lambda (x) (* x 0.5)) (mapcar '+ p1 p2)))
    (SETQ obj (getboundingbox e))
  (setq p1 (car obj))
  (setq p9 (cadr obj))
  (setq p3 (list (car p9)(cadr p1)))
  (setq p7 (list (car p1)(cadr p9)));
  (setq p2 (MID P1 P3))
  (setq p8 (MID P7 P9))
  (setq p4 (MID P1 P7))
  (setq p6 (MID P3 P9))
  (setq p5 (MID P1 P9))
  (nth (- site 1) (list p1 p2 p3 p4 p5 p6 p7 p8 p9))    )
(defun LINE (pt pt1)
  (entmake (list '(0 . "LINE") (cons 10 pt) (cons 11 pt1))))求 大神来个内缩中间对半打断 分开 或者三等分
附件: 您需要 登录 才可以下载或查看,没有账号?注册

最佳答案

查看完整内容

大致改了下你的,快捷键TT
"觉得好,就打赏"
还没有人打赏,支持一下
发表于 2024-4-22 13:21:46 | 显示全部楼层
大致改了下你的,快捷键TT



本帖子中包含更多资源

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

x
回复

使用道具 举报

发表于 2024-4-22 14:13:49 | 显示全部楼层
什么的中间,包围盒的中心点?
回复

使用道具 举报

 楼主| 发表于 2024-4-22 14:18:50 | 显示全部楼层
ssyfeng 发表于 2024-4-22 14:13
什么的中间,包围盒的中心点?

对是的  ...
回复

使用道具 举报

发表于 2024-4-22 14:26:59 | 显示全部楼层
先偏移,后求偏移对象的包围盒,求中心点,再画条水平射线求交点,再重构两段多段线
回复

使用道具 举报

 楼主| 发表于 2024-4-22 14:59:58 | 显示全部楼层
ssyfeng 发表于 2024-4-22 14:26
先偏移,后求偏移对象的包围盒,求中心点,再画条水平射线求交点,再重构两段多段线

偏移里面算不来
回复

使用道具 举报

发表于 2024-4-22 18:18:49 | 显示全部楼层

本帖子中包含更多资源

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

x
回复

使用道具 举报

 楼主| 发表于 2024-4-23 09:57:14 | 显示全部楼层
回复

使用道具 举报

发表于 2024-4-23 13:17:38 | 显示全部楼层
以下是偏移代码
(setq en(car(entsel)))
(setq pykd(getreal "\n输入偏移宽度"))
(setq pd(POLY:clockwise (mapcar 'cdr(vl-remove-if-not '(lambda (x) (= (car x) 10)) (entget en)))))
(vla-offset (vlax-ename->vla-object en)(if pd pykd (- pykd)))

;;;---------------------- 高飞函数改造------------------------------;
;;;功能: 判断多边形的方向(为简单多边形,不自交的多边形);
;;;输入: 多边形顶点列表  Pts(参数是点集)                           ;
;;;输出: 返回T则是顺时针,否则逆时针              ;
(defun POLY:clockwise (Pts / MATet2V)
        (defun MATet2V (v1 v2)
                (-         (* (car v1) (cadr v2))
                    (* (car v2) (cadr v1))
                )
        )
        (< (* (apply '+
                       (mapcar 'MATet2V pts
                               (append (cdr Pts) (list (car Pts)))
                            )
                   ) 0.5
                 ) 0.0
        )
)
回复

使用道具 举报

发表于 2024-4-23 23:59:50 | 显示全部楼层

本帖子中包含更多资源

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

x
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-11-25 19:47 , Processed in 0.185813 second(s), 25 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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