乐筑天下

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

[编程交流] 圆角AutoLISP

[复制链接]

1

主题

2

帖子

1

银币

初来乍到

Rank: 1

铜币
5
发表于 2022-7-5 18:15:31 | 显示全部楼层 |阅读模式
你好
 
我想在AutoLISP中绕过那个角落。谁能帮我?这是马克的任务。
 
  1. (DEFUN C:Disc()
  2. (setq t1 (getpoint "\n Select first point:"))
  3. (setq t2 (list(+(car t1)10) (+(cadr t1)10)))
  4. (setq t3 (list(+(car t2)38) (cadr t2)))
  5. (setq t4 (list(car t3) (-(cadr t3)50)))
  6. (command "line" t1 t2 t3 t4 ""))

 

                               
登录/注册后可看大图
回复

使用道具 举报

28

主题

317

帖子

292

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
140
发表于 2022-7-5 18:24:43 | 显示全部楼层
标准的“圆角”命令怎么样?
回复

使用道具 举报

1

主题

2

帖子

1

银币

初来乍到

Rank: 1

铜币
5
发表于 2022-7-5 18:29:15 | 显示全部楼层
 
在大学里,使用AutoLISP是一项任务
回复

使用道具 举报

20

主题

338

帖子

323

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
100
发表于 2022-7-5 18:38:16 | 显示全部楼层
容易的
 
  1. (defun c:fillet ()
  2. (command "fillet")
  3. )
回复

使用道具 举报

28

主题

317

帖子

292

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
140
发表于 2022-7-5 18:41:41 | 显示全部楼层
嗯,我想它必须在单个函数中。。。?
如果使用命令不是制作lisp的最有效方法,但从学术角度来说,这是一个很好的起点。
您可以使用arc命令。假设我想做一个90度的圆弧,以0,0,0为中心,从坐标5,0到0,5,可以使用以下公式:
(命令“.u弧”“c”“0,0,0”“5,0”“0,5”)。
现在,您要做的是在正确的位置插入arc命令,并将直线2的端点坐标和直线3的起点坐标更改为与圆弧半径相等的长度。
如果需要,你可以要求用户输入半径,将其存储到一个变量中,并使用它进行所需的计算,或者像线的长度一样硬编码。
 
我希望这个提示能帮助你实现你所需要的。
回复

使用道具 举报

106

主题

1万

帖子

101

银币

顶梁支柱

Rank: 50Rank: 50

铜币
1299
发表于 2022-7-5 18:46:27 | 显示全部楼层
您可以使用窗口选项并选择两条线或“F”围栏选项,两者都返回两条线,或者在此处搜索我的自动圆角例程,该例程使用F123.45并针对给定半径自动运行圆角命令。
回复

使用道具 举报

26

主题

1495

帖子

20

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
118
发表于 2022-7-5 18:55:30 | 显示全部楼层
这可能有助于入门:
 
  1. [color=#8b4513];;;CREATE A FILLET ARC FROM A LIST OF 3 CCW POINTS AND RADIUS[/color]
  2. [b][color=BLACK]([/color][/b]defun f3p_fil3p [b][color=FUCHSIA]([/color][/b]l ra / a1 a2 i1 d1 c1 c2 cn sa ea[b][color=FUCHSIA])[/color][/b]
  3.     [b][color=FUCHSIA]([/color][/b]setq a1 [b][color=NAVY]([/color][/b]angle [b][color=MAROON]([/color][/b]nth 1 l[b][color=MAROON])[/color][/b] [b][color=MAROON]([/color][/b]nth 2 l[b][color=MAROON])[/color][/b][b][color=NAVY])[/color][/b]
  4.           a2 [b][color=NAVY]([/color][/b]angle [b][color=MAROON]([/color][/b]nth 1 l[b][color=MAROON])[/color][/b] [b][color=MAROON]([/color][/b]nth 0 l[b][color=MAROON])[/color][/b][b][color=NAVY])[/color][/b]
  5.           i1 [b][color=NAVY]([/color][/b]if [b][color=MAROON]([/color][/b]> a1 a2[b][color=MAROON])[/color][/b]
  6.                  [b][color=MAROON]([/color][/b]- [b][color=GREEN]([/color][/b]+ [b][color=BLUE]([/color][/b]* 2 pi[b][color=BLUE])[/color][/b] a2[b][color=GREEN])[/color][/b] a1[b][color=MAROON])[/color][/b]
  7.                  [b][color=MAROON]([/color][/b]- a2 a1[b][color=MAROON])[/color][/b][b][color=NAVY])[/color][/b]
  8.           d1 [b][color=NAVY]([/color][/b]abs [b][color=MAROON]([/color][/b]/ ra [b][color=GREEN]([/color][/b]/ [b][color=BLUE]([/color][/b]sin [b][color=RED]([/color][/b]* i1 0.5[b][color=RED])[/color][/b][b][color=BLUE])[/color][/b]
  9.                            [b][color=BLUE]([/color][/b]cos [b][color=RED]([/color][/b]* i1 0.5[b][color=RED])[/color][/b][b][color=BLUE])[/color][/b][b][color=GREEN])[/color][/b][b][color=MAROON])[/color][/b][b][color=NAVY])[/color][/b]
  10.           c1 [b][color=NAVY]([/color][/b]polar [b][color=MAROON]([/color][/b]nth 1 l[b][color=MAROON])[/color][/b] a1 d1[b][color=NAVY])[/color][/b]
  11.           c2 [b][color=NAVY]([/color][/b]polar [b][color=MAROON]([/color][/b]nth 1 l[b][color=MAROON])[/color][/b] a2 d1[b][color=NAVY])[/color][/b]
  12.           cn [b][color=NAVY]([/color][/b]inters c1 [b][color=MAROON]([/color][/b]polar c1 [b][color=GREEN]([/color][/b]+ a1 [b][color=BLUE]([/color][/b]* pi 0.5[b][color=BLUE])[/color][/b][b][color=GREEN])[/color][/b] 1.0[b][color=MAROON])[/color][/b]
  13.                      c2 [b][color=MAROON]([/color][/b]polar c2 [b][color=GREEN]([/color][/b]+ a2 [b][color=BLUE]([/color][/b]* pi 0.5[b][color=BLUE])[/color][/b][b][color=GREEN])[/color][/b] 1.0[b][color=MAROON])[/color][/b] nil[b][color=NAVY])[/color][/b]
  14.           sa [b][color=NAVY]([/color][/b]angle cn c2[b][color=NAVY])[/color][/b]
  15.           ea [b][color=NAVY]([/color][/b]angle cn c1[b][color=NAVY])[/color][/b][b][color=FUCHSIA])[/color][/b]
  16.   [b][color=FUCHSIA]([/color][/b]entmake [b][color=NAVY]([/color][/b]list [b][color=MAROON]([/color][/b]cons 0 [color=#2f4f4f]"ARC"[/color][b][color=MAROON])[/color][/b]
  17.                  [b][color=MAROON]([/color][/b]cons 10 cn[b][color=MAROON])[/color][/b]
  18.                  [b][color=MAROON]([/color][/b]cons 40 ra[b][color=MAROON])[/color][/b]
  19.                  [b][color=MAROON]([/color][/b]cons 50 sa[b][color=MAROON])[/color][/b]
  20.                  [b][color=MAROON]([/color][/b]cons 51 ea[b][color=MAROON])[/color][/b][b][color=NAVY])[/color][/b][b][color=FUCHSIA])[/color][/b][b][color=BLACK])[/color][/b]
  21. [b][color=BLACK]([/color][/b]defun LM:Clockwise-p [b][color=FUCHSIA]([/color][/b] p1 p2 p3 [b][color=FUCHSIA])[/color][/b]
  22.    [b][color=FUCHSIA]([/color][/b]< [b][color=NAVY]([/color][/b]* [b][color=MAROON]([/color][/b]- [b][color=GREEN]([/color][/b]car  p2[b][color=GREEN])[/color][/b] [b][color=GREEN]([/color][/b]car  p1[b][color=GREEN])[/color][/b][b][color=MAROON])[/color][/b] [b][color=MAROON]([/color][/b]- [b][color=GREEN]([/color][/b]cadr p3[b][color=GREEN])[/color][/b] [b][color=GREEN]([/color][/b]cadr p1[b][color=GREEN])[/color][/b][b][color=MAROON])[/color][/b][b][color=NAVY])[/color][/b]
  23.       [b][color=NAVY]([/color][/b]* [b][color=MAROON]([/color][/b]- [b][color=GREEN]([/color][/b]cadr p2[b][color=GREEN])[/color][/b] [b][color=GREEN]([/color][/b]cadr p1[b][color=GREEN])[/color][/b][b][color=MAROON])[/color][/b] [b][color=MAROON]([/color][/b]- [b][color=GREEN]([/color][/b]car  p3[b][color=GREEN])[/color][/b] [b][color=GREEN]([/color][/b]car  p1[b][color=GREEN])[/color][/b][b][color=MAROON])[/color][/b][b][color=NAVY])[/color][/b][b][color=FUCHSIA])[/color][/b][b][color=BLACK])[/color][/b]
  24. [color=#8b4513];************ TEST BED ***************************************[/color]
  25. [b][color=BLACK]([/color][/b]defun c:f3p [b][color=FUCHSIA]([/color][/b]/ ra p1 p2 p3[b][color=FUCHSIA])[/color][/b]
  26.    [b][color=FUCHSIA]([/color][/b]initget 7[b][color=FUCHSIA])[/color][/b]
  27.    [b][color=FUCHSIA]([/color][/b]setq ra [b][color=NAVY]([/color][/b]getdist [color=#2f4f4f]"\nFillet Radius:   "[/color][b][color=NAVY])[/color][/b][b][color=FUCHSIA])[/color][/b]
  28.    [b][color=FUCHSIA]([/color][/b]princ [color=#2f4f4f]"\nSelect 3 CCW Pts:   "[/color][b][color=FUCHSIA])[/color][/b]
  29.    [b][color=FUCHSIA]([/color][/b]initget 1[b][color=FUCHSIA])[/color][/b]
  30.    [b][color=FUCHSIA]([/color][/b]setq p1 [b][color=NAVY]([/color][/b]getpoint [color=#2f4f4f]"\nStart Pt - P1:   "[/color][b][color=NAVY])[/color][/b][b][color=FUCHSIA])[/color][/b]
  31.    [b][color=FUCHSIA]([/color][/b]initget 1[b][color=FUCHSIA])[/color][/b]
  32.    [b][color=FUCHSIA]([/color][/b]setq p2 [b][color=NAVY]([/color][/b]getpoint p1 [color=#2f4f4f]"\nVertex Pt - P2:   "[/color][b][color=NAVY])[/color][/b][b][color=FUCHSIA])[/color][/b]
  33.    [b][color=FUCHSIA]([/color][/b]grdraw p1 p2 1 3[b][color=FUCHSIA])[/color][/b]
  34.    [b][color=FUCHSIA]([/color][/b]initget 1[b][color=FUCHSIA])[/color][/b]
  35.    [b][color=FUCHSIA]([/color][/b]setq p3 [b][color=NAVY]([/color][/b]getpoint p2 [color=#2f4f4f]"\nEnd Pt - P3:   "[/color][b][color=NAVY])[/color][/b][b][color=FUCHSIA])[/color][/b]
  36.    [b][color=FUCHSIA]([/color][/b]grdraw p2 p3 2 3[b][color=FUCHSIA])[/color][/b]
  37.    [b][color=FUCHSIA]([/color][/b]if [b][color=NAVY]([/color][/b]LM:Clockwise-p p1 p2 p3[b][color=NAVY])[/color][/b]
  38.        [b][color=NAVY]([/color][/b]alert [color=#2f4f4f]"Ponts Are Not CCW"[/color][b][color=NAVY])[/color][/b]
  39.        [b][color=NAVY]([/color][/b]f3p_fil3p [b][color=MAROON]([/color][/b]list p1 p2 p3[b][color=MAROON])[/color][/b] ra[b][color=NAVY])[/color][/b][b][color=FUCHSIA])[/color][/b]
  40. [b][color=FUCHSIA]([/color][/b]prin1[b][color=FUCHSIA])[/color][/b][b][color=BLACK])[/color][/b]

 
 
不久前,李在另一个问题上与此有很多关系。
 
-大卫
回复

使用道具 举报

BKT

1

主题

124

帖子

123

银币

初来乍到

Rank: 1

铜币
7
发表于 2022-7-5 18:58:52 | 显示全部楼层
由于线条是通过从初始选择点指定点来创建的,那么使用已经创建的点插入代码如何?如果先设置圆角半径,可以执行以下操作:
 
为了使这一点持续有效,我必须在绘制线条和圆角之前关闭OSNAPS。
回复

使用道具 举报

114

主题

1万

帖子

1万

银币

中流砥柱

Rank: 25

铜币
543
发表于 2022-7-5 19:06:01 | 显示全部楼层
谢谢David-我有以下信息:
 
不使用Fillet命令的圆角多段线
具有最大半径的圆角多段线
回复

使用道具 举报

66

主题

1552

帖子

1514

银币

后起之秀

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

铜币
325
发表于 2022-7-5 19:13:02 | 显示全部楼层
 
比加尔,你能给这个带栅栏选项的圆角一个链接吗?
回复

使用道具 举报

发表回复

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

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

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

GMT+8, 2025-3-12 19:49 , Processed in 1.153456 second(s), 76 queries .

© 2020-2025 乐筑天下

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