乐筑天下

搜索
欢迎各位开发者和用户入驻本平台 尊重版权,从我做起,拒绝盗版,拒绝倒卖 签到、发布资源、邀请好友注册,可以获得银币 请注意保管好自己的密码,避免账户资金被盗
查看: 5|回复: 5

[编程交流] 将“圆角”更改为“倒角”

[复制链接]

40

主题

177

帖子

100

银币

后起之秀

Rank: 20Rank: 20Rank: 20Rank: 20

铜币
248
发表于 2022-7-5 23:06:59 | 显示全部楼层 |阅读模式
嗨,伙计们
 
如何将“圆角”更改为“倒角”
 
  1. ;;  CAB 08.01.07
  2. (defun c:efillet (/ e1 e2 el1 el2 rad)
  3. (defun set_radius (/ NewRad)
  4.    (if
  5.      (and
  6.        (not (initget 6))
  7.        (setq NewRad (getdist (strcat "\nSpecify fillet radius < "
  8.                                      (rtos (getvar "filletrad"))
  9.                                      " > : ")))
  10.      )
  11.       (setvar "filletrad" NewRad)
  12.    )
  13. )
  14. ;;  Get user pick of object to fillet
  15. (defun linepick (order / mode ent)
  16.    (while ; exit loop if entity is selected or Enter is pressed
  17.      (progn
  18.        (if (and (zerop (getvar "filletrad")) (not (zerop *FilletMode*)))
  19.          (set_radius)
  20.        )
  21.        (setq mode (cdr (assoc *FilletMode* '((0 . "B") (1 . "F") (2 . "S")))))
  22.        (initget "Radius Both First Second")
  23.        (setq ent (entsel (strcat "\nSelect " order
  24.                            " line or [(R)adius, (B)oth, (F)irst, (S)econd]: <"
  25.                            Mode ">")))
  26.        (cond
  27.          ((and (null ent)(= 52 (getvar "ErrNo"))) ; <Enter> only was hit
  28.            (setq ent nil))
  29.          ((= ent "Radius") (set_radius))
  30.          ((= ent "Both") (setq *FilletMode* 0))
  31.          ((= ent "First") (setq *FilletMode* 1))
  32.          ((= ent "Second") (setq *FilletMode* 2))
  33.        )
  34.        (and (/= (type ent) 'list) (not(null ent)))
  35.      )
  36.    )
  37.    ent
  38. )
  39. (command "._UNDO" "_Begin")
  40. (or *FilletMode* (setq *FilletMode* 0))
  41. ;;  Fillet Mode Options
  42. ;;  0 = (B)oth
  43. ;;  1 = (F)irst
  44. ;;  2 = (S)econd
  45. (if (and
  46.        (setq e1 (linepick "first"))
  47.        (setq e2 (linepick "second"))
  48.        (setq el1 (entget (car e1)))
  49.        (setq el2 (entget (car e2)))
  50.      )
  51.    (progn
  52.      (command "._fillet" e1 e2)
  53.      (if (> (getvar "CMDACTIVE") 0)
  54.        (progn
  55.          (command)
  56.          (princ "\nCannot fillet between these two entities.")
  57.        )
  58.        (if (equal (assoc 0 (entget (entlast))) '(0 . "ARC"))
  59.          (progn
  60.            (if (= *FilletMode* 1) (entmod el2))
  61.            (if (= *FilletMode* 2) (entmod el1))
  62.          )
  63.        )
  64.      )
  65.    )
  66. )
  67. (command "._UNDO" "_End")
  68. (princ)
  69. )
  70. (princ)
  71. (prompt "\nEnhanced Fillet Loaded, Enter eFillet to run.")
回复

使用道具 举报

4

主题

194

帖子

192

银币

初来乍到

Rank: 1

铜币
25
发表于 2022-7-5 23:25:33 | 显示全部楼层
需要明确的是,您是否希望更改CAB上面发布的代码,以执行倒角操作,而不是现在执行的圆角操作?
回复

使用道具 举报

40

主题

177

帖子

100

银币

后起之秀

Rank: 20Rank: 20Rank: 20Rank: 20

铜币
248
发表于 2022-7-5 23:34:44 | 显示全部楼层
CAB的代码是关于圆角操作的,但我想要倒角操作
回复

使用道具 举报

4

主题

194

帖子

192

银币

初来乍到

Rank: 1

铜币
25
发表于 2022-7-5 23:48:14 | 显示全部楼层
 
为什么你不尝试开始这个修改,然后在发布过程中可能遇到的任何具体问题。把你自己的一些时间花在这个功能上,不要让别人帮你做。(假设这对你来说是公平的)。我的最后一个声明是基于之前的帖子,他在一个中国网站上发布了lnks,显然他在这里发布是为了获取该网站上OP的代码。
 
CAB的函数是一个很好的模板,您可以使用,因为圆角和倒角命令非常相似。
回复

使用道具 举报

40

主题

177

帖子

100

银币

后起之秀

Rank: 20Rank: 20Rank: 20Rank: 20

铜币
248
发表于 2022-7-6 00:02:35 | 显示全部楼层
 
 
很抱歉我不懂,只懂一点点。我的英语很差。
我不明白。
 
关于fillet,只有FILLETRAD(系统变量),但关于chamfer,有四个系统变量。
倒角
倒角B
倒角
倒角
回复

使用道具 举报

4

主题

194

帖子

192

银币

初来乍到

Rank: 1

铜币
25
发表于 2022-7-6 00:08:10 | 显示全部楼层
线交点允许有不同的倒角距离,如果手动执行chamfer命令,您将看到选项(距离1和2),尝试将这些设置为不同的值,然后检查系统变量以查看受影响的内容。然后,您将知道要调整哪些变量。
回复

使用道具 举报

发表回复

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

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

QQ|关于我们|小黑屋|乐筑天下 繁体中文

GMT+8, 2025-3-11 03:02 , Processed in 0.486083 second(s), 64 queries .

© 2020-2025 乐筑天下

联系客服 关注微信 帮助中心 下载APP 返回顶部 返回列表