Message 1 of 2
Obtener First, Second, Leader Dimstyle
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report
hola alguien me puede ayudar a extraer 1, 2, 3 ya que cuando trato de extraerlo solo puedo extraer las variables del sistema,
using Autodesk.AutoCAD.ApplicationServices;
using Autodesk.AutoCAD.DatabaseServices;
using Autodesk.AutoCAD.EditorInput;
using Autodesk.AutoCAD.Runtime;
using System.IO;
using System.Windows.Forms;
using Application = Autodesk.AutoCAD.ApplicationServices.Application;
using SaveFileDialog = Autodesk.AutoCAD.Windows.SaveFileDialog;
namespace EXPORT_DIM_STYLE
{
public class Commands
{
[CommandMethod("ExportDimStyleToTxt")]
public static void ExportDimStyleToTxt()
{
Document doc = Application.DocumentManager.MdiActiveDocument;
Database db = doc.Database;
Editor editor = doc.Editor;
using (Transaction tr = db.TransactionManager.StartTransaction())
{
try
{
DimStyleTable dimStyleTable = (DimStyleTable)tr.GetObject(db.DimStyleTableId, OpenMode.ForRead);
var dimStyles = new System.Collections.Generic.List<string>();
foreach (ObjectId dimStyleId in dimStyleTable)
{
DimStyleTableRecord dimStyle = (DimStyleTableRecord)tr.GetObject(dimStyleId, OpenMode.ForRead);
dimStyles.Add(dimStyle.Name);
}
// Crear y mostrar el formulario de selección
using (Form selectionForm = new Form())
{
selectionForm.Text = "Seleccione un Estilo de Dimensión";
selectionForm.Width = 300;
selectionForm.Height = 400;
ListBox listBox = new ListBox()
{
Dock = DockStyle.Fill,
SelectionMode = System.Windows.Forms.SelectionMode.One
};
listBox.Items.AddRange(dimStyles.ToArray());
Button confirmButton = new Button()
{
Text = "Confirmar",
Dock = DockStyle.Bottom
};
confirmButton.Click += (s, e) => selectionForm.DialogResult = DialogResult.OK;
selectionForm.Controls.Add(listBox);
selectionForm.Controls.Add(confirmButton);
if (selectionForm.ShowDialog() == DialogResult.OK && listBox.SelectedItem != null)
{
string dimStyleName = listBox.SelectedItem.ToString();
if (!dimStyleTable.Has(dimStyleName))
{
editor.WriteMessage($"\nEl estilo de dimensión '{dimStyleName}' no existe.");
return;
}
DimStyleTableRecord selectedDimStyle = (DimStyleTableRecord)tr.GetObject(dimStyleTable[dimStyleName], OpenMode.ForRead);
// Crear un archivo de texto
SaveFileDialog saveFileDialog = new SaveFileDialog("Guardar archivo", "", "txt", "Guardar como", SaveFileDialog.SaveFileDialogFlags.DoNotTransferRemoteFiles);
if (saveFileDialog.ShowDialog() != System.Windows.Forms.DialogResult.OK)
{
editor.WriteMessage("\nExportación cancelada.");
return;
}
string filePath = saveFileDialog.Filename;
// Asegurarse de que la extensión sea .txt
if (!filePath.EndsWith(".txt"))
{
filePath += ".txt";
}
ExportToTxt(selectedDimStyle, filePath);
editor.WriteMessage("\nExportación completada exitosamente.");
}
else
{
editor.WriteMessage("\nSelección cancelada por el usuario.");
}
}
}
catch (Autodesk.AutoCAD.Runtime.Exception ex)
{
editor.WriteMessage("Error al exportar el estilo de dimensión: " + ex.Message);
}
catch (System.Exception ex)
{
editor.WriteMessage("Error general al exportar el estilo de dimensión: " + ex.Message);
}
finally
{
tr.Commit();
}
}
}
private static void ExportToTxt(DimStyleTableRecord dimStyle, string filePath)
{
using (StreamWriter writer = new StreamWriter(filePath))
{
// Escribir encabezados
writer.WriteLine("Nombre\tFirstArrowhead\tSecondArrowhead\tLeaderArrowhead\tDimColor\tDimLinetype\tDimLineweight\tExtColor\tExtLinetype1\tExtLinetype2\tExtLineweight\t" +
"ArrowSize\tCenterMarkType\tCenterMarkSize\t" +
"ArcLengthSymbol\tJogAngle\tJogHeight\t" +
"TextStyle\tTextColor\tTextHeight\tVerticalPlacement\tHorizontalPlacement\tViewDirection\tOffsetFromDimLine\tTextAlignment\t" +
"ScaleDimensionFeatures\tDrawDimLineBetweenExtLines\t" +
"UnitFormat\tPrecision\tScaleFactor\tLeadingZeroSuppression\tTrailingZeroSuppression\tSubUnitsFactor\tAngularUnitFormat\tAngularPrecision");
// Escribir valores
writer.WriteLine($"{dimStyle.Name}\t" +
$"{(dimStyle.Dimblk1.IsNull ? "None" : dimStyle.Dimblk1.ToString())}\t" + // First Arrowhead
$"{(dimStyle.Dimblk2.IsNull ? "None" : dimStyle.Dimblk2.ToString())}\t" + // Second Arrowhead
$"{(dimStyle.Dimldrblk.IsNull ? "None" : dimStyle.Dimldrblk.ToString())}\t" + // Leader Arrowhead
$"{dimStyle.Dimclrd.ColorIndex}\t" + // Color de las líneas de dimensión
$"{(dimStyle.Dimltype.IsNull ? "ByBlock" : dimStyle.Dimltype.ToString())}\t" + // Tipo de línea de las líneas de dimensión
$"{dimStyle.Dimlwd.ToString()}\t" + // Grosor de las líneas de dimensión
$"{dimStyle.Dimclre.ColorIndex}\t" + // Color de las líneas de extensión
$"{(dimStyle.Dimltex1.IsNull ? "ByBlock" : dimStyle.Dimltex1.ToString())}\t" + // Tipo de línea de la primera línea de extensión
$"{(dimStyle.Dimltex2.IsNull ? "ByBlock" : dimStyle.Dimltex2.ToString())}\t" + // Tipo de línea de la segunda línea de extensión
$"{dimStyle.Dimlwe.ToString()}\t" + // Grosor de las líneas de extensión
$"{dimStyle.Dimasz}\t" + // Arrow Size
$"{(dimStyle.Dimcen != 0 ? "Mark" : "None")}\t" + // Center Mark Type (None or Mark)
$"{(dimStyle.Dimcen != 0 ? dimStyle.Dimcen.ToString() : "N/A")}\t" + // Center Mark Size
$"{dimStyle.Dimtmove}\t" + // Arc Length Symbol (Preceding or Above)
$"{dimStyle.Dimjogang}\t" + // Jog Angle
$"{dimStyle.Dimtxt}\t" + // Jog Height (Text Height)
$"{(dimStyle.Dimtxsty.IsValid ? dimStyle.Dimtxsty.ToString() : "None")}\t" + // Text Style
$"{dimStyle.Dimclrt.ColorIndex}\t" + // Text Color
$"{dimStyle.Dimtxt}\t" + // Text Height
$"{dimStyle.Dimtad}\t" + // Vertical Placement
$"{dimStyle.Dimjust}\t" + // Horizontal Placement
$"{(dimStyle.Dimtih ? "Right-to-Left" : "Left-to-Right")}\t" + // View Direction
$"{dimStyle.Dimtvp}\t" + // Offset from Dim Line
$"{dimStyle.Dimtad}\t" + // Text Alignment
$"{dimStyle.Dimscale}\t" + // Scale Dimension Features
$"{(dimStyle.Dimtmove == 1 ? "Yes" : "No")}\t" + // Draw Dim Line Between Ext Lines
$"{dimStyle.Dimlunit}\t" + // Unit Format
$"{dimStyle.Dimdec}\t" + // Precision
$"{dimStyle.Dimlfac}\t" + // Scale Factor
$"{dimStyle.Dimzin}\t" + // Leading Zero Suppression
$"{dimStyle.Dimzin}\t" + // Trailing Zero Suppression
$"{dimStyle.Dimlfac}\t" + // Sub-Units Factor
$"{dimStyle.Dimadec}\t" + // Angular Unit Format
$"{dimStyle.Dimadec}" // Angular Precision
);
}
}
}
}
pero no las del estilo que muestro en pantalla.