乐筑天下

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

[编程交流] 与中心点成直角

[复制链接]

28

主题

95

帖子

73

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
137
发表于 2022-7-5 17:04:37 | 显示全部楼层 |阅读模式
大家好,
 
我用这个简单的lisp从一个中心点画一个正方形。我觉得这很方便,因为很多时候我需要在一列的中心绘制一个焊盘,并使用普通矩形命令,它不允许从中心点创建它,这有点烦人。Autocad应将其作为一个选项。。
无论如何,唯一的问题是,如果我需要一个800sq的垫子,我需要输入400,因为它要求“半径”大小。是否可以修改它,以便如果我需要800sq,我可以只输入800?
如果它很简单,我想这样做,但如果不是,我可以继续减半我的垫大小,这样做
 
  1. (defun c:rre  () (command "polygon" "4" pause "c"))
回复

使用道具 举报

66

主题

1552

帖子

1514

银币

后起之秀

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

铜币
325
发表于 2022-7-5 17:24:02 | 显示全部楼层
探索此线程:
http://www.cadtutor.net/forum/showthread.php?96834-绘制正方形
 
编辑:或尝试以下操作:
  1. (defun C:test ( / d AcSpc p CircleObj p1 p3 ll ur )
  2. (initget (+ 1 2 4))
  3. (setq d (getreal "\nSpecify square's size: "))
  4. (setq AcSpc (vlax-get-property (vla-get-ActiveDocument (vlax-get-acad-object)) (if (= 1 (getvar 'CVPORT)) 'Paperspace 'Modelspace)))
  5. (setvar 'errno 0)
  6. (while (/= 52 (getvar 'errno))
  7.         (initget 128 "Size") (setq p (getpoint "\nSpecify square's center point or [size]: "))
  8.         (cond
  9.                 ((and (= 'STR (type p)) (wcmatch p "S*")) (initget (+ 1 2 4)) (setq d (getreal "\nSpecify square's size: ")))
  10.                 ((and p (listp p))
  11.                         (setq CircleObj (vla-AddCircle AcSpc (vlax-3D-point p) (/ d 2.)))
  12.                         (vla-GetBoundingBox CircleObj 'll 'ur)
  13.                         (mapcar 'set '(p1 p3) (mapcar 'vlax-safearray->list (list ll ur)))
  14.                         (entmake
  15.                                 (append
  16.                                         (list (cons 0 "LWPOLYLINE")(cons 100 "AcDbEntity")(cons 100 "AcDbPolyline")(cons 90 4)(cons 70 1))
  17.                                         (mapcar '(lambda (x) (cons 10 x)) (list p1 (list (car p1) (cadr p3)) p3 (list (car p3) (cadr p1))))
  18.                                 )
  19.                         )
  20.                         (vla-Delete CircleObj)
  21.                 )
  22.                 (T (setvar 'errno 52))
  23.         )
  24. )
  25. (princ)
  26. );| defun |; (or (vlax-get-acad-object) (vl-load-com)) (princ)
回复

使用道具 举报

7

主题

708

帖子

701

银币

初来乍到

Rank: 1

铜币
35
发表于 2022-7-5 17:30:58 | 显示全部楼层
 
AutoCAD确实有此选项。多边形
回复

使用道具 举报

16

主题

99

帖子

83

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
80
发表于 2022-7-5 17:42:21 | 显示全部楼层
 
 
  1. (defun c:rre ( / dia )
  2. (setq dia (getreal "\nEnter diameter... "))
  3. (setq dia (/ dia 2))
  4. (command "polygon" "4" pause "c" dia)
  5. (princ)
  6. )
回复

使用道具 举报

106

主题

1万

帖子

101

银币

顶梁支柱

Rank: 50Rank: 50

铜币
1299
发表于 2022-7-5 17:53:05 | 显示全部楼层
尽可能短
 
  1. (defun c:rre ( )
  2. (command "polygon" "4" pause "c" (/ (getreal "enter dia") 2.0))
  3. )
回复

使用道具 举报

28

主题

95

帖子

73

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
137
发表于 2022-7-5 18:01:48 | 显示全部楼层
问题已解决!!干杯,伙计们!
总有一天我会自己解决这件事。。
回复

使用道具 举报

16

主题

99

帖子

83

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
80
发表于 2022-7-5 18:11:20 | 显示全部楼层
 
比加尔好多了。。。
回复

使用道具 举报

发表回复

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

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

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

GMT+8, 2025-3-13 09:17 , Processed in 0.717949 second(s), 66 queries .

© 2020-2025 乐筑天下

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