明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 1408|回复: 4

矩形中心点 ,加中心切割线

[复制链接]
发表于 2022-7-21 00:13:19 | 显示全部楼层 |阅读模式
10明经币
想编一LISP程序,
实现如下功能:框选矩形,计算出矩形(矩形是多义线,矩形是横竖着的,也可能是斜的)的中心点。生成一个点(图层3),还生成一根直线(图层4),直线从矩形的中心点为起点,终点可以为矩形的任意角落。求高手指教,谢谢!



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

最佳答案

查看完整内容

(defun c:NM (/ dxf10 i p0 p1 p2 pp s1 ss) (defun dxf10 (e / s) ;10组码取点 (if (setq s (mapcar 'cdr (vl-remove-if-not '(lambda (x) (= (car x) 10))(entget e)) ) ) (if (= 1 (length s)) ...
发表于 2022-7-21 00:13:20 | 显示全部楼层
本帖最后由 xj6019 于 2022-7-21 13:52 编辑


(defun c:NM (/ dxf10 i p0 p1 p2 pp s1 ss)
        (defun dxf10 (e / s)  ;10组码取点
                (if (setq s
                                        (mapcar 'cdr
                                                (vl-remove-if-not '(lambda (x) (= (car x) 10))(entget e))
                                        )
                                )
                        (if (= 1 (length s))(car s)s)
                )
        )
  (setq i -1)
  (if (setq ss (ssget ":S"(list '(0 . "LWPOLYLINE"))))
    (while (and(setq s1 (ssname ss (setq i (1+ i)))))               
                        (setq pp(dxf10 s1)
                                p1(car pp)
                                p2(caddr pp)
                        )
                        (setq p0(mapcar '(lambda(x)(* 0.5 x)) (mapcar '+ p1 p2)))
                        (vla-AddCircle (vla-get-modelSpace (vla-get-ActiveDocument (vlax-get-acad-object)))(vlax-3D-point p0) (* 0.02 (distance p1 p2)))
                        (vla-put-layer (vlax-ename->vla-object (entlast)) "图层3")
                        (entmake (list '(0 . "LINE") (cons 8  "图层4")(cons 10 p0)  (cons 11 p1)  ))
                )
  )
        (princ)
)
回复

使用道具 举报

 楼主| 发表于 2022-7-27 18:37:33 | 显示全部楼层
xj6019 发表于 2022-7-21 00:13
(defun c:NM (/ dxf10 i p0 p1 p2 pp s1 ss)
        (defun dxf10 (e / s)  ;10组码取点
             ...

谢谢大师帮助。能不能帮修改一下(vla-AddCircle (vla-get-modelSpace (vla-get-ActiveDocument (vlax-get-acad-object)))(vlax-3D-point p0) (* 0.02 (distance p1 p2)))

这句是生成一个圆,能不能改成生成一个点图元 就可以了   点图元在  图层3

评分

参与人数 1明经币 +1 收起 理由
xj6019 + 1 嘿嘿

查看全部评分

回复

使用道具 举报

发表于 2022-7-27 19:08:42 | 显示全部楼层
ninja37 发表于 2022-7-27 18:37
谢谢大师帮助。能不能帮修改一下(vla-AddCircle (vla-get-modelSpace (vla-get-ActiveDocument (vlax-get ...

(vla-AddPoint (vla-get-modelSpace (vla-get-ActiveDocument (vlax-get-acad-object)))(vlax-3D-point p0) )

评分

参与人数 1明经币 +1 收起 理由
ninja37 + 1

查看全部评分

回复

使用道具 举报

发表于 2023-2-14 22:48:04 | 显示全部楼层
感谢楼主,正在寻找这个
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-2-23 07:23 , Processed in 0.170280 second(s), 23 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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