• このフォーラムは、www.cad3d.it/forum1 - イタリアのデザインコミュニティの機械翻訳です。いくつかの用語は正しく翻訳されていません。

エクセルデータからポリラインシリーズを作成する

  • Thread starter Thread starter wallace&gromit
  • Start date Start date

wallace&gromit

Guest
ciao a tutti, sono nuovo del forum e piuttosto inesperto di autocad.
ho un file excel in cui ho calcolato le coordinate di una serie di linee (parecchie migliaia), ognuna composta da 3 punti. ora vorrei rappresentare il tutto in autocad, immagino con una macro di excel (in quelle me la cavo abbastanza). ho visto qualcosa sul forum, ma solo per il passaggio di una sola polilinea.
 
puoi usare uno script. nel forum c'è un file excel che lo crea in automatico. unisci le funzionalità di excel per automatizzare il tutto
 
sì, l'idea potrebbe essere questa. però per partire avrei bisogno di qualche informazione in più su che comandi di autocad inserire. negli esempi si eseguono stampe e salvataggi, a me serve tracciare le polilinee.
 
negli esempi si eseguono stampe e salvataggi, a me serve tracciare le polilinee.
sono esempi più comuni per far capire come funziona il generatore di script. che in pratica significa che devi riportare i comandi che lanci in autocad per fare le operazioni che ti servono

quindi di base i comandi dovrebbero essere polilinea seguito dalle coordinate di tre punti e l'opzione chiudi poi riparti con la nuova polilinea
 
perdonami, ma l'ho detto che sono una capra in autocad.
dunque, volevo fare una prova di inserimento di una polilinea semplice. in autocad devo inserire i comandi "_pline"; "16,23";"17,24";"ch" e mi crea un segmento tra questi due punti.
ho provato a generare lo script partendo da excel e inserendo su 4 righe diverse questi comandi. poi ho generato il file script
da autocad ho digitato "script", scelto il file appena creato e lanciato lo script. ma non succede nulla!
 
le coordinate vanno inserite nella stessa riga. i decimali vanno scritti col punto.
quindi la coordinata del pinto sarà 10.54,17.63.
prima di scrivere il codice conviene fare il comando su autocad scrivendo su un foglio i comandi e tenendo a mente che il salto di riga dello script corrisponde all'invio in autocad
 
altra cosa importante
nel excel nella colonna file deve essere presente del testo. non importa se viene richiamato nel codice, si può anche scrivere x, ma serve per creare il codice altrimenti il file di script risulta vuoto (basta aprirlo con blocco note per verificarlo)
 
non ho ancora risolto! quando in autocad devo terminare una polilinea senza chiuderla premo enter. ho pensato che potevo fare la stessa cosa lasciando una riga vuota nello script di excel, ma non funziona. come devo fare?
 
ho trovato: devo inserire uno spazio sulla stessa riga dell'ultimo punto della polilinea.
poi a capo scrivere di nuovo _pline.
per ora sembra a posto, grazie ancora del supporto!
 
a chi dovesse imbattersi nei miei stessi problemi segnalo anche un'altra curiosità: excel in certi casi non mi permetteva di salvare il formato cifra,cifra: 4500,1200 veniva trasformato automaticamente in 45001200.
per aggirare questo problema ho trovato una scappatoia che illustro sotto. aggiungo anche il codice semplificato che uso io per lanciare lo script (visto che a me non servono altre funzioni che non quella semplice di compilare quello che trovo nella colonna av).

...
range("av" & urout + 1) = "_pline"
range("at" & urout + 2) = progprec
range("at" & urout + 3) = progm
range("at" & urout + 4) = progsucc
range("au" & urout + 2) = zprec
range("au" & urout + 3) = zm
range("au" & urout + 4) = zsucc
range("av" & urout + 2).formulalocal = range("at" & urout + 2) & "," & range("au" & urout + 2)
range("av" & urout + 3).formulalocal = range("at" & urout + 3) & "," & range("au" & urout + 3)
range("av" & urout + 4).formulalocal = range("at" & urout + 4) & "," & range("au" & urout + 4) & " "

next i

call creascript

end sub

sub creascript()
scriptname = application.getsaveasfilename("", filefilter:="file di testo (*.scr), *.scr")
on local error resume next
kill scriptname
on error goto 0

open scriptname for output as 1
i = 2
do until range("av" & i) = ""
print #1, range("av" & i).text
i = i + 1
loop
close 1
range("av2").select

end sub
 
no, era come un mostro dei film dell'orrore, rispuntava sempre! così ho risolto.
 
tra l'altro la cosa strana è che la stessa operazione fatta con le formule non dà problemi, solo con le macro e con un secondo numero superiore al migliaio (questo perché suppongo che excel interpreti la virgola come separatore delle migliaia)
 

Forum statistics

Threads
46,674
Messages
380,976
Members
2
Latest member
loop80
このフォーラムは、www.cad3d.it/forum1 - イタリアのデザインコミュニティの機械翻訳です。いくつかの用語は正しく翻訳されていません。

Members online

No members online now.
Back
Top