multiple polilinii cu acelasi layer suprafata totala

Creat de geosemar, Iul 15, 2014, 10:33 PM

« precedentul - următorul »

geosemar

buna ziua,
Stie cineva cum se afla suprafata totala pentru poliliniile cu acelasi layer dintr-un dxf?M-am lovit de problema asta la verificarea lg 165.ex anexa 5 in excel are o suprafata iar in dwg alta suprafata.Trebuie sa depun completarile maine si am nevoie de un raspuns urgent.Heeeeeelp!
Multumesc

old man

#1
incearca CADTOOLS 
il gasesti aici:
http://www.glamsen.se/CadTools.htm

John Doe

Poti incerca si direct din AutoCAD, comanda AREA  are optiunea "Add" , adica te lasa sa selectezi mai multe polilinii ai iti da aria totala. Deschizi pe rand cate un layer si merge.

Mai exact, succesiunea de comenzi este:

AREA <enter>
A <enter>
<selectezi poliliniile, implicit cu crossing polygon din mai multe puncte>
<ENTER cand ai terminat>
<ENTER daca nu mai ai si alta selectie in comanda curenta>

Anton Pann

area Enter A (adauga) Enter  O (Obiect) Enter selectezi poliliniile si in bara de jos ai suprafata cumulata.

geosemar

MUTUMESC FRUMOS.Dar pot selecta toate poliliniile o data si sa aflu supraf totala?Am incercat varianta cu O enter si treb sa selectez pe rand poliliniile.(cu posibilitatea f mare sa mai sar din ele)

old man

CADTOOLS iti ofera posibilitatea sa selectezi poliliniile din layerele active, 1-N, cu posibilitatea de exporta suprafetele respective in format xls.

John Doe

Optiunea "O" se foloseste daca vrei sa afli suprafata unui singur obiect. Deci nu e ce vrei tu.
Si da, poti selecta toate poliliniile odata, daca folosesti optiunile care ti s-au spus si folosesti selectia corespunzatoare, adica poligon. Ca si cum ai desena un poligon care sa le inconjoare pe toate, cu ENTER la final.
Din doua-trei incercari sr trebui sa reusesti.

Sau descarca si instleaza-ti CADTOOLS, e un instrument foarte util.

Anton Pann


adrianc

#8
poti sa incerci lispul alta care iti pune valoarea suprafetei
sau valoarea insumata a suprafetelor intr-un atribut al unui bloc (e musai sa ai un bloc cu atribut)
;;------------------=={ Areas 2 Attribute }==-----------------;;
;;                                                            ;;
;;  Populates a selected attribute with a Field referencing   ;;
;;  the sum of the areas of selected objects.                 ;;
;;------------------------------------------------------------;;
;;  Author: Lee Mac, Copyright ⌐ 2010 - <a href="http://www.lee-mac.com" target="_blank">www.lee-mac.com</a>       ;;
;;------------------------------------------------------------;;

(defun c:A2A nil (c:Areas2Attribute))

(defun c:Areas2Attribute ( / *error* _StartUndo _EndUndo doc att ss )
 (vl-load-com)
 ;; ⌐ Lee Mac 2010

 (defun *error* ( msg )
   (if doc (_EndUndo doc))
   (or (wcmatch (strcase msg) "*BREAK,*CANCEL*,*EXIT*")
       (princ (strcat "\n** Error: " msg " **")))
   (princ)
 )

 (defun _StartUndo ( doc ) (_EndUndo doc)
   (vla-StartUndoMark doc)
 )

 (defun _EndUndo ( doc )
   (if (= 8 (logand 8 (getvar 'UNDOCTL)))
     (vla-EndUndoMark doc)
   )
 )

 (setq doc (vla-get-ActiveDocument (vlax-get-acad-object)))

 (if
   (and (ssget '((0 . "ARC,CIRCLE,ELLIPSE,HATCH,*POLYLINE,REGION,SPLINE")))
     (setq att
       (LM:Selectif
         (lambda ( x ) (eq "ATTRIB" (cdr (assoc 0 (entget x))))) nentsel "\nSelect Attribute: "
       )
     )
   )
   (progn (_StartUndo doc)
     (
       (lambda ( ss fld )
         (vlax-for obj ss
           (setq fld
             (strcat fld "%<\\AcObjProp.16.2 Object(%<\\_ObjId "
               (LM:GetObjectID doc obj) ">%).Area>% + "
             )
           )
         )          
         (vla-put-TextString (vlax-ename->vla-object att)
           (setq fld
             (strcat
               (substr fld 1
                 (- (strlen fld) (if (< 1 (vla-get-Count ss)) 3 5))
               )
               " \\f \"%lu2%pr0%ps[S=,mp]\">%"
             )
           )
         )
         (vla-delete ss)
         (vla-regen doc acActiveViewport)
       )
       (setq ss (vla-get-ActiveSelectionSet doc))
       (if (< 1 (vla-get-Count ss)) "%<\\AcExpr " "")
     )
     (_EndUndo doc)
   )
 )

 (princ)
)

;;---------------------=={ Select if }==----------------------;;
;;                                                            ;;
;;  Continuous selection prompts until the predicate function ;;
;;  foo is validated                                          ;;
;;------------------------------------------------------------;;
;;  Author: Lee Mac, Copyright ⌐ 2010 - <a href="http://www.lee-mac.com" target="_blank">www.lee-mac.com</a>       ;;
;;------------------------------------------------------------;;
;;  Arguments:                                                ;;
;;  foo - optional predicate function taking ename argument   ;;
;;  fun - selection function to invoke                        ;;
;;  str - prompt string                                       ;;
;;------------------------------------------------------------;;
;;  Returns:  selected entity ename if successful, else nil   ;;
;;------------------------------------------------------------;;

(defun LM:Selectif ( foo fun str / e )
 ;; ⌐ Lee Mac 2010
 (while
   (progn (setq e (car (fun str)))      
     (cond
       ( (eq 'ENAME (type e))

         (if (and foo (not (foo e)))
           (princ "\n** Invalid Object Selected **")
         )
       )
     )
   )
 )
 e
)

;;-------------------=={ Get ObjectID }==---------------------;;
;;                                                            ;;
;;  Returns the ObjectID string for the supplied VLA-Object   ;;
;;------------------------------------------------------------;;
;;  Author: Lee Mac, Copyright ⌐ 2010 - <a href="http://www.lee-mac.com" target="_blank">www.lee-mac.com</a>       ;;
;;------------------------------------------------------------;;
;;  Arguments:                                                ;;
;;  doc - VLA Document Object (req'd for 64-bit systems)      ;;
;;  obj - VLA Object to query                                 ;;
;;------------------------------------------------------------;;
;;  Returns:  ObjectID string for VLA-Object                  ;;
;;------------------------------------------------------------;;

(defun LM:GetObjectID ( doc obj )
 (if (eq "X64" (strcase (getenv "PROCESSOR_ARCHITECTURE")))
   (vlax-invoke-method (vla-get-Utility doc) 'GetObjectIdString obj :vlax-false)
   (itoa (vla-get-Objectid obj))
 )
)

si in codul "%lu2%pr0%ps[S=,mp]\" pr0 e numarul de zecimale (pr1 - pune suprafata cu o zecimala, pr2 cu doua) si ps[S=,mp] reprezinta prefix si sufix despartite cu virgula

Sau instalezi cadtools care e gratuit si le exporti in excel

Modificat de adrianc (18-07-2014 14:12:08)
La muncă! nu la întins mâna.

DorinMuresan

Are cineva vreun lisp sau un program care sa-mi verifice erorile topologice? in afara de arcgis...

AlexGIS

#10
Citat din: DorinMuresanAre cineva vreun lisp sau un program care sa-mi verifice erorile topologice? in afara de arcgis...
Folosește funcțiile topologice din AutoCad Map. Eu recomand MapSys pentru construirea topologiei deoarece este un soft pur topologic, spre deosebire de AutoCad.

DorinMuresan

Pot sa inlocuiesc Autocadul cu Mapsysul? Sa fac in Mapsys tot ce fac si in autocad mai ales daca il achizitionez cu licenta?

dd2709

#12
CitatPot sa inlocuiesc Autocadul cu Mapsysul? Sa fac in Mapsys tot ce fac si in autocad mai ales daca il achizitionez cu licenta?

poti in MAPSYS: avand activ stratul in care ai poliliniile, intri in:
Topologie-> Construire topologie->in fereastra de optiuni selectezi Poligon, bifezi cele trei casute de la Operatii Optionale -> OK (fig.1.) apesi pe tasta dreapta a mouse-ului si porneste generarea automata a obiectelor, cind termina iti afiseaza un raport in care ai si suprafata totala a poligoanelor din acel strat (fig.2.)

Raportul afisat il gasesti si in fisierul text din MAPSYS ce are in denumire numele stratului si terminatie "_topo.log" ex. "A05-pasune com_topo.log"


http://www.fileshare.ro/e30844988 - fig.1.
http://www.fileshare.ro/e30844991

Daca ai deja inchise poligoanele (topologia facuta), in fisierul cu extensie .mdb (ACCESS) gasesti tabela corespunzatoare stratului tau in care ar trebui sa ai toate informatiile referitoare la poligoane.


Sper sa iti fie de folos

419/175px 18.2KB

AlexGIS

#13
Citat din: DorinMuresanPot sa inlocuiesc Autocadul cu Mapsysul? Sa fac in Mapsys tot ce fac si in autocad mai ales daca il achizitionez cu licenta?

AutoCad + topoLT este o combinație mai bună pe partea de studii topo (urbanism, planuri situație) decât MapSys.

MapSys e mai bun ca soft GIS deoarece are funcții native pe care nu le găsești în AutoCAD decât dacă le programezi separat în LISP/VBA.

DorinMuresan

#14
Citat din: dd2709
Citat din: DorinMuresanPot sa inlocuiesc Autocadul cu Mapsysul? Sa fac in Mapsys tot ce fac si in autocad mai ales daca il achizitionez cu licenta?

poti in MAPSYS: avand activ stratul in care ai poliliniile, intri in:
Topologie-> Construire topologie->in fereastra de optiuni selectezi Poligon, bifezi cele trei casute de la Operatii Optionale -> OK (fig.1.) apesi pe tasta dreapta a mouse-ului si porneste generarea automata a obiectelor, cind termina iti afiseaza un raport in care ai si suprafata totala a poligoanelor din acel strat (fig.2.)

Raportul afisat il gasesti si in fisierul text din MAPSYS ce are in denumire numele stratului si terminatie "_topo.log" ex. "A05-pasune com_topo.log"


http://www.fileshare.ro/e30844988 - fig.1.
http://www.fileshare.ro/e30844991

Daca ai deja inchise poligoanele (topologia facuta), in fisierul cu extensie .mdb (ACCESS) gasesti tabela corespunzatoare stratului tau in care ar trebui sa ai toate informatiile referitoare la poligoane.


Sper sa iti fie de folos

Ms mult pt indicatii, doar ca eu nu am mapsys asa ca nu pot sa le folosesc  :(