明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 315|回复: 4

[经验] 圆与椭圆

  [复制链接]
发表于 3 天前 | 显示全部楼层 |阅读模式
方法1:

快捷键  c  圆/选中物体则椭圆
(defun c:c()
(setq ss (ssget "i"));将已选中的实体加入选择集
(if (= ss nil)
(command "circle");如果选择集为空,则执行画圆命令
(command "ellipse"));如果选择集不为空,则执行椭圆命令
(princ))


方法2:

快捷键  c  圆/跳过则椭圆
(defun c:c (/ pt)
(initget "3P 2P T") ; 定义画圆选项
(if (setq pt (getpoint "\nCIRCLE指定圆的圆心或[三点(3P)/两点(2P)/切点、切点、半径(T)] <空格画椭圆>: "))
(progn
(command "_circle" pt)
(while (> (getvar 'CMDACTIVE) 0) (command pause)))
(progn
(command "_ellipse")
(while (> (getvar 'CMDACTIVE) 0) (command pause))))
(princ))



合并了圆与椭圆两个命令为一个命令来使用,还有其他方法的大佬一起分享学习。

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

使用道具 举报

发表于 昨天 07:05 | 显示全部楼层
思路不错。可以借鉴
回复 支持 反对

使用道具 举报

 楼主| 发表于 昨天 17:19 | 显示全部楼层
本帖最后由 KO你 于 2025-5-8 17:39 编辑


快捷键  dc  半/跳过则直径标注
(defun c:dc (/ ent)
(setq ent (entsel "\n选择圆弧或圆进行半径标注 (直接回车进行直径标注) : "))
(if ent
(progn
(command "_dimradius" ent)
(while (> (getvar 'CMDACTIVE) 0) (command pause)))
(progn
(command "_dimdiameter")
(while (> (getvar 'CMDACTIVE) 0) (command pause))))
(princ))
回复 支持 反对

使用道具 举报

发表于 昨天 21:04 | 显示全部楼层
KO你 发表于 2025-5-8 17:19
快捷键  dc  半/跳过则直径标注
(defun c:dc (/ ent)
(setq ent (entsel "\n选择圆弧或圆进行半径标注  ...

  1. (defun c:dc ()
  2.   (if (setq ent (entsel"\n选择圆弧或圆进行半径标注(直接回车进行直径标注): "))
  3.     (command "_dimradius" ent pause)
  4.     (command "_dimdiameter" pause pause)
  5.   )
  6.   (princ)
  7. )
回复 支持 反对

使用道具 举报

 楼主| 发表于 昨天 22:44 | 显示全部楼层

院长的简洁,很不错。有些命令需要组合的可以借鉴院长这个简码。
但我发现按我方法二,或院长的都好,在块的情况下标圆的半径要选对象两次。
这种情况我个人觉得方法一会更方便标注。

快捷键  dc  半径标注/选中物体则直径标注
(defun c:dc()
(setq ss (ssget "i"));将已选中的实体加入选择集
(if (= ss nil)
(command "dimradius");如果选择集为空,则执行半径标注命令
(command "dimdiameter"));如果选择集不为空,则执行直径标注命令
(princ))
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-5-9 03:01 , Processed in 0.174076 second(s), 25 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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