Author Topic: Scale the hatch  (Read 790 times)

0 Members and 1 Guest are viewing this topic.

Offline fixo

  • Full Member
  • ***
  • Posts: 135
  • Karma: +4/-0
  • Gender: Male
    • prefered language: C
    • Prog expertise: Good
    • View Profile
Scale the hatch
« on: June 29, 2012, 05:45:14 PM »
Code: [Select]
        [CommandMethod("HatchScale","hsc", CommandFlags.Modal)]
        static public void HatchScaleHalf()
        {
            Entity en;

            Database db = acApp.DocumentManager.MdiActiveDocument.Database;

            Editor ed = acApp.DocumentManager.MdiActiveDocument.Editor;

            try
            {

                using (Transaction tr = db.TransactionManager.StartTransaction())
                {
                    double cursc = ed.GetDouble("\nEnter Hatch scale: ").Value;

                    ObjectId id = ed.GetEntity("\nSelect Hatch: ").ObjectId;

                    en = tr.GetObject(id, OpenMode.ForWrite, false) as Entity;

                    Hatch hatch = en as Hatch;

                    if (hatch != null)
                    {
                        HatchPatternType hp = hatch.PatternType;

                        string hpn = hatch.PatternName;

                        double scl = hatch.PatternScale;

                        if (!hatch.IsWriteEnabled) hatch.UpgradeOpen();

                        hatch.PatternScale = scl * cursc;

                        hatch.SetHatchPattern(hp, hpn);

                        hatch.EvaluateHatch(true);
                    }
                    else
                    {
                        ed.WriteMessage("\nIt is not hatch!");

                        return;
                    }
                    tr.Commit();

                    ed.UpdateScreen();
                }
            }
            catch (System.Exception ex)
            {
                ed.WriteMessage(ex.ToString());
            }
        }

~'J'~