• このフォーラムは、www.cad3d.it/forum1 - イタリアのデザインコミュニティの機械翻訳です。いくつかの用語は正しく翻訳されていません。

ブロックの選択内の非印刷層のエンティティティを見つけます

  • Thread starter Thread starter x11start
  • Start date Start date

x11start

Guest
描画領域を選択し、含まれているブロック(異なる名前のブロック、属性なし)を分析し、これらのブロックに非印刷層(例えば「デフラグ」レイヤー)にあるエンティティティがいるかどうかをチェックしたい。
ジミー・ベルクマーク・リスペスと レイヤーステート ) 私は、設計全体の印刷不可能な層のリストを取得します...そして、私は、様々な選択したブロックに含まれているエンティティティのそれらを比較する必要があります。...そして、ここに「ドンキーをフォール」(この場合、割り当てられた!): どのレイヤーがブロックにあるのかを簡単に見つけることができます。しかし、すべてのブロックに「エンター」すると、より複雑になります。
私は考える唯一の方法は、すべての単一のブロックを「爆発」し、レイヤーを確認し、ブロックを再作成することです。しかし、私はよりエレガントで迅速な方法があることを確信しています!
 
メソッドは、非印刷層のみをアクティブにすることができます。
凍結(日)とは異なり、電球はネストされた層を示しています
 
もちろんですが、この手順は、図面の部分を順番にプリントするより広いlisp(すでに作成済み)で入力したいです(モデルスペースのa3シートフォーマットの実質的に)。
現在、コマンドは、非printableレイヤーでオブジェクトを見つけ、私に言うと止まります: "fincopallino非printableオブジェクトが見つかりません:均等に印刷したいですか? "。
問題は、この検証は、すべてのタイプのオブジェクトとブロックを懸念していますが、後者はそれらを分析するだけでなく、彼らが嘘をつくレイヤーのみです。
お問い合わせ ブロックを作成するときには少し注意が足りないので「ファインネス」だと分かりますが、イムベシレ(....購読済み!)のようなものを作りたかったのです。

プッシー
上記のコマンドは「ジェネリック」ではないので共有しませんが、私が働く会社の一連の特定のオプションと要求の一連の全体を持っています...したがって、それは他の人のためにそれを使用できるように長くなり退屈になります。
 
Last edited:
ブロック内のオブジェクトの層のリスト、非印刷層のリスト、これらのレイヤーをプリント可能にする、または何かに興味がありますか?
 
私はちょうど私がプリントしようとしているシートで、印刷されないエンティティティを持つブロックがあることを知っている必要があります。 その後、アラートは、プレスを停止するために私に指示します。 間違ったブロックを変更し、コマンドを再実行するつもりです。
 
しかし、あなたは最初に現在のレイヤー状態を作成し、すべてのレイヤーにプロットを有効にし、印刷して状況を復元しませんか?
 
しかし、あなたは最初に現在のレイヤー状態を作成し、すべてのレイヤーにプロットを有効にし、印刷して状況を復元しませんか?
多分私はきちんと説明しなかったし、謝罪.
印刷不可能な層は、選択によって、来ません メイド 印刷: メモやオーバーレイによる検証のために使用しているレイヤーです。その後、そのレイヤーに線を描画し、ブロックにこの行を(レイヤー "0")、エラーです。明らかに行は印刷されません。
私は(レイヤーの状態によって)これらのレイヤーをプリント可能にして、以前の状況に戻すと、私は確かに上記のラインを印刷するだろう...しかし、私はまた、メモを印刷する なし プリントしたい。
最初のメッセージ(レイヤステート)にリンクをつけたリスペスでは、デザインのすべての非印刷層のリストを見つけることができます。 [es. ("Defpoints" "Note" "Sovrapp")], しかし、誤って私を警告するアルトは、2つの場合にのみ表示されます:
- 上述の層の1つに置かれる企業: 既に実装しています。
- 上記のレイヤーの1つに置かれたエンティティティは、ブロックの中に置かれます。

この2つ目のケースは、含まれているさまざまなオブジェクトを検証するために、ブロック内の "enter" に必要なので、私の質問のオブジェクトです。

私は初めに述べたように、これは、署名された(または同僚によって)コミットされたエラーを発見するために、私のlispをより効率的にするために「利点」のためにあります。 私はvl-cerca-dentro-al-bloccoコマンドがあったと思いました(私はvl-xxxコマンドを非常に評価しました...。 しかし、私はそれらを処理することはできません!)。

皆様のお越しをお待ちしております。
 
ブロックのすべてのエンティティティをリストするファイルを配置できるとすぐに、それは明確です。そして、あなたはそれで何をすべきかを決めることができるので、私は今日で願っています。
 
su cadtutor mi hanno proposto un lisp ... che però trova 来る non stampabile ソロ "defpoints" e non altri 層, inoltre analizza tutto il disegno e non solo i blocchi selezionati.
se ti puo' essere utile 来ます base.... io non ci so mettere mano con tutti questi vla-xxx!


(defun c:foo (/ laylst blklst num)) )
(vlax-for layobj (vla-get-layers (vla-get-activedocument (vlax-get-acad-object)))))))))
(= (vlax-get-property layobj 'plottable) :vlax-false の場合)
(setq laylst (cons (vla-get-name layobj) laylst))))))
)
)
(コンド)
((> (長さのlst)) 0)
(vlax-for blk (vla-get-blocks (vla-get-activedocument (vlax-get-acad-object))))))))) ;lists 描画中のすべてのブロック定義
(vlax-for obj blk ;ブロックの各オブジェクト
(コンド)
(vla-get-name blk) blklst) (member(vla-get-layer obj) laylst))))
(setq blklst (cons (vla-get-name blk) blklst)))))
)
)
)
)
(もし(> (setq num (長さの blklst)))) 0)
(progn)
(prompt (strcat "\n" (toa num) "ブロックは、非プロット可能なレイヤーのエンティティティティエントで発見))))
(foreach 項目 blklst
(prompt (strcat "\n" 項目))
)
(もし(> num 5)
(テキストページ)
)
)
(prompt "\nnoブロックが見つかりました)
)
)
(t)
(prompt "\nallレイヤはprompttable")
)
)
(プライアンス)
)
 

Attachments

Code:
(defun c:bklayploth (/ss と sn 名前 bd lblk)
(setq の層(fnlayersh)))
金acdoc
(setq acdoc (vla-get-activedocument)))
)
; gestisci le tue 座標
(リスト437.1 67.68) (リスト0 "insert"))

Oppure セレツィオーニ
(setq ss (ssget (list 0 "insert"))))))))
(/= ss nil の場合)
(長さのsss)
(setq sn (ssname sss (setq i (1-i)))))))))))))
(例(非(setq名))))))
(プログ)
(setq l (cons 名前 l)))
(vlax-for x (setq bd) (vla-item (vla-get-blocks acdoc)) 名))
(setqレイヤー(vla-get-layer x)))
(/= (レイヤーレイヤを覚えておいてください。)
(プログ)
(setqポンド)
(例:/=)
(princ (strcat "\n" 名前))
)
)
)
)
)
)
)
(プライアンス)
)
(ss の場合)
(vla-regenのacdoc acallviewports)
)
(プライアンス)
)

(defun fnlayersh(/ l layobj) ) )
(vlax-for layobj (vla-get-layers (vla-get-activedocument)))))
(= (vlax-get-property layobj 'plottable) :vlax-false の場合)
(setq l (一覧))
)
)
ログイン
)
fnlayersh 関数は非platatable 層のリストを返します
bklayploth コマンドは、スキャンするブロックを選択するように要求します。コマンドは、エラーでブロックをリストします。

ログイン
 
ありがとうございます。 私はそれを試して、それから私はあなたに教えて!
 
@rpor66さんのツイート ...私を許しますが、私はそれが動作するようにすることはできません:私はブロックを選択し、何もしないことを尋ねます。 .
私はそれがgstarcadと非互換だったと思ったので、私はautocadにそれを試みました(真実のために少しデートされたバージョン)。 私はまた、ステップバイステップコマンドを実行しようとしました...しかし、私は最初のVlaで自分自身をロック...

しかし、 私はまた、フォーラムキャドチュターに提案されたソリューションを試しています.... 私はそれを認めます: 私は2テーブルで再生...しかし、私はあなたが私を許して願っています!
彼らが私に有効な徴候を与えるならば、私はそれらをここに掲示します... 私は約束します!
 
ここでは、フォーラムキャドチャー(著者:tharwat al choufi)の友人を私に送信したソリューションです。
私はそれを少し変更しました, 別のリスペクトから起動をconert, ブロックの選択のセットを通過し、結果を置く (新しい選択は、発見された無効なブロックで設定), 変数は常に外側から描画します.
 

Attachments

Immagine 2023-07-23 000718.jpgで gstarcad
青または緑色のエンティティティティを含むブロックは、非アクティブ化されたプロットでフロアにあります。
コマンドにリストされている lavpiatti (1つのエンティティティ)、冷蔵庫(2つのエンティティティ)
lisp の頭に (vl-load-com) を追加しましたか?
 
lisp の頭に (vl-load-com) を追加しましたか?
私はそれを追加しましたが、それは動作しません。 私は言ったように、私はまた、Autocad 2012のステップバイステップを回すためにしようとしました...しかし、結果なしで。
gstarcad 2023の他のものの中には、オートカドのビジュアルエディタに似ているものがあります。... しかし、私はまだそれを使用する方法を学ぶ必要があります... .
 

Forum statistics

Threads
46,674
Messages
380,976
Members
2
Latest member
loop80
このフォーラムは、www.cad3d.it/forum1 - イタリアのデザインコミュニティの機械翻訳です。いくつかの用語は正しく翻訳されていません。

Members online

No members online now.
Back
Top