Vai al contenuto
Alexandrovic

CAD_Elevazioni Punti su Z da stringa testo

Recommended Posts

post-94553-0-06555900-1382999106_thumb.jCiao a tutti,

Ringrazio in anticipo chi potrà aiutarmi!

Vi illustro in breve il mio problema: sto iniziando a modellare un'orografia da una base quotata.

Ho i punti delle quote altimetriche con il relativo valore immesso come casella di testo accanto ad ogni singolo punto.

I punti purtroppo non hanno elevazione Z per cui mi troverei nella condizione di dover alzare ogni punto (e sono più di 1000 :wallbash: ) per assegnargli la relativa quota, per poi tirarmi fuori dalla nuvola di punti una mesh!

A qualcuno di voi risulta possibile poter risolvere questo annoso problema più velocemente? Lisp? Comandi particolari? Scorciatoie? Ogni consiglio è super bene accetto! ;)

Grazie a tutti in anticipo!

Alexandrovic

Condividi questo messaggio


Link al messaggio
Condividi su altri siti


(Defun C:Txt2pnt ( / SS SSL Cnt Ename Elst Str-A Pt-A Pt-B )

(Setq SS (SSget) SS (SSget "P" '((0 . "TEXT"))) SSL (SSlength SS) Cnt 0)

(repeat SSL

(Setq Ename (SSname SS Cnt) Elst (Entget Ename))

(Setq Str-A (Cdr (assoc 1 Elst)) Pt-A (Cdr (Assoc 10 Elst)) )

(Setq Pt-B (list (car Pt-A) (Cadr Pt-a) (Atof Str-A)))

(command "_point" Pt-

(Setq Cnt (+ 1 Cnt)) )(princ))

(prompt "\n{0.9} Read Text object XYZ, create autocad point object ")

(princ)

[/code]

.: FONTE :.

Condividi questo messaggio


Link al messaggio
Condividi su altri siti

Col Civil dello splendido Maurizio è troppo facile, invece col lisp suddetto e quest'altro strumento risolvi il problema anche in Autocad "vanilla"..

Già...esiste anche quel LISP, me ne dimentico sempre...però siamo sempre lì! E poi? Che ci deve fare con il DTM/TIN? Una strada, una sistemazione dei versanti, un campo da golf?? Con AutoCAD vanilla ti areni, a meno che non trovi il buon samaritano di turno che ti confeziona LISP ad hoc ;)

Condividi questo messaggio


Link al messaggio
Condividi su altri siti

Ciao a tutti,

innanzitutto vi ringrazio per le tante risposte!

Allora, alla fine in realtà ho risolto con un lisp trovato cercando da google "autocad from text to z elevation" ed sono risalito a questo lisp che vi riporto:

;;;Author: Pedro Miguel da Silva Ferreira Email:pedro_ferreira@netcabo.pt

;;;Web page: http:pwp.netcabo.pt/pedro_ferreira

;;;Location: Portugal, Lisboa

;;;RDS: PMSF

;;;Command Name: PMSFptwtxt

;;;Date: 01 of June 2005

;;;Version: 1.0

;;;Description: Visual Lisp Routine that creates 3d points in the insertion point of the text selected

;;;and reads the content of that text (for example 6.64) and puts the point at that elevation, the decimal separator must be . and not , .

(defun c:PMSFptwtxt ()

;;;

(inivar)

;;;

(command "layer" "make" "PMSFptwtxt-3dpoints" "COLOR" "1" "" "")

(vl-load-com)

(setq *modelspace*

(vla-get-modelspace

(vla-get-activedocument (vlax-get-acad-object))

)

)

(princ "\nSeleccione o texto")

(setq txt (ssget '((0 . "text"))))

(setq letxt (sslength txt))

(setq counter 0)

(while (< counter letxt)

(progn

(setq txtent (entget (ssname txt counter)))

(setq txtx (car (cdr (assoc 10 txtent))))

(setq txty (cadr (cdr (assoc 10 txtent))))

(setq txtz (atof (cdr (assoc 1 txtent))))

(setq xyz (list txtx txty txtz))

(command "layer" "set" "PMSFptwtxt-3dpoints" "")

(command "point" xyz)

)

(setq counter (1+ counter))

)

;;;

(recvar)

;;;

(command "layer" "set" "0" "")

(princ)

)

(alert

"Type PMSFptwtxt and press enter to run\n\n *Author: Pedro Ferreira*"

)

;;;Convert a list of reals into strings

(defun linhaxy (px)

(vl-princ-to-string px)

)

;;;-------------------;;;

(defun inivar ()

(setq cmd_ini (getvar "cmdecho")

fla_ini (getvar "flatland")

osm_ini (getvar "osmode")

ort_ini (getvar "orthomode")

plt_ini (getvar "plinetype")

aup_ini (getvar "auprec")

uni_ini (getvar "unitmode")

lun_ini (getvar "lunits")

diz_ini (getvar "dimzin")

edg_ini (getvar "edgemode")

)

(setvar "CMDECHO" 0)

(setvar "FLATLAND" 0)

(setvar "OSMODE" 0)

(setvar "ORTHOMODE" 0)

(setvar "PLINETYPE" 2)

(setvar "AUPREC" 0)

(setvar "UNITMODE" 1)

(setvar "LUNITS" 2)

(setvar "DIMZIN" 0)

(setvar "EDGEMODE" 1)

)

;;;-------------------;;;

(defun recvar ()

(setvar "CMDECHO" cmd_ini)

(setvar "FLATLAND" fla_ini)

(setvar "OSMODE" osm_ini)

(setvar "ORTHOMODE" ort_ini)

(setvar "PLINETYPE" plt_ini)

(setvar "AUPREC" aup_ini)

(setvar "UNITMODE" uni_ini)

(setvar "LUNITS" lun_ini)

(setvar "DIMZIN" diz_ini)

(setvar "EDGEMODE" edg_ini)

)

grazie ancora a tutti per le preziose e valide alternative!

a presto

Condividi questo messaggio


Link al messaggio
Condividi su altri siti

Crea un account o accedi per commentare

Devi essere un utente per poter lasciare un commento

Crea un account

Registrati per un nuovo account nella nostra comunità. è facile!

Registra un nuovo account

Accedi

Hai già un account? Accedi qui.

Accedi ora

  • Navigazione recente   0 utenti

    Non ci sono utenti registrati da visualizzare in questa pagina.

×