Jump to content

How to export(X,Y,Z) of a point to a text file? or read them in vb.net ?


Recommended Posts

Posted

Hello there. I found below lisp in internet. What is does is , It will find the bounding box of selected object and it put those data in minpoint and maxpoint variable and show them in command prompt.

with this format ( x1 y1 z1 , x2 y2 z2)

I believe , right term is " Buffer ".

 

Now my question is , how can I can read X,Y

coordinates of those point in vb net.

 

Or at least write them in a file.

I nice example would be helpful because I am not a pro.

Thanks for all help.

 

;;=============================

(defun C:minmax()

(setq BarEname (cdr (car (entget (car (entsel "\nselect your object "))))))

(ucs-bbox BarEname)

)

 

;; can be used with vla-transformby to

;; transform objects from the UCS to the WCS

(defun UCS2WCSMatrix ()

(vlax-tmatrix

(append

(mapcar '(lambda (vector origin) (append (trans vector 1 0 t) (list origin)) )

(list '(1 0 0) '(0 1 0) '(0 0 1))

(trans '(0 0 0) 0 1) )

(list '(0 0 0 1))

)

)

)

;; transform objects from the WCS to the UCS

(defun WCS2UCSMatrix ()

(vlax-tmatrix

(append

(mapcar '(lambda (vector origin)(append (trans vector 0 1 t) (list origin)))

(list '(1 0 0) '(0 1 0) '(0 0 1))

(trans '(0 0 0) 1 0)

)

(list '(0 0 0 1))

)

)

)

;; Returns the UCS coordinates of the object bounding box about UCS

;; Argument

;; obj : a graphical object (ename or vla-object)

;; Return

;; a list of left lower point and right upper point UCS coordinates

(defun ucs-bbox (obj / minpoint maxpoint)

(vl-load-com)

(and (= (type obj) 'ENAME)

(setq obj (vlax-ename->vla-object obj))

)

(vla-TransformBy obj (UCS2WCSMatrix))

(vla-getboundingbox obj 'minpoint 'maxpoint)

(vla-TransformBy obj (WCS2UCSMatrix))

(list (vlax-safearray->list minpoint)

(vlax-safearray->list maxpoint)

)

)

Posted (edited)

Here you go

[color=#008000]'[/color]
[color=#008000]' Created by SharpDevelop.[/color]
[color=#008000]' User: Олег[/color]
[color=#008000]' Date: 21.01.2011[/color]
[color=#008000]' Time: 11:46[/color]
[color=#008000]' [/color]
[color=#008000]' To change this template use Tools | Options | Coding | Edit Standard Headers.[/color]
[color=#008000]'[/color]
[color=#0000ff]Imports[/color] System
[color=#0000ff]Imports[/color] System.[color=#0000ff]Text[/color]
[color=#0000ff]Imports[/color] System.Data
[color=#0000ff]Imports[/color] System.IO
[color=#0000ff]Imports[/color] System.Globalization
[color=#0000ff]Imports[/color] System.Collections
[color=#0000ff]Imports[/color] System.Runtime.InteropServices
[color=#0000ff]Imports[/color] System.Reflection
[color=#0000ff]Imports[/color] Autodesk.AutoCAD.Runtime
[color=#0000ff]Imports[/color] Autodesk.AutoCAD.Geometry
[color=#0000ff]Imports[/color] Autodesk.AutoCAD.EditorInput
[color=#0000ff]Imports[/color] Autodesk.AutoCAD.DatabaseServices
[color=#0000ff]Imports[/color] Autodesk.AutoCAD.ApplicationServices

<Assembly: CommandClass([color=#0000ff]GetType[/color](TextCommands.ImportPoints))> 
[color=#0000ff]Namespace[/color] TextCommands
[color=#0000ff]Public[/color] [color=#0000ff]Class[/color] ImportPoints
<CommandMethod("CSV")> _
[color=#0000ff]Public[/color] [color=#0000ff]Shared[/color] [color=#0000ff]Sub[/color] ImbortBounds()
[color=#0000ff]Dim[/color] fname [color=#0000ff]As[/color] [color=#6f002f]String[/color]="C:\usedFiles\bbox.csv"

[color=#0000ff]Dim[/color] oldcult [color=#0000ff]As[/color] CultureInfo= Threading.Thread.CurrentThread.CurrentCulture
Threading.Thread.CurrentThread.CurrentCulture= [color=#8515ea]New[/color] CultureInfo("EN-us")

[color=#0000ff]Dim[/color] db [color=#0000ff]As[/color] Database=HostApplicationServices.WorkingDatabase
[color=#0000ff]Dim[/color] doc [color=#0000ff]As[/color] Document = Autodesk.AutoCAD.ApplicationServices.Application.DocumentManager.MdiActiveDocument
[color=#0000ff]Dim[/color] ed [color=#0000ff]As[/color] Editor=doc.Editor
[color=#0000ff]Dim[/color] mtx [color=#0000ff]As[/color] Matrix3d= ed.CurrentUserCoordinateSystem
[color=#0000ff]Dim[/color] pts [color=#0000ff]As[/color] List([color=#0000ff]Of[/color] [color=#6f002f]String[/color])= [color=#8515ea]New[/color] List([color=#0000ff]Of[/color] [color=#6f002f]String[/color])


[color=#0000ff]Dim[/color] psr [color=#0000ff]As[/color] PromptSelectionResult =ed.GetSelection()

[color=#0000ff]If[/color] psr.Status <> PromptStatus.OK [color=#0000ff]Then[/color]
ed.WriteMessage("{0}Selection Returned: {0}" ,vbCr,psr.Status)
[color=#0000ff]Return[/color]
[color=#0000ff]End[/color] [color=#0000ff]If[/color]

[color=#0000ff]Dim[/color] sset [color=#0000ff]As[/color] SelectionSet = psr.Value

ed.WriteMessage("{0}Selection Returned: {0}" ,vbCr,sset.Count)
[color=#0000ff]If[/color] sset.Count=0 [color=#0000ff]Then[/color]
ed.WriteMessage("{0}Nothing Selected, exit...",vbcr)
[color=#0000ff]return[/color]
[color=#0000ff]End[/color] [color=#0000ff]If[/color]
pts.Add([color=#6f002f]String[/color].Format("{0}{6}{1}{6}{2}{6}{3}{6}{4}{6}{5}{7}", _
"Min X","Min Y","Min Z","Max X","Max Y","Max Z",vbtab,vbclf))
[color=#0000ff]Using[/color] tr [color=#0000ff]As[/color] Transaction=db.TransactionManager.StartTransaction()

[color=#0000ff]Try[/color]
[color=#0000ff]For[/color] [color=#0000ff]Each[/color] ent [color=#0000ff]As[/color] SelectedObject [color=#0000ff]In[/color] sset
[color=#0000ff]Dim[/color] id [color=#0000ff]As[/color] ObjectId = ent.ObjectId
[color=#0000ff]Dim[/color] obj [color=#0000ff]As[/color] Entity = [color=#0000ff]TryCast[/color](tr.GetObject(id, OpenMode.ForRead), Entity)
[color=#0000ff]If[/color] ([color=#8515ea]Not[/color] ent [color=#8515ea]Is[/color] [color=#0000ff]Nothing[/color]) [color=#0000ff]Then[/color]


[color=#0000ff]Dim[/color] ex3d [color=#0000ff]As[/color] Extents3d=obj.GeometricExtents
[color=#0000ff]Dim[/color] pd [color=#0000ff]As[/color] Point3d=ex3d.MinPoint.TransformBy(mtx)
[color=#0000ff]Dim[/color] pu [color=#0000ff]As[/color] Point3d=ex3d.MaxPoint.TransformBy(mtx)


[color=#0000ff]Dim[/color] strtmp [color=#0000ff]As[/color] [color=#6f002f]String[/color]= _
[color=#6f002f]String[/color].Format("{0:f3}{6}{1:f3}{6}{2:f3}{6}{3:f3}{6}{4:f3}{6}{5:f3}{7}", _
pd.X,pd.Y,pd.Z,pu.X,pu.Y,pu.Z,vbtab,vbclf)

pts.Add(strtmp)

[color=#0000ff]End[/color] [color=#0000ff]if[/color]

[color=#0000ff]Next[/color]
[color=#0000ff]If[/color] pts.Count>1 [color=#0000ff]Then[/color]

[color=#0000ff]Try[/color]

[color=#0000ff]Using[/color] sw [color=#0000ff]As[/color] [color=#8515ea]New[/color] StreamWriter(fname)

[color=#0000ff]For[/color] [color=#0000ff]Each[/color] coords [color=#0000ff]As[/color] [color=#6f002f]String[/color] [color=#0000ff]In[/color] pts

sw.WriteLine(coords)
[color=#0000ff]Next[/color]
sw.Close()
[color=#0000ff]End[/color] [color=#0000ff]Using[/color]

[color=#0000ff]Catch[/color] ex [color=#0000ff]As[/color] IOException
ed.WriteMessage("{0}Error while processing the file.",vbCr)

[color=#0000ff]Catch[/color] ex [color=#0000ff]As[/color] System.Exception
ed.WriteMessage("{0}Error reading in file data.",vbCr)

[color=#0000ff]End[/color] [color=#0000ff]Try[/color]

[color=#0000ff]End[/color] [color=#0000ff]If[/color]

[color=#0000ff]Catch[/color] ex [color=#0000ff]As[/color] System.Exception
ed.WriteMessage("{0}{1}",vbCr,ex.ToString)
[color=#0000ff]Finally[/color]
Threading.Thread.CurrentThread.CurrentCulture=oldcult
[color=#0000ff]End[/color] [color=#0000ff]Try[/color]

[color=#0000ff]End[/color] [color=#0000ff]using[/color]
[color=#0000ff]End[/color] [color=#0000ff]Sub[/color]

[color=#0000ff]End[/color] [color=#0000ff]Class[/color]
[color=#0000ff]End[/color] [color=#0000ff]Namespace[/color]

 

~'J'~

Edited by fixo
tags missed

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Unfortunately, your content contains terms that we do not allow. Please edit your content to remove the highlighted words below.
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...