乐筑天下

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

[编程交流] 寻找LISP的比例

[复制链接]

15

主题

43

帖子

28

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
75
发表于 2022-7-5 17:30:35 | 显示全部楼层 |阅读模式
你好
我正在寻找一个类似于MICROSTATION命令“元素中心比例”的lisp。有时,当我们使用多段线、圆和多边形而不是块时,它非常有用。
 
有关microstation命令的更多详细信息,请查看以下链接
http://www.cadlispandtips.com/2012/01/ms-tip-scale-about-element-center.html
 
谢谢和问候
比乔伊。v、 m
回复

使用道具 举报

10

主题

8258

帖子

8335

银币

初来乍到

Rank: 1

铜币
31
发表于 2022-7-5 17:38:15 | 显示全部楼层
看这条线。
 
http://www.cadtutor.net/forum/showthread.php?38383-用于从中心向上缩放的Autocad Lisp
回复

使用道具 举报

114

主题

1万

帖子

1万

银币

中流砥柱

Rank: 25

铜币
543
发表于 2022-7-5 17:45:51 | 显示全部楼层
下面是该线程中代码的概括:
 
  1. ;; Scale About Center  -  Lee Mac
  2. (defun c:sac ( / ll sel obj ur )
  3.    (initget 6)
  4.    (if
  5.        (and
  6.            (setq *scl*
  7.                (cond
  8.                    (   (getdist (strcat "\nSpecify Scale Factor" (if *scl* (strcat " <" (rtos *scl* 2) ">: ") ": "))))
  9.                    (   *scl*   )
  10.                )
  11.            )
  12.            (ssget "_:L")
  13.        )
  14.        (progn
  15.            (vlax-for obj (setq sel (vla-get-activeselectionset (vla-get-activedocument (vlax-get-acad-object))))
  16.                (if (null (vl-catch-all-error-p (vl-catch-all-apply 'vla-getboundingbox (list obj 'll 'ur))))
  17.                    (vla-scaleentity obj
  18.                        (vlax-3D-point
  19.                            (mapcar '(lambda ( a b ) (/ (+ a b) 2.0))
  20.                                (vlax-safearray->list ll)
  21.                                (vlax-safearray->list ur)
  22.                            )
  23.                        )
  24.                        *scl*
  25.                    )
  26.                )
  27.            )
  28.            (vla-delete sel)
  29.        )
  30.    )
  31.    (princ)
  32. )
  33. (vl-load-com) (princ)
回复

使用道具 举报

15

主题

43

帖子

28

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
75
发表于 2022-7-5 17:53:22 | 显示全部楼层
这就是我要找的。。。
非常感谢李和评论
 
李,你能把这个lisp添加到www.Lee-mac吗。因为很多cad用户都需要这个。
 
再次感谢
比乔伊。v、 m
回复

使用道具 举报

3

主题

8

帖子

5

银币

初来乍到

Rank: 1

铜币
15
发表于 2022-7-5 18:01:34 | 显示全部楼层
非常感谢你老兄你也很棒李先生。。。
回复

使用道具 举报

114

主题

1万

帖子

1万

银币

中流砥柱

Rank: 25

铜币
543
发表于 2022-7-5 18:08:13 | 显示全部楼层
谢谢你,法拉吉,我很高兴这有帮助。
回复

使用道具 举报

0

主题

1

帖子

1

银币

初来乍到

Rank: 1

铜币
0
发表于 2022-7-5 18:12:24 | 显示全部楼层
它非常有用。感谢分享。
回复

使用道具 举报

114

主题

1万

帖子

1万

银币

中流砥柱

Rank: 25

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

使用道具 举报

24

主题

135

帖子

111

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
120
发表于 2022-7-5 18:30:07 | 显示全部楼层
 
嗨,李,
sac的代码太棒了!!
 
你的代码不适用于块?
 
因为我的画有1000块,我想改变比例。
 
谢谢
测验图纸
回复

使用道具 举报

106

主题

1万

帖子

101

银币

顶梁支柱

Rank: 50Rank: 50

铜币
1299
发表于 2022-7-5 18:34:04 | 显示全部楼层
如果您对插入点的比例感到满意,那么只需使用ssget the right blocks并更改比例即可。您的dwg没有提示您想要什么。
 
  1. ; a roughy
  2. (defun c:test (/ sc ss x)
  3. (setq sc (Getreal "\nEnter scale"))
  4. (setq ss (ssget "x" (list(cons 0 "INSERT"))))
  5. (repeat (SETQ X (SSLENGTH SS))
  6. (setq obj (vlax-ename->vla-object (ssname ss (setq x (- x 1)))))
  7. (vla-put-XScaleFactor obj sc)
  8. (vla-put-YScaleFactor obj sc)
  9. )
  10. )
  11. (c:test)
回复

使用道具 举报

发表回复

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

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

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

GMT+8, 2025-3-13 03:34 , Processed in 0.477437 second(s), 72 queries .

© 2020-2025 乐筑天下

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