bijoyvm 发表于 2022-7-5 17:30:35

寻找LISP的比例

你好
我正在寻找一个类似于MICROSTATION命令“元素中心比例”的lisp。有时,当我们使用多段线、圆和多边形而不是块时,它非常有用。
 
有关microstation命令的更多详细信息,请查看以下链接
http://www.cadlispandtips.com/2012/01/ms-tip-scale-about-element-center.html
 
谢谢和问候
比乔伊。v、 m

ReMark 发表于 2022-7-5 17:38:15

看这条线。
 
http://www.cadtutor.net/forum/showthread.php?38383-用于从中心向上缩放的Autocad Lisp

Lee Mac 发表于 2022-7-5 17:45:51

下面是该线程中代码的概括:
 
;; Scale About Center-Lee Mac

(defun c:sac ( / ll sel obj ur )
   (initget 6)
   (if
       (and
         (setq *scl*
               (cond
                   (   (getdist (strcat "\nSpecify Scale Factor" (if *scl* (strcat " <" (rtos *scl* 2) ">: ") ": "))))
                   (   *scl*   )
               )
         )
         (ssget "_:L")
       )
       (progn
         (vlax-for obj (setq sel (vla-get-activeselectionset (vla-get-activedocument (vlax-get-acad-object))))
               (if (null (vl-catch-all-error-p (vl-catch-all-apply 'vla-getboundingbox (list obj 'll 'ur))))
                   (vla-scaleentity obj
                     (vlax-3D-point
                           (mapcar '(lambda ( a b ) (/ (+ a b) 2.0))
                               (vlax-safearray->list ll)
                               (vlax-safearray->list ur)
                           )
                     )
                     *scl*
                   )
               )
         )
         (vla-delete sel)
       )
   )
   (princ)
)
(vl-load-com) (princ)

bijoyvm 发表于 2022-7-5 17:53:22

这就是我要找的。。。
非常感谢李和评论
 
李,你能把这个lisp添加到www.Lee-mac吗。因为很多cad用户都需要这个。
 
再次感谢
比乔伊。v、 m

wary faraj 发表于 2022-7-5 18:01:34

非常感谢你老兄你也很棒李先生。。。

Lee Mac 发表于 2022-7-5 18:08:13

谢谢你,法拉吉,我很高兴这有帮助。

mmuslih84 发表于 2022-7-5 18:12:24

它非常有用。感谢分享。

Lee Mac 发表于 2022-7-5 18:20:28

 
不客气!

Madruga_SP 发表于 2022-7-5 18:30:07

 
嗨,李,
sac的代码太棒了!!
 
你的代码不适用于块?
 
因为我的画有1000块,我想改变比例。
 
谢谢
测验图纸

BIGAL 发表于 2022-7-5 18:34:04

如果您对插入点的比例感到满意,那么只需使用ssget the right blocks并更改比例即可。您的dwg没有提示您想要什么。
 
; a roughy
(defun c:test (/ sc ss x)
(setq sc (Getreal "\nEnter scale"))
(setq ss (ssget "x" (list(cons 0 "INSERT"))))
(repeat (SETQ X (SSLENGTH SS))
(setq obj (vlax-ename->vla-object (ssname ss (setq x (- x 1)))))
(vla-put-XScaleFactor obj sc)
(vla-put-YScaleFactor obj sc)
)
)
(c:test)
页: [1]
查看完整版本: 寻找LISP的比例