Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de (alle Foren)
  AutoCAD ObjectARX und .NET
  Block sklieren

Antwort erstellen  Neues Thema erstellen
CAD.de Login | Logout | Profil | Profil bearbeiten | Registrieren | Voreinstellungen | Hilfe | Suchen

Anzeige:

Darstellung des Themas zum Ausdrucken. Bitte dann die Druckfunktion des Browsers verwenden. | Suche nach Beiträgen nächster neuer Beitrag | nächster älterer Beitrag
  
Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für Autodesk Produkte
Autor Thema:  Block sklieren (1303 mal gelesen)
RoSiNiNo
Mitglied
Konstrukteur


Sehen Sie sich das Profil von RoSiNiNo an!   Senden Sie eine Private Message an RoSiNiNo  Schreiben Sie einen Gästebucheintrag für RoSiNiNo

Beiträge: 1126
Registriert: 09.10.2002

Revit Structure 2011
Acad 2011-deutsch, Express Tools
3ds Max 2011
Win 7-Professional
HP Workstation Z400, 6GB
GeForce GTX 470

erstellt am: 21. Okt. 2005 15:46    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

Ich habe folgenden Code, wieso werden die Blöcke nicht skaliert?
Code:
        [CommandMethod("VariaBlock")]
        public void ScaleBlock()
        {
            Database db = HostApplicationServices.WorkingDatabase;
            Transaction myT = db.TransactionManager.StartTransaction();
            Editor ed = Application.DocumentManager.MdiActiveDocument.Editor;

            try
            {
                PromptSelectionOptions BlockOption = new PromptSelectionOptions();
                BlockOption.SingleOnly = false;
                BlockOption.MessageForAdding = "Blöcke zeigen";

                TypedValue[] filList = new TypedValue[1];
                filList[0] = new TypedValue((int)DxfCode.Start, "INSERT");
                SelectionFilter filter = new SelectionFilter(filList);

                PromptSelectionResult BlockResult = null;
                //user selection will pick only Appname ents
                BlockResult = ed.GetSelection(BlockOption, filter);

                //Do nothing if selection is unsuccessful
                if (BlockResult.Status == PromptStatus.OK)
                {
                    Autodesk.AutoCAD.EditorInput.SelectionSet SS = BlockResult.Value;
                    ObjectId[] idArray;
                    idArray = SS.GetObjectIds();

                    //collect all BlockRefenences SS array
                    foreach (ObjectId objId in idArray)
                    {
                        DBObject tmpBlock = (Entity)myT.GetObject(objId, OpenMode.ForWrite);
                        BlockReference tmpShowedBlock = tmpBlock as BlockReference;
                        if (tmpShowedBlock != null)
                        {
                            ed.WriteMessage("Test");
                            //Was ist daran denn so FALSCH!!!!
                            tmpShowedBlock.ScaleFactors = new Scale3d(10);
                        }
                    }
                }
            }
            finally
            {
                myT.Dispose();
            }
        }


------------------
Roland

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

Apply2CAD
Mitglied


Sehen Sie sich das Profil von Apply2CAD an!   Senden Sie eine Private Message an Apply2CAD  Schreiben Sie einen Gästebucheintrag für Apply2CAD

Beiträge: 9
Registriert: 05.04.2005

erstellt am: 21. Okt. 2005 18:12    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für RoSiNiNo 10 Unities + Antwort hilfreich

Die Transaktion sollte auch mit commit abgeschlossen werden.

Code:

using System ;
using Autodesk.AutoCAD.Runtime ;
using Autodesk.AutoCAD.ApplicationServices;
using Autodesk.AutoCAD.DatabaseServices;
using Autodesk.AutoCAD.Geometry;
using Autodesk.AutoCAD.Colors;
using Autodesk.AutoCAD.EditorInput;
//using Autodesk.AutoCAD.Interop;
//using Autodesk.AutoCAD.Interop.Common;

[assembly: CommandClass(typeof(ClassLibrary.Class))]

namespace ClassLibrary
{
/// <summary>
/// Summary description for Class.
/// </summary>
public class Class
{
public Class()
{
//
// TODO: Add constructor logic here
//
}

[CommandMethod("VariaBlock")]
public void ScaleBlock()
{
Database db = HostApplicationServices.WorkingDatabase;
Transaction myT = db.TransactionManager.StartTransaction();
Editor ed = Application.DocumentManager.MdiActiveDocument.Editor;
try
{
PromptSelectionOptions BlockOption = new PromptSelectionOptions();
BlockOption.SingleOnly = false;
BlockOption.MessageForAdding = "Blöcke zeigen";

TypedValue[] filList = new TypedValue[1];
filList[0] = new TypedValue((int)DxfCode.Start, "INSERT");
SelectionFilter filter = new SelectionFilter(filList);

PromptSelectionResult BlockResult = null;
//user selection will pick only Appname ents
BlockResult = ed.GetSelection(BlockOption, filter);

//Do nothing if selection is unsuccessful
if (BlockResult.Status == PromptStatus.OK)
{
Autodesk.AutoCAD.EditorInput.SelectionSet SS = BlockResult.Value;
ObjectId[] idArray;
idArray = SS.GetObjectIds();

//collect all BlockRefenences SS array
foreach (ObjectId objId in idArray)
{
//besser Entity tmpBlock statt DBObject tmpBlock
Entity tmpBlock = (Entity)myT.GetObject(objId, OpenMode.ForWrite);
BlockReference tmpShowedBlock = (BlockReference)tmpBlock;
if (tmpShowedBlock != null)
{
ed.WriteMessage("Test");
//Was ist daran denn so FALSCH!!!!
tmpShowedBlock.ScaleFactors = new Scale3d(10.0);
}
}
}
// WIE WÄRS MIT EINEM ABSCHLIESSENDEN COMMIT !?!
myT.Commit();
}
finally
{
myT.Dispose();
}
}

}
}


Gruß
Ralph

------------
Wo ist meine Formatierung geblieben ?


[Diese Nachricht wurde von Apply2CAD am 21. Okt. 2005 editiert.]

[Diese Nachricht wurde von Apply2CAD am 21. Okt. 2005 editiert.]

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

RoSiNiNo
Mitglied
Konstrukteur


Sehen Sie sich das Profil von RoSiNiNo an!   Senden Sie eine Private Message an RoSiNiNo  Schreiben Sie einen Gästebucheintrag für RoSiNiNo

Beiträge: 1126
Registriert: 09.10.2002

Revit Structure 2011
Acad 2011-deutsch, Express Tools
3ds Max 2011
Win 7-Professional
HP Workstation Z400, 6GB
GeForce GTX 470

erstellt am: 21. Okt. 2005 19:34    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

DANKE, auf diesen Fehler wäre ich nie draufgekommen.
Hab einfach darauf vergessen 

Roland

------------------
Roland

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

Anzeige.:

Anzeige: (Infos zum Werbeplatz >>)

Darstellung des Themas zum Ausdrucken. Bitte dann die Druckfunktion des Browsers verwenden. | Suche nach Beiträgen

nächster neuerer Beitrag | nächster älterer Beitrag
Antwort erstellen


Diesen Beitrag mit Lesezeichen versehen ... | Nach anderen Beiträgen suchen | CAD.de-Newsletter

Administrative Optionen: Beitrag schliessen | Archivieren/Bewegen | Beitrag melden!

Fragen und Anregungen: Kritik-Forum | Neues aus der Community: Community-Forum

(c)2023 CAD.de | Impressum | Datenschutz