乐筑天下

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

[编程交流] 如何将所有点更改为

[复制链接]

114

主题

1万

帖子

1万

银币

中流砥柱

Rank: 25

铜币
543
发表于 2022-7-5 17:31:32 | 显示全部楼层
FWIW,这里有另一种方法来避免计算集合中每个对象的相对点位置:
  1. (defun c:test ( / h i l p s w x )
  2.    (if (and (progn (initget 6) (setq w (getdist "\nSpecify x-dimension: ")))
  3.             (progn (initget 6) (setq h (getdist "\nSpecify y-dimension: ")))
  4.             (setq s (ssget '((0 . "POINT,CIRCLE"))))
  5.             (setq l (list
  6.                         (list (/ w -2) (/ h -2))
  7.                         (list (/ w  2) (/ h -2))
  8.                         (list (/ w  2) (/ h  2))
  9.                         (list (/ w -2) (/ h  2))
  10.                     )
  11.             )
  12.        )
  13.        (repeat (setq i (sslength s))
  14.            (setq p (cdr (assoc 10 (entget (ssname s (setq i (1- i)))))))
  15.            (entmake
  16.                (append
  17.                   '(   (000 . "LWPOLYLINE")
  18.                        (100 . "AcDbEntity")
  19.                        (100 . "AcDbPolyline")
  20.                        (090 . 4)
  21.                        (070 . 1)
  22.                    )
  23.                    (mapcar '(lambda ( x ) (cons 10 (mapcar '+ p x))) l)
  24.                )
  25.            )
  26.        )
  27.    )
  28.    (princ)
  29. )
回复

使用道具 举报

114

主题

1万

帖子

1万

银币

中流砥柱

Rank: 25

铜币
543
发表于 2022-7-5 17:35:04 | 显示全部楼层
作为扩展,以下操作应在任何UCS构造平面中的点和圆上成功执行,并将考虑活动UCS旋转-对于点,将使用活动UCS构造平面:
  1. (defun c:test ( / e h i l n p s v w x )
  2.    (if (and (progn (initget 6) (setq w (getdist "\nSpecify x-dimension: ")))
  3.             (progn (initget 6) (setq h (getdist "\nSpecify y-dimension: ")))
  4.             (setq s (ssget '((0 . "POINT,CIRCLE"))))
  5.             (setq l (mapcar '(lambda ( x ) (mapcar '/ (list w h) x)) '((-2 -2) (2 -2) (2 2) (-2 2)))
  6.                   v (trans '(0 0 1) 1 0 t)
  7.             )
  8.        )
  9.        (repeat (setq i (sslength s))
  10.            (setq e (entget (ssname s (setq i (1- i))))
  11.                  p (cdr (assoc 10 e))
  12.            )
  13.            (if (= "POINT" (cdr (assoc 0 e)))
  14.                (setq p (trans p 0 v) n (cons 210 v))
  15.                (setq n (assoc 210 e))
  16.            )
  17.            (entmake
  18.                (append
  19.                   '(   (000 . "LWPOLYLINE")
  20.                        (100 . "AcDbEntity")
  21.                        (100 . "AcDbPolyline")
  22.                        (090 . 4)
  23.                        (070 . 1)
  24.                    )
  25.                    (list (cons 38 (caddr p)))
  26.                    (mapcar '(lambda ( x ) (cons 10 (mapcar '+ p (trans x 1 (cdr n) t)))) l)
  27.                    (list n)
  28.                )
  29.            )
  30.        )
  31.    )
  32.    (princ)
  33. )
回复

使用道具 举报

12

主题

56

帖子

46

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
58
发表于 2022-7-5 17:40:09 | 显示全部楼层
尊敬的李:,
谢谢你的分享。
这对我有好处:D
 
回复

使用道具 举报

114

主题

1万

帖子

1万

银币

中流砥柱

Rank: 25

铜币
543
发表于 2022-7-5 17:44:32 | 显示全部楼层
不客气!
回复

使用道具 举报

13

主题

53

帖子

44

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
71
发表于 2022-7-5 17:48:17 | 显示全部楼层
你好
 
你能修改它,用三角形替换圆或点吗?三角形的两条边应该很长,三角形的底端到一半边,方向是底端或顶端的底端(两条边中的任何一条)。。
 
谢谢
回复

使用道具 举报

66

主题

1552

帖子

1514

银币

后起之秀

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

铜币
325
发表于 2022-7-5 17:50:56 | 显示全部楼层
 
为什么不为此创建一个块,然后将其插入点/圆的顶部?
回复

使用道具 举报

发表回复

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

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

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

GMT+8, 2025-8-24 21:17 , Processed in 0.312837 second(s), 63 queries .

© 2020-2025 乐筑天下

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