あなたは知っている, 男, 私は、進化についてあなたを示します.
習慣/快適性は、複数のテーブルを持つ単一のファイルで動作します(最後の1つは46)、各テーブルのレイアウトを作成します。
というと、出版によってすべての図面を素早く成形するので、どこかで変更を加えると、依存するテーブルをすべて更新するのがはるかに簡単です。
一部の顧客は46テーブルのファイルを必要としないので、1テーブルの46ファイルでは、その構成レイアウトのファイルをエクスポートする必要があります。
レイアウトエクスポート、レイアウトをエクスポートしますが、モデルスペース(レイアウトを失います)でのみ、特にレイアウトで設定されたディスプレイでエクスポートします(レイアウトで設定した場合「印刷スタイルを表示」)、黒と白のモデルが見つかります。
ひとつのレイアウトでは、すべてのレイアウトが行われます。
私は、レイアウトexport である他の lisp (type lxa) を試してみましたが、エクスポートレイアウトの同じ問題に苦しむ (明らかに)
私は layoutstodwgs を試してみましたが、それはケースです、私はモデル全体を複製するので、13mバイトファイルは私に46 13mバイトファイルになりました
そして、私はそれを書いた, gpの助けを借りて (大きいマスター) と rpor66 (libs の他の獣).
それは少し荒いです, 小さなエラー制御, しかし、あなたが必要とするものを行う
各レイアウトを別々のファイルにエクスポートし、レイアウトウィンドウに含まれている唯一のエンティティティを保ち、紙スペースに関連したエンティティティを含むレイアウト自体。
Code:
(defun reset_var())
(setq レイアウト nil アド nil layfol nil oldrgnmode nil layoutnumber nil count nil)
(setq vp nil flay nil p1 nil p2 nil p3 nil p4 nil p5 nil p6 nil p7 nil p8 nil )
(setq target_vp nil oldosmode nil todel nil count1 nil layname nil file_name nil ) )
(setq pspace_ent nil oldmaxvp nil old_thumb nil) (setq pspace_ent nil oldmaxvp nil old_thumb nil) (setq pspace_ent nil oldmaxvp nil old_thumb nil)) (setq pspace_ent nil oldmaxvp nil old_thumb nil) (setq pspace_ent nil oldmaxvp nil old_thumb nil) (setq pspace_ent nil )
)
;;;;;; サブフォルダ内の別のファイル内のすべてのレイアウトをエクスポート "レイアウト"
;;;;; 各ファイルのためにモデルの実体およびレイアウトを保持します(相対的なペーパー スペースの実体と)
;;;; レイアウトは、複数のビューポートを持っている場合は、単一のvieportを持っている必要があります。, プロブラムブレイク.
;;;;; タンクへの gp と rpor66 の cad3d.it を解決するために
(defun c:layexport9 )
(vl-load-com)
(setq 古いmaxvp (getvar "maxactvp")))
(setq 古い_thumb (getvar "updatethumbnail")))
(setvar "clayout" "model")
(setqレイアウト(レイアウトリスト))
(setq レイアウト (acad_strlsort レイアウト)))
(setq アド (getvar "dwgprefix")))
(setq layfol (strcat 広告 "layouts")))
(findfile layfol の場合)
(progn)
("\n la directory di output e' gia' esistente" を出力します)
\nla procedura potrebbe sovrascrivere ファイル gi sistenti
e produrre risultati inaspettati.
\nil プログラママ サラ ' エ タテ le variabili saranno azzerate")
(reset_var)
(終了)
)
)
(vl-mkdir layfol)
(setq 古いrgnmode (getvar "regenmode")))
(setvar「regenmode」) 0)
(setqのレイアウト番号(長さのレイアウト)))
(setq カウント 0)
(setq pspace_ent (sget "x" '(67 . 1))))))))
(各レイアウトレイアウトレイアウト)
(setvar「maxactvp」) 2) 2
(setvar "updatethumbnail" 0)
(setq レイアウト (nth カウントレイアウト)))
(setq vp (sget "x" (list (cons 0 "viewport")))))))))
(例:> (sslength vp)) 2) 2
(progn)
(setq vpnumerr (strcat "nel layou" レイアウト "ci sono piu' di una viewport)
\nil プログラママ potrebbe fornire risultati inaspettati e sara' terminato.
\nricordarsi di eliminare la ディレクトリ gi crata altrimenti la procedura Fallir nuovamente.")
(vpnumerr )
(reset_var)
(終了)
)
)
(setvar "clayout" レイアウト);;<----- cambia il レイアウト rendendo corrente quello in esame
;;;;;;*********inizio codices お問い合わせ
(setq flay (vlax-ename->vla-object (ssname vp 0)))))))
(vla-getboundingbox flay 'p1* 'p2*)
(setq p1 (vlax-safearray->list p1*)))
(setq p2 (vlax-safearray->list p2*)))
(setq p3 (list (car p1) (cadr p1)))))
(setq p4 (list (car p2) (cadr p2)))))
(setq p5 (trans p1 3 2))
(setq p6 (trans p2 3 2))
;;;<------ inizioのsuggerimentoのrpor
;;;;;;;;; somma il valore di ターゲット alle 座標 viewport
(例:assoc '17 (entget (ssname vp 0)))))
;;;se の esiste il の valore の di ターゲット
(progn)
(setq target_vp (cdr (ssname vp 0)))))))))
(setq p7 (+ (nth 0 p5) (nth 0 target_vp))) (+ (nth 1 p5) (nth 1 target_vp)) 0.00 )))
(setq p8 (+ (nth 0 p6) (nth 0 target_vp))) (+ (nth 1 p6) (nth 1 target_vp)) 0.00))))
;;<--------chiusura progn
;;<--------すべての esiste gruppo 17 nell'entita viewport
(setvar "clayout" "model")
;;;;;;;;;********* 良いコダイス gp*************
(setq oldosmode (getvar "osmode")))
(setvar「osmode」) 0)
(コマンド "_.select" "_crossing" p7 p8 ")
(コマンド "._undo" "_begin")
(コマンド "_erase" "_all" "_remove" "_previous" "_remove" pspace_ent")
(setqの計算1 -1)
(repeat レイアウト番号)
(setq count1) (+ count1 1))
(setq layname (nth count1 レイアウト))))
(/= layname レイアウト) (command "_layout" "_delete" layname));;<chiusura if
;;<-- chiusura の繰り返し
(コマンド "._undo" "_end")
(setq file_name (strcat layfol "\" レイアウト))
(コマンド "-purge" "_all" "" "" "_no")
(コマンド "-purge" "_all" "" "" "_no")
(setvar "maxactvp" 古いmaxvp)
(setvar "updatethumbnail" 古い_thumb)
(コマンド "_saveas" "" file_name)
(コマンド "_undo" "_back" "_y")
(setvar "clayout" "model")
(コマンド "_erase" "_crossing" p7 p8 ")
(コマンド "-purge" "_all" "" "" "_no")
(setq カウント (+ カウント 1)))
;;;;;<------------------ chiusura foreach レイアウト
(setvar "regenmode" 古いrgnmode)
;;<-------chiusura defun
(「\n estrae tutti i レイアウト di un dwg in file separati in una sottocartella レイアウト del dwg」)
\nfunziona con レイアウト che abbiano una sola viewport, ed esporta, per ogni レイアウト, sia la parte modello che il relativo レイアウト con le entita' appartenenti al paper space di quel レイアウト.
\n\nusare layexport9 per lanciare")
私はまだ解決しなければならない唯一の部分は、彼らが新しいサブフォルダ「レイアウト」に横たわるフォルダから外部の参照(xrifと画像)を物理的にコピーすることです。個々のレイアウトのファイルを開いたときには、欠けている参照通知を与えません。
xref dwg リストは以下のように取得できます。
Code:
;;;;xref blocchiを閉じるコディス
(setq *acad-object* (vlax-get-acad-object))))
(setq *active-doc* (vla-get-activedocument *acad-object*))))
(setq *blocks* (vla-get-blocks *active-doc*))))))
(vlax-for n *blocks*)
(例:vla-get-isxref n) :vlax-true)
(プログ)
(setq pippo (vla-get-path n))))
(setq pippo (ファインファイル pippo)))
)
)
)
;;;;xref blocchiを閉じるコディス
とイメージファイル名:
Code:
;;;;xref immagini を絞る codice
(defun imgfile ( / acad_image_dict )) )
(vl-catch-all-apply) (vl-catch-all-apply)
ラムダ ( )
(setq acad_image_dict) は、
(vla-item)
(vla-get-dictionaries)
(vla-get-activedocument)
(vlax-get-acad-object)
)
)
"acad_image_dict" は、
)
)
)
)
(setq リスト)
(acad_image_dict の場合)
(vlax-for エントリー acad_image_dict)
(setq img )
(vl-princ-to-string) (vl-princ-to-string)
(CDr)
(アスコット1)
(エントリー)
(vlax-vla-object->ename エントリ)
)
)
)
)
)
)
しかし、私はオートキャドシェルの操作に立ち往生しました。 20年間使用していません。
マスターの別の推圧? :