Explodir Spline em vb.net
Lembra daquele programinha para explodir spline? Que tal fazer isso em VB.NET? Veja:
(ah, usei o VISUAL STUDIO 2010 EXPRESS EDITION e AUTOCAD 2011)
Copie para um novo projeto do visual studio, carregue as referências:
acmgd.dll e acdbmgd.dll do autocad, compile e teste!!!
(ah, usei o VISUAL STUDIO 2010 EXPRESS EDITION e AUTOCAD 2011)
Imports Autodesk.AutoCAD.Runtime
Imports Autodesk.AutoCAD.ApplicationServices
Imports Autodesk.AutoCAD.ApplicationServices.Application
Imports Autodesk.AutoCAD.EditorInput
Imports Autodesk.AutoCAD.Geometry
Imports Autodesk.AutoCAD.DatabaseServices
Imports Autodesk.AutoCAD.DatabaseServices.OpenMode
Public Module TBN2
''ponteiro para a transacao atualmente aberta
Public CurrentTrans As Transaction = Nothing
''funcoes internas
''editor, é como o utility do vba
Public Function ED() As Editor
Return AcadDOC.Editor
End Function
''documento atual, é como do thisdrawing
Public Function AcadDOC() As Document
Return DocumentManager.MdiActiveDocument
End Function
''retorna o banco de dados do desenho atual
Public Function DB() As Database
Return AcadDOC.Database
End Function
''adiciona uma entidade criada ao modelspace
Public Function AddToModel(ByVal e As Entity) As ObjectId
Dim bt As BlockTable = DB.BlockTableId.GetObject(ForRead)
Dim btr As BlockTableRecord = bt(BlockTableRecord.ModelSpace).GetObject(ForWrite)
AddToModel = btr.AppendEntity(e)
CurrentTrans.AddNewlyCreatedDBObject(e, True)
End Function
''inicia uma transacao com o desenho atual
Public Sub StartTR()
If CurrentTrans Is Nothing Then CurrentTrans = AcadDOC.TransactionManager.StartTransaction
End Sub
''funcao principal: Spline2PLine
<commandmethod("spline2pline", commandflags.usepickset)>
Public Sub SPLINE2PLINE()
''inicia a transacao
StartTR()
Try
''pede a selecao das splines
Dim ssr As PromptSelectionResult =
ED.GetSelection(New PromptSelectionOptions,
New SelectionFilter(New TypedValue() {New TypedValue(0, "SPLINE")}))
If ssr.Status <> PromptStatus.OK Then Exit Try
''pede a precisao
Dim PPI As New PromptIntegerOptions(vbLf & "Qual a precisão?")
PPI.UseDefaultValue = True
PPI.DefaultValue = 10
PPI.AllowNegative = False
PPI.AllowZero = False
''se nao for informado, sai
Dim ppr As PromptIntegerResult = ED.GetInteger(PPI)
If ppr.Status <> PromptStatus.OK Then Exit Try
''em toda a selecao, repita:
For Each ID As ObjectId In ssr.Value.GetObjectIds
Dim S As Spline = ID.GetObject(ForWrite)
Dim C As Entity = S.ToPolylineWithPrecision(ppr.Value)
AddToModel(C)
Next
'' em caso de erro na execucao:
Catch
''mostra o erro na linha de comando
ED.WriteMessage(Err.Description)
End Try
''fecha a transacao e informa ao autocad, para manter as alteracoes no banco de dados
CurrentTrans.Commit()
End Sub
End Module
Copie para um novo projeto do visual studio, carregue as referências:
acmgd.dll e acdbmgd.dll do autocad, compile e teste!!!
Dica sobre estilos do civil 3d
Outro dia vi um comando do civil 3d num site grigo que achei muito interessante, o comando é AECCIMPORTSTYLESANDSETTINGS, é é isso tudo aí...
A idéia é importar TODOS os estilos de um desenho para outro. Legal né?
Funciona assim: abre o desenho que receberá os estilos. Cerifique-se de que aquele que possui os estilos esteja fechado. Chame o comando AECCIMPORTSTYLESANDSETTINGS na linha de comando. Informe o caminhoccompleto e pronto. Um ououtro REFRESH no settings e os estilos estarão lá!!
Como digitar o caminho ou mesmo esse comando todo, experimente salvar esta lisp:
(DEFUN C:ISTYLES (/)
(IF (SETQ FILE (GETFILED "SELECIONE UM ARQUIVO" "" "DWG" 4))
(COMMAND "AECCIMPORTSTYLESANDSETTINGS" FILE)
))
Salve e carregue com o APPLOAD, depois chame a lisp na linha de comando: ISTYLES
ah, o site onde vi é este
A idéia é importar TODOS os estilos de um desenho para outro. Legal né?
Funciona assim: abre o desenho que receberá os estilos. Cerifique-se de que aquele que possui os estilos esteja fechado. Chame o comando AECCIMPORTSTYLESANDSETTINGS na linha de comando. Informe o caminhoccompleto e pronto. Um ououtro REFRESH no settings e os estilos estarão lá!!
Como digitar o caminho ou mesmo esse comando todo, experimente salvar esta lisp:
(DEFUN C:ISTYLES (/)
(IF (SETQ FILE (GETFILED "SELECIONE UM ARQUIVO" "" "DWG" 4))
(COMMAND "AECCIMPORTSTYLESANDSETTINGS" FILE)
))
Salve e carregue com o APPLOAD, depois chame a lisp na linha de comando: ISTYLES
ah, o site onde vi é este
Assinar:
Postagens (Atom)