_rocky 发表于 2012-6-5 19:30:00

请教高手,如何用lsp添加布局?

如题!
我试了下用command命令没实现,不知道能用LSP实现不?

_rocky 发表于 2012-6-5 19:50:01

自己顶一个 高手快来

Gu_xl 发表于 2012-6-5 20:19:01

_rocky 发表于 2012-6-5 19:50 static/image/common/back.gif
自己顶一个 高手快来

(VL-CATCH-ALL-APPLY 'vla-add (list (vla-get-layouts (vla-get-activedocument (vlax-get-acad-object))) "新布局"))

_rocky 发表于 2012-6-5 22:24:07

Gu_xl 发表于 2012-6-5 20:19 static/image/common/back.gif
(VL-CATCH-ALL-APPLY 'vla-add (list (vla-get-layouts (vla-get-activedocument (vlax-get-acad-object) ...

这个只是添加了一个新布局吧?
我还想知道如何把 模型空间 比如 (0,0,0) (84100,59400,0)区域的视口添加到布局 这个如何实现呢?

smartstar 发表于 2012-6-6 18:33:51

同样求解。

smartstar 发表于 2012-6-10 14:20:23

顶上去,沉得太深了。

328302216 发表于 2013-1-9 17:05:57

继续来顶!顶到高手来!

xiaxiang 发表于 2013-1-10 09:18:54

;; lay = 新的布局名称,如果没有则创建(string)
(defun CopytoLayout (lay / ss NewLay ObjLst)
(vl-load-com)
(setq *acad* (cond (*acad*) ((vlax-get-acad-object)))
      *adoc* (cond (*adoc*) ((vla-get-ActiveDocument *acad*))))
(cond ((not (snvalid lay)))
      (;(ssget)
                  (ssget "c"'(0 0 0) '(84100 59400 0))
         (vlax-for obj (setq ss (vla-get-ActiveSelectionSet *adoc*))
             (setq ObjLst (cons Obj ObjLst)))         
         (vla-delete ss)
         (if (vl-catch-all-error-p
               (setq NewLay (vl-catch-all-apply
                              (function vla-item)
                                  (list (vla-get-Layouts *adoc*) lay))))
            (setq NewLay (vla-Add (vla-get-Layouts *adoc*) lay)))
         (vla-CopyObjects *adoc*
            (vlax-make-variant
               (vlax-safearray-fill
               (vlax-make-safearray vlax-vbObject
                   (cons 0 (1- (length ObjLst))))
                  (reverse ObjLst)))
            (vla-get-Block NewLay)
                        )
                )
        )
)

(CopytoLayout "layout_1")

革天明 发表于 2013-1-15 09:43:26

xiaxiang 发表于 2013-1-10 09:18 static/image/common/back.gif


$ (CopytoLayout "layout21")
nil

不能成功
页: [1]
查看完整版本: 请教高手,如何用lsp添加布局?