乐筑天下

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

[编程交流] 如何获得矩形中心——Re

[复制链接]

12

主题

56

帖子

46

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
58
发表于 2022-7-5 22:15:13 | 显示全部楼层 |阅读模式
我试着编写关于矩形变为圆形的lisp(圆形可以指定大小)
但我不知道怎么写才能得到矩形中心。
有人帮忙吗??谢谢!!
回复

使用道具 举报

35

主题

2471

帖子

2447

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
174
发表于 2022-7-5 22:21:31 | 显示全部楼层
请检查INTERS功能;使用矩形的角作为参数。
  1. (inters corner1st corner3rd corner2nd corner4th)
回复

使用道具 举报

63

主题

6297

帖子

6283

银币

后起之秀

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

铜币
358
发表于 2022-7-5 22:24:52 | 显示全部楼层
  1. Removed due to ignorance from the OP
回复

使用道具 举报

5

主题

956

帖子

963

银币

初来乍到

Rank: 1

铜币
35
发表于 2022-7-5 22:30:09 | 显示全部楼层
我希望OP能理解简单易懂的代码
简单使用命令PEDIT
 
  1. ;;;rectang-> circle
  2. (defun c:test (/ p e r c )
  3. ;hanhphuc
  4. (if (and (setq e (car (entsel)))
  5.    (=(cdr (assoc 0 (entget e)))"LWPOLYLINE")
  6.    (vl-cmdf "_.PEDIT" e "fit" "")
  7.    (setq c (entsel "\nPick circle to modify radius.. "))
  8.    (setq p (osnap (cadr c) "_cen"))
  9.    (vl-cmdf "_.PEDIT" e "decurve" "")
  10.    (setq r ([color="blue"]getdist[/color] p "\nRadius.. "))
  11.    ) ;_ end of and
  12.    (command "_.CIRCLE" p r)
  13.    ) ;_ end of if
  14. (princ)
  15. ) ;_ end of defun
回复

使用道具 举报

12

主题

56

帖子

46

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
58
发表于 2022-7-5 22:35:33 | 显示全部楼层
 
你能给我举个例子吗??
回复

使用道具 举报

114

主题

1万

帖子

1万

银币

中流砥柱

Rank: 25

铜币
543
发表于 2022-7-5 22:42:55 | 显示全部楼层
下面是另一个示例,使用多段线顶点的矩形边界框:
  1. (defun c:p2c ( / a b e i l s )
  2.    (if (setq s (ssget "_:L" '((0 . "LWPOLYLINE"))))
  3.        (repeat (setq i (sslength s))
  4.            (setq e (entget (ssname s (setq i (1- i))))
  5.                  l (mapcar 'cdr (vl-remove-if-not '(lambda ( x ) (= 10 (car x))) e))
  6.                  a (apply 'mapcar (cons 'min l))
  7.                  b (apply 'mapcar (cons 'max l))
  8.            )
  9.            (if (entmake
  10.                    (append '((0 . "CIRCLE")) (LM:defaultprops e)
  11.                        (list
  12.                            (cons  010 (mapcar '/ (mapcar '+ a b) '(2 2)))
  13.                            (cons  040 (/ (distance a b) 2))
  14.                            (assoc 210 e)
  15.                        )
  16.                    )
  17.                )
  18.                (entdel (cdr (assoc -1 e)))
  19.            )
  20.        )
  21.    )
  22.    (princ)
  23. )
  24. ;; Default Properties  -  Lee Mac
  25. ;; Returns a list of DXF properties for the supplied DXF data,
  26. ;; substituting default values for absent DXF groups
  27. (defun LM:defaultprops ( enx )
  28.    (mapcar '(lambda ( x ) (cond ((assoc (car x) enx)) ( x )))
  29.       '(
  30.            (006 . "BYLAYER")
  31.            (008 . "0")
  32.            (039 . 0.0)
  33.            (048 . 1.0)
  34.            (062 . 256)
  35.            (370 . -1)
  36.        )
  37.    )
  38. )
  39. (princ)
回复

使用道具 举报

12

主题

56

帖子

46

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
58
发表于 2022-7-5 22:47:01 | 显示全部楼层
这是一个很好的选择,可以使用PEDIT,但这个圆圈不能改变大小。
无论如何,我学会了一种新的方法。谢谢!!
 
回复

使用道具 举报

12

主题

56

帖子

46

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
58
发表于 2022-7-5 22:49:27 | 显示全部楼层
这对我来说是个好榜样。
我最近刚学了lisp,没有人能教我,我试着写同样的lisp,但我没有成功。这对我来说真的很难。
谢谢你的分享。。。。。。
 
 
回复

使用道具 举报

5

主题

956

帖子

963

银币

初来乍到

Rank: 1

铜币
35
发表于 2022-7-5 22:55:26 | 显示全部楼层
调用程序->拾取图元圆是多段线->然后再次拾取图元,它将提示您修改半径或osnap
 
如果你想学习编码,我建议你学习Tharwat&Lee的代码
[编辑]我使用PEDIT just bcos你是新手,所以请简化
回复

使用道具 举报

12

主题

56

帖子

46

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
58
发表于 2022-7-5 22:58:37 | 显示全部楼层
这是真的,我真的能够理解如何使用“PEDIT”来满足我的需要。
谢谢你的建议,我会努力学习更多。
 
 
回复

使用道具 举报

发表回复

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

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

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

GMT+8, 2025-3-11 06:33 , Processed in 0.577428 second(s), 72 queries .

© 2020-2025 乐筑天下

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