Rekomendowane odpowiedzi

Opublikowano

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

 

 

 

Opublikowano

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());
            }
        }

 

Jeśli chcesz dodać odpowiedź, zaloguj się lub zarejestruj nowe konto

Jedynie zarejestrowani użytkownicy mogą komentować zawartość tej strony.

Zarejestruj nowe konto

Załóż nowe konto. To bardzo proste!

Zarejestruj się

Zaloguj się

Posiadasz już konto? Zaloguj się poniżej.

Zaloguj się