[ZWCad 2019] Zamrożenie wszystkich warstw oprócz aktywnej


Recommended Posts

Witam,

 

Jestem świeżo po migracji ze starego Autocada na ZwCAD 2019 Pro. Większość rzeczy już ogarnąłem, ale nie działa mi jedna z aplikacji, których często używałem. Miałem napisanego (nie przeze mnie, taki mądry nie jestem :) ) takiego lispa:

(defun c:F ()
(command "-layer" "f" "*" "")
)
 

I po wciśnięciu komendy "f" zamrażało mi wszystkie warstwy poza aktywną. Niestety obecnie to nie działa. 

 

Pytanie:

- czy jest jakaś inna forma zamrożenia (chodzi mi właśnie o zamrożenie, nie zablokowanie) wszystkich warstw poza aktywną? 

- czy można tego lispa jakoś zmodyfikować? 

 

I jeszcze pytania z innej beczki: gdzie dodaje się ścieżkę do aktywowania dodatkowego katalogu z szablonami kreskowań? 

 

 

z góry dzięki za pomoc

Marcin

 

 

 

Link to comment
Share on other sites

W c# mogłoby być tak:

 		/// <summary>
        /// Zamraża wszystkie warstwy oprócz aktywnej
        /// </summary>
        public static void Frezealllate()
        {
            try
            {
                // Get the current document and database
                zza.Document acDoc = zza.Application.DocumentManager.MdiActiveDocument;
                zzd.Database db = acDoc.Database;

                // Start a transaction
                using (zzd.Transaction acTrans = db.TransactionManager.StartTransaction())
                {
                    // Open the Layer table for read
                    zzd.LayerTable TablicaWarstw;
                    TablicaWarstw = acTrans.GetObject(db.LayerTableId,
                                                    zzd.OpenMode.ForRead) as zzd.LayerTable;                 


                    foreach (zzd.ObjectId warstwa in TablicaWarstw)
                    {
                        zzd.LayerTableRecord acLyrTblRec;
                        acLyrTblRec = acTrans.GetObject(warstwa, zzd.OpenMode.ForWrite) as zzd.LayerTableRecord;
                        if (warstwa != db.Clayer)
                        {                            
                            acLyrTblRec.IsFrozen = true;
                        }
                        
                    }

                    // Save the changes and dispose of the transaction
                    acTrans.Commit();
                }
            }
            catch (System.Exception ex)
            {               
                zza.Application.DocumentManager.MdiActiveDocument.Editor.WriteMessage(ex.ToString());
            }
        }

 

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...