明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 334|回复: 3

[基础] 圆心、半径、起始角度和终止角度画弧

[复制链接]
发表于 5 天前 | 显示全部楼层 |阅读模式
本帖最后由 fangmin723 于 2025-1-17 13:15 编辑

特别提醒:终止角度没有捕捉和输入指定角度的功能

  1. ;;;圆心、半径、起始角度和终止角度画弧 2023.4.23
  2. ;;;2024.6.21 动态显示

  3. (defun c:acr(/ *error* arcdata carc cen dxf50 dxf51 ea gr olderr pt r sa)
  4.   (setq olderr *error*)
  5.   (defun *error*(msg) (entdel carc) (princ "\n程序强制已退出!") (setq *error* olderr) (princ))
  6.   (while (/= (type (setq cen (getpoint "\n指定圆弧的圆心[ESC退出]:"))) 'LIST))
  7.   (while (/= (type (setq r (getdist cen "\n指定圆弧的半径[ESC退出]: "))) 'REAL))
  8.   (while (/= (type (setq sa (getangle cen "\n指定圆弧起始角度[ESC退出]:"))) 'REAL))
  9.   (setq carc (entmakex (list '(0 . "ARC") (cons 10 cen) (cons 40 r) (cons 50 sa) (cons 51 sa))) arcdata (entget carc))
  10.   (prompt "\n指定圆弧终止角度[ESC退出]:")
  11.   (while (or (and (setq gr (grread T 15 0)) (= (car gr) 5)) (or (= (car gr) 2) (= (car gr) 11) (= (car gr) 12) (= (car gr) 25)))
  12.     (if (= (car gr) 5)
  13.       (progn
  14.         (setq ea (angle cen (cadr gr)))
  15.         (setq arcdata (subst (cons 51 ea) (assoc 51 arcdata) arcdata))
  16.         (entmod arcdata)
  17.       )
  18.     )
  19.   )
  20.   (prompt "\n请使用【空格】改变圆弧方向,左键单击完成!")
  21.   (while (or (and (setq gr (grread T 15 0)) (= (car gr) 5)) (or (= (car gr) 2) (= (car gr) 11) (= (car gr) 12) (= (car gr) 25)))
  22.     (if (equal gr '(2 32))
  23.       (progn
  24.         (setq dxf50 (cons 50 (cdr (assoc 51 arcdata))) dxf51 (cons 51 (cdr (assoc 50 arcdata))))
  25.         (setq arcdata (subst dxf50 (assoc 50 arcdata) arcdata))
  26.         (setq arcdata (subst dxf51 (assoc 51 arcdata) arcdata))
  27.         (entmod arcdata)
  28.       )
  29.     )
  30.   )
  31.   (setq *error* olderr)
  32.   (prin1)
  33. )


具体用归何处,参考:https://www.bilibili.com/video/BV1Xa4y1P75d

还是CAD.Net给力,不影响捕捉和角度值的输入


本帖子中包含更多资源

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

x

评分

参与人数 1明经币 +1 收起 理由
cghdy + 1 很给力!

查看全部评分

"觉得好,就打赏"
还没有人打赏,支持一下
回复

使用道具 举报

发表于 5 天前 | 显示全部楼层
getdist不是initget控制的吗?
回复 支持 反对

使用道具 举报

 楼主| 发表于 5 天前 | 显示全部楼层
本帖最后由 fangmin723 于 2025-1-17 08:05 编辑
自贡黄明儒 发表于 2025-1-17 07:57
getdist不是initget控制的吗?

可以用initget来控制程序功能走向,当时没有考虑那么多,就着当时的情况以及想要的效果写的
回复 支持 反对

使用道具 举报

发表于 4 天前 | 显示全部楼层
;;加个动态角度显示可能更直观


本帖子中包含更多资源

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

x
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-1-22 18:44 , Processed in 0.188339 second(s), 27 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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