明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 883|回复: 2

[源码] 圆画中心线,小韩和小星的代码

[复制链接]
发表于 2023-9-24 11:42:44 | 显示全部楼层 |阅读模式
波总群里的代码,加群群号437857444,非常好的交流群,圆画中心线,小韩和小星的代码

(defun c:zxx(/ i l osm p1 p2 p3 p4 pa pb pt0 r s1 ss)
        (setvar "CMDECHO" 0)
        (while
                (and
                        (setq
                                pa (getpoint "选择圆:")
                                pb (getcorner pa)
                                ss (ssget "c" pa pb '((0 . "circle")))
                                osm (getvar "osmode")
                                l (getreal "\n 请输入中心线延伸长度(mm):")
                        )
                )
                (if ss
                        (progn
                                (setq i -1)
                                (setvar "osmode" 0)
                                (repeat (sslength ss)
                                        (setq
                                                s1 (entget (ssname ss (setq i (1+ i))))
                                                pt0 (cdr (assoc 10 s1))
                                                r (cdr (assoc 40 s1))                                               
                                        )                                       
                                        (command "layer" "m" 5 "l" "center" 5 "c" 1 5 "")
                                        (command "ltscale" 8);设置线型比例
                                        (setq
                                                p1 (polar pt0 0 (/ l 2))
                                                p2 (polar pt0 pi (/ l 2))
                                                p3 (polar pt0 (* 0.5 pi) (/ l 2))
                                                p4 (polar pt0 (* -0.5 pi) (/ l 2))
                                        )
                                        (command "line" p1 p2 "")
                                        (command "line" p3 p4 "")
                                        (command "layer" "s" 0 "")
                                )
                                (setvar "osmode" osm)
                        )
                )
        )
)


(defun C:zxx(/)
        (setvar "osmode" 512)
                (if (SETQ  pc (ssget '((0 . "CIRCLE"))));画选ssget
                        (progn
                                (SETQ  l (getreal "\n 请输入中心线延伸长度(mm):"))
                                (setq i 0)
                                (repeat (sslength pc)
                                (SETQ  s1(entget(ssname pc i))
                                        pt0(cdr(assoc 10 s1));获得圆心坐标
                                        r (cdr(assoc 40 s1));获得圆的半径
                                )
                                (command "layer" "m" 5 "l" "center" 5 "c" 1 5 "")
                                (command "ltscale" 8);设置线型比例
                                (command "line"(polar pt0 pi (+ r l)) (polar pt0 0 (+ r l)) "")
                                (command "line" (polar pt0 (* pi 0.5) (+ r l)) (polar pt0 (* pi 1.5) (+ r l)) "")
                                (command "layer" "s" 0 "")
                                        (setq i (1+ i))
                                )
                        );progn
    );if
        (PRINC)
);end defun



"觉得好,就打赏"
还没有人打赏,支持一下
发表于 2023-9-24 18:42:21 | 显示全部楼层
具体啥作用呢?是画个圆后就自动出来中心线那种?中心线能指定长短吗?可以十字型出现么?
发表于 2023-9-24 18:44:18 | 显示全部楼层
还是很感谢分享的,有时会用得到,看看是不是适合我的这种
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-11-17 06:23 , Processed in 0.151973 second(s), 25 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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