乐筑天下

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

[编程交流] 再次绘制圆

[复制链接]

26

主题

145

帖子

122

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
130
发表于 2022-7-5 22:28:27 | 显示全部楼层 |阅读模式
嗨,亲爱的朋友。
看:
232829bilqm2313k2q6612.png
1步。拾取一条线(或多段线),输入偏移距离。
2步骤。拾取一条线(或多段线),输入偏移距离。
3步骤。用中心线画一个圆,中心线的图层名为“cen”
4步骤。选择内部或外部
非常感谢!
回复

使用道具 举报

114

主题

1万

帖子

1万

银币

中流砥柱

Rank: 25

铜币
543
发表于 2022-7-5 22:33:55 | 显示全部楼层
我们不是刚写了那个程序吗?
 
http://www.cadtutor.net/forum/showthread.php?88556-用多边形绘制圆
回复

使用道具 举报

26

主题

145

帖子

122

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
130
发表于 2022-7-5 22:36:40 | 显示全部楼层
 
很抱歉李
我刚刚测试了你的代码,很好!非常感谢!!!
你能帮我处理这条线吗。再次感谢。
回复

使用道具 举报

63

主题

6297

帖子

6283

银币

后起之秀

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

铜币
358
发表于 2022-7-5 22:39:35 | 显示全部楼层
我看不出这条线和前一条有什么不同?
回复

使用道具 举报

pBe

32

主题

2722

帖子

2666

银币

后起之秀

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

铜币
211
发表于 2022-7-5 22:43:50 | 显示全部楼层
我猜OP想要的是“选择一个角落”并单独为那个角落创建“thingy”。等等,我可能错了
回复

使用道具 举报

26

主题

145

帖子

122

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
130
发表于 2022-7-5 22:45:58 | 显示全部楼层
 
塔尔瓦特。这是不同的。
 
232832hkz3m7su68ymwg70.png
 
不一定是闭合对象,也不一定是多边形。
偏移距离不同。(d1和d2),
需要两个选择,(选择1和选择2)
回复

使用道具 举报

26

主题

145

帖子

122

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
130
发表于 2022-7-5 22:48:29 | 显示全部楼层
这只是画一个圆。绘制完成时。不要退出。可以画下一个。直到按下“ESC”键。
回复

使用道具 举报

63

主题

6297

帖子

6283

银币

后起之秀

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

铜币
358
发表于 2022-7-5 22:52:58 | 显示全部楼层
试试这个阿尔贝托,让我知道。
 
  1. (defun c:Test (/ _line _screw s1 s2 l a p)
  2. ;;        Author: Tharwat                ;;
  3. ;;        Date: 09.09.2014        ;;
  4. (defun _line (p q)
  5.    (entmakex (list '(0 . "LINE") (cons 8 "cen") (cons 62 4) (cons 10 p) (cons 11 q)))
  6. )
  7. (defun _screw (pt r)
  8.    (mapcar '(lambda (p)
  9.               (entmakex (list '(0 . "CIRCLE") (cons 10 p) (cons 40 r)))
  10.               (_line (polar p 0. (* r 1.2)) (polar p pi (* r 1.2)))
  11.               (_line (polar p (* pi 1.5) (* r 1.2)) (polar p (* pi 0.5) (* r 1.2)))
  12.             )
  13.            (list pt)
  14.    )
  15. )
  16. (while (and (setq s1 (entsel "\n Pick Left side line :"))
  17.              (wcmatch (cdr (assoc 0 (entget (car s1)))) "LINE,LWPOLYLINE")
  18.              (setq s2 (entsel "\n Pick Right side line :"))
  19.              (wcmatch (cdr (assoc 0 (entget (car s2)))) "LINE,LWPOLYLINE")
  20.              (setq p (getpoint "\n Specify Corner point of the two side [intersection] :"))
  21.              (setq *dist1* (cond ((getdist (strcat "\n Specify Left distance < "
  22.                                                    (rtos (if *dist1*
  23.                                                            *dist1*
  24.                                                            (setq *dist1* 1.0)
  25.                                                          )
  26.                                                          2
  27.                                                          2
  28.                                                    )
  29.                                                    " > :"
  30.                                            )
  31.                                   )
  32.                                  )
  33.                                  (*dist1*)
  34.                            )
  35.              )
  36.              (setq *dist2* (cond ((getdist (strcat "\n Specify Right distance < "
  37.                                                    (rtos (if *dist2*
  38.                                                            *dist2*
  39.                                                            (setq *dist2* 1.0)
  40.                                                          )
  41.                                                          2
  42.                                                          2
  43.                                                    )
  44.                                                    " > :"
  45.                                            )
  46.                                   )
  47.                                  )
  48.                                  (*dist2*)
  49.                            )
  50.              )
  51.              (setq *rad* (cond ((getdist (strcat "\n Diameter of Circle < "
  52.                                                  (rtos (if *rad*
  53.                                                          *rad*
  54.                                                          (setq *rad* 1.0)
  55.                                                        )
  56.                                                        2
  57.                                                        2
  58.                                                  )
  59.                                                  " > :"
  60.                                          )
  61.                                 )
  62.                                )
  63.                                (*rad*)
  64.                          )
  65.              )
  66.         )
  67.    (progn (setq l (mapcar 'vlax-curve-getclosestpointto (list (car s1) (car s2)) (list (cadr s1) (cadr s2)))
  68.                 a (mapcar 'angle (list p p) (list (car l) (cadr l)))
  69.           )
  70.           (_screw (polar (polar p (car a) *dist2*) (cadr a) *dist1*) (/ *rad* 2.))
  71.    )
  72. )
  73. (princ)
  74. )(vl-load-com)
回复

使用道具 举报

26

主题

145

帖子

122

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
130
发表于 2022-7-5 22:55:59 | 显示全部楼层
 
非常感谢!塔尔瓦特。
我很抱歉!很抱歉我没说清楚。
我想按常规输入圆的半径,而不是固定值。
回复

使用道具 举报

63

主题

6297

帖子

6283

银币

后起之秀

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

铜币
358
发表于 2022-7-5 22:57:26 | 显示全部楼层
 
没问题,我修改了常规,试着让我知道。
 
注意:如果你想取消程序的进程,只需点击回车键或空格键,这比Esc键要好,以避免出现错误消息。
回复

使用道具 举报

发表回复

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

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

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

GMT+8, 2025-3-11 06:42 , Processed in 1.375782 second(s), 75 queries .

© 2020-2025 乐筑天下

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