• Dieses Forum ist die maschinengenerierte Übersetzung von www.cad3d.it/forum1 - der italienischen Design-Community. Einige Begriffe sind nicht korrekt übersetzt.

Erstellen Sie mit nur einem mehreren Layer Befehl mit progressivem Suffix

  • Ersteller Ersteller Zoro7610
  • Erstellt am Erstellt am

Zoro7610

Guest
guten tag ist jeder neu im forum.
ich sah mich um und bemerkte, dass es echte feldexperten gibt. ich kenne leider nicht die lisp sprache, auch wenn ich mit autocad bei der arbeit einen befehl benutze. ich wollte gerne fragen, ob es eine möglichkeit gab, n schichten (n = menge, die von hand eingefügt werden) zu erstellen, die den namen "eine basis" und dann eine "progressive nummer" haben. zum beispiel:


...etc.

- ja.
...etc.


ich sah etwas um die website herum, aber leider konnte ich keine ähnliche anwendung finden.

in der zwischenzeit danke ich ihnen im voraus für jede gerade.
guten tag.
 
ohne die große lispe zu stören, können sie ein icon erstellen und es mit dem folgenden makro verknüpfen:
^c___________r$ und01^ minsgesamt^ mL$ast01^ ml$ast02^oder sie können ein bekanntes blockskript erstellen.

beide lösungen arbeiten auch mit autocad lt, während die lisp nur durch sogenannte "full"-versionen verwaltet wird.
p.s.wenn sie viele progressive schichten haben, wird die manuelle bearbeitung eines makros oder skripts ostisch: es ist daher sinnvoll, excel oder ähnliches zu verwenden, um automatische progression zu erzeugen, dann alles in einen texteditor zu kopieren und einzufügen (ich empfehle das swiss knive germantab licht).

:
 
die schnellste lösung für mich ist, ein skript zu erstellen, wie es oben auf den iren sagt
...oder sie können ein bekanntes blockskript erstellen...
aber mit excel und dann alles in das notizbuch einfügen.
die geschwindigkeit der verwendung von excel ist in der tatsache, dass nur schreiben sie in einer spalte nur diese ersten zwei zeilen
- schicht
n
r$ und01
n
insgesamt
und in block ziehen (ohne die zeile, in der der befehl geschrieben wird), bis sie die gewünschte anzahl von schichten erreichen. excel wird sie automatisch mit dem progressiven duplize.
dann eine einfache kopierpaste im notizblock machen und mit scan-erweiterung speichern.
länger zu sagen als zu tun.
 
- schicht
n
r$ und01
n
insgesamt
lassen sie mich es universeller machen, unabhängig von der autocad sprache:
......m
r$ und01
...m
insgesamt
...
smile.gif
 
komm schon, komm schon, schüttel dich aus oder kreiere ein makro mit all den schwierigkeiten.
sind 4 reihen lispe (die noch verfeinert werden sollte, klar sein), aber sind 4 reihen...
 
lassen sie mich es universeller machen, unabhängig von der autocad sprache:
...
ich hatte nicht gelesen, was sie vor meinem vorschlag gemacht hatten:
p.s.wenn sie viele progressive schichten haben, wird die manuelle bearbeitung eines makros oder skripts ostisch: es ist daher sinnvoll, excel oder ähnliches zu verwenden, um automatische progression zu erzeugen, dann alles in einen texteditor zu kopieren und einzufügen (ich empfehle das swiss knive germantab licht).

komm schon, komm schon, schüttel dich aus oder kreiere ein makro mit all den schwierigkeiten.
sind 4 reihen lispe (die noch verfeinert werden sollte, klar sein), aber sind 4 reihen...
sein... sicherlich besser die lispe. wir haben es versucht! :biggrin:
 
das sollte funktionieren. :smile:
Code:
(defun c:crealay (/ n_lay pref_lay start_lay suff nome_lay)
(setq n_lay (getint "numero dei layer da creare: "))
(setq pref_lay (getstring "\nprefisso per nome layer: "))
(setq start_lay (getint "\nsuffisso iniziale: "))
(Repeat n_lay)
(falls gestartet_lay 9) (setq suff (rtos start_lay 2 0))
(falls (< start_lay 10) (setq suff (strcat "0" (rtos start_lay 2 0)))
(setq nome_lay (strcat pref_lay suff))
(Anhang)
(cons 0 "layer") (cons 100 "acdbsymboltablerecord")
(cons 100 "acdblayertablerecord") (cons 2 nome_lay)
(cons 6 "kontinuierlich") (cons 70 0)
)
(setq start_lay (1+ start_lay))
)
)
bearbeitung
ich habe die peppe mail nicht gesehen, sollte ich mir sorgen machen? :zigeuner:
 
ich weiß nicht, wie ich euch danken soll. ich war sofort die zeit des mittagessens und gerade zurück bemerkte ich mit viel vergnügen und wunder, dass sie das problem gelöst.
vielen dank für die lispe, die mich geschrieben hat.
genau das brauchte ich.

danke.
 
ich habe die peppe mail nicht gesehen, sollte ich mir sorgen machen? :zigeuner:
nein, nein, nein, nein.
ich wollte etwas wie lay_9 einfügen, wenn schichten weniger als 10, lay_09 wenn schichten weniger als 100, lay_009 wenn weniger als 1000 und so weiter, aber ich traf einige hindernis der verkettung (auch weil ich es jet schrieb)
vielleicht bekommen wir zusammen etwas aus den plakaten:
 
variante zur verwendung von excel (oder anderen elektronischen datenblättern) ohne durch ein skript zu gehen.
in excel:
schreiben in 2 benachbarten horizontalen zellen
liv1, (vigorgular)
horizontal ziehen sie den block der 2 boxen, bis es notwendig ist
wählen sie und verbinden sie alle zellen in einer zelle
kopieren von zelleninhalt

an autocad übergeben:
- schicht.
neue
den vorherigen inhalt einfügen
senden

definitiv die lisp sprache ist eleganter und erlaubt, andere parameter einzufügen, aber sie müssen es sicher handhaben, sonst ist es zeit verloren.
 
lay_09 wenn schicht weniger als 100...
es ist die anweisung, die ich in meine eigenen, unabhängig von der tatsache, dass die schichten > 9, wie es ist das beispiel, das gold in seinem ersten beitrag angegeben:

(falls (< start_lay 10) (setq suff (strcat) "0" (rtos start_lay 2 0)

du kannst deines in diesem sinne ändern, während ich ehrlich gesagt nicht einmal über die grenze von 1000 nachgedacht habe, nur um mir vorzustellen, dass ich mit ihnen umgehen muss, mich schimmern lässt. :tongue:
 
nun, meine ist derzeit kalibriert (unabsichtlich) bis 1000. in der tat, wenn sie mehr als tausend schichten setzen, warnen sie und ausgang
 
unter autocad 2006, die liste der von kommas getrennten schichten nicht, sin.

:
seltsam; durch gedächtnis schien es als wäre es eine fast originelle option; außerdem,
ich fand dieses zitat von ellen finkelstein in einem handbuch auf autocad2004: "um gleichzeitig verschiedene schichten zu erstellen, klicken sie
neu und geben sie alle namen der gewünschten schichten, getrennt durch ein komma"; und wenn sie so sagen...
hi.
 
@ josephes tut mir leid, du hast recht. csv list arbeitet mit _new suboption, während ich stur kam mit _make.
@mastri lisparich fand heraus, dass beide der vorgeschlagenen dateien den gleichen fehler haben: sie blockieren, wenn der name der schicht einen raum enthält...

:
 
das stimmt. :redface::redface:

auch sollte es funktionieren.
Code:
(defun c:crealay (/ n_lay pref_lay start_lay suff nome_lay)
(setq n_lay (getint "numero dei layer da creare: "))
(setq pref_lay (getstring t "\nprefisso per nome layer: "))
(setq start_lay (getint "\nsuffisso iniziale: "))
(Repeat n_lay)
(falls gestartet_lay 9) (setq suff (rtos start_lay 2 0))
(falls (< start_lay 10) (setq suff (strcat "0" (rtos start_lay 2 0)))
(setq nome_lay (strcat pref_lay suff))
(Anhang)
(cons 0 "layer") (cons 100 "acdbsymboltablerecord")
(cons 100 "acdblayertablerecord") (cons 2 nome_lay)
(cons 6 "kontinuierlich") (cons 70 0)
)
(setq start_lay (1+ start_lay))
)
)
 
danke, bruder, aber es ist noch eine sache übrig: aufzwingen, dass der benutzer eingeben kann nur höher oder gleich null, während sie nun auch negative werte (und damit nicht fortschreitend) akzeptiert.

:
 

Statistik des Forums

Themen
58.521
Beiträge
499.056
Mitglieder
104.110
Neuestes Mitglied
ChristianR

Zurzeit aktive Besucher

Keine Mitglieder online.
Zurück
Oben