明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 1181|回复: 19

[源码] (ACR)圆心、半径、起始角度和终止角度画弧

[复制链接]
发表于 2024-6-21 15:35:28 | 显示全部楼层 |阅读模式
  1. ;;;圆心、半径、起始角度和终止角度画弧 by 702099480@qq.com 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程序强制已退出!") (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.   (prin1)
  32. )


本帖子中包含更多资源

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

x
"觉得好,就打赏"
还没有人打赏,支持一下
 楼主| 发表于 2024-6-21 16:04:14 | 显示全部楼层
cjf160204 发表于 2024-6-21 15:56
主要就是角度的设置

拿走,不谢!!!
  1. (entmake
  2.         (list '(0 . "ARC")
  3.                 (cons 10 (setq cen (getpoint "\n指定圆心")))
  4.                 (cons 40 (getdist cen "\n指定半径"))
  5.                 (cons 50 (setq sang (angle cen (getpoint cen "\n指定起点"))))
  6.                 (cons 51 (+ sang (* pi (/ (getreal "\n指定角度(°)") 180.0))))
  7.         )
  8. )
 楼主| 发表于 2024-6-21 15:54:10 | 显示全部楼层
本帖最后由 fangmin723 于 2024-6-21 15:56 编辑
cjf160204 发表于 2024-6-21 15:41
大神,就像简单  起点,圆心,半径,角度这四个参数

额,这个,在我的基础上稍微改改就出来了,【(angle 圆心 起点) + 角度】不就是终止角度了吗
 楼主| 发表于 2024-6-23 18:17:04 | 显示全部楼层
moranyuyan 发表于 2024-6-23 16:38
到“终止角度”这一步时,为什么没了捕捉。

grread不带捕捉,你们如果需要捕捉,那就动态显示不了,自己改改就行
发表于 2024-6-21 15:41:45 | 显示全部楼层
大神,就像简单  起点,圆心,半径,角度这四个参数
发表于 2024-6-21 15:52:19 | 显示全部楼层
cjf160204 发表于 2024-6-21 15:41
大神,就像简单  起点,圆心,半径,角度这四个参数

去学c#吧,ifox都封装好了
发表于 2024-6-21 15:55:03 | 显示全部楼层
fangmin723 发表于 2024-6-21 15:54
额,这个,在我的基础上稍微改改就出来了

不太会啊,参数太多
发表于 2024-6-21 15:56:07 | 显示全部楼层
cjf160204 发表于 2024-6-21 15:55
不太会啊,参数太多

主要就是角度的设置
 楼主| 发表于 2024-6-21 15:58:07 | 显示全部楼层
你有种再说一遍 发表于 2024-6-21 15:52
去学c#吧,ifox都封装好了

,大神,指点下AOT编译呗
发表于 2024-6-21 16:10:29 | 显示全部楼层
fangmin723 发表于 2024-6-21 15:58
,大神,指点下AOT编译呗

搞锤子搞,别搞了
 楼主| 发表于 2024-6-21 16:17:08 | 显示全部楼层

哈哈哈,听大神的,不搞了,不搞了
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-11-25 10:04 , Processed in 0.214201 second(s), 28 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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