vonski Posted May 22, 2019 Report Share Posted May 22, 2019 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 Quote Link to comment Share on other sites More sharing options...
perlon Posted May 22, 2019 Report Share Posted May 22, 2019 Jeżeli używasz polskiej wersji to potrzebujesz jeszcze podkreślenia przed -layer U mnie wprawdzie na wersji EN ale zadziałało takie coś: (defun c:f() (command "_-layer" "f" "*" "")) vonski 1 Quote Link to comment Share on other sites More sharing options...
vonski Posted May 22, 2019 Author Report Share Posted May 22, 2019 Pomogło, dzięki wielkie :)) A jak jest z tą ścieżką do rastrów? Quote Link to comment Share on other sites More sharing options...
vonski Posted May 22, 2019 Author Report Share Posted May 22, 2019 EDIT: ok, znalazłem ścieżkę Quote Link to comment Share on other sites More sharing options...
Parikon Posted May 24, 2019 Report Share Posted May 24, 2019 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()); } } Quote Link to comment Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.