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

Bringen Sie die Variable INSUNITS in den Blöcken einer Zeichnung auf 0

  • Ersteller Ersteller x11start
  • Erstellt am Erstellt am

x11start

Guest
die variablen Insunits, wenn der Wert 0 bleibt, erlaubt es, Blöcke zwischen den verschiedenen Designs zu importieren, die den Maßstab des Blocks selbst halten, die Skala, mit der er erstellt wurde.
wenn stattdessen bei der Konstruktion auf einen anderen Wert (z.B. 4 die mm repräsentierend) gesetzt wird und ein Block entsteht, wenn dieser in ein anderes Design eingesetzt wird, in dem die Größe auf einen anderen Wert gelegt wird.... der Block wird skaliert.
Sicher ist die Sache sehr nützlich, wenn die Lispe unter Berücksichtigung erstellt wurden, umgekehrt wird die Sache ärgerlich, da die zurückgewonnenen Blöcke skaliert werden.

Ich frage mich, ob es möglich war, eine Lispe in der Lage, um Platz 0 zu schaffen... oder aber alle Blöcke eines Designs gleichzeitig variieren, ohne die Blöcke zu explodieren und neu zu machen.

Ich nehme an, das ist ein versteckter Gruppencode, der weiß, wo...

Danke für die Hilfe
 
Insunits ist eine in der Zeichnung gespeicherte Variable, nicht im Block, so dass Sie sie nie unter den Blockgruppen finden.
via lisp, erhalten Sie so veriable durch (getvar) und sect durch (setvar).
die Tatsache ist, dass, wenn Sie einen externen Block erstellen (ein dwg, dass Anrufe von einem anderen dwg) offensichtlich hat der dwg des Blocks seine Variable in der Datei gespeichert, die nicht eine Variable ist, die mit dem einzigen Block verknüpft ist, sondern mit der einzigen Datei.
ist der Wert der Variable (des Designs) gespeichert, wenn Sie den Block (als externes dwg) erstellt haben, weiß ich nicht, ob ich es erklärt habe.
Sie sollten alle Dwgs der Blöcke öffnen, die Sie haben, setzen Insunits auf Null und speichern sie, alles dort.
 
Aber wenn Sie die Eigenschaften im Block betrachten, gibt es die der Einheiten, die editierbar sind
 
Ich hatte nie das Problem gestellt, weil in "millemila" Jahre Karriere (!) meine Blöcke hatten sie immer zwischen den verschiedenen Designs die Skala halten importiert.
Ich habe gerade versucht, einen 100x100 Quadrat innerhalb eines Würfeldesigns zu erstellen, das ich insunits gesetzt habe = 4, dann habe ich einen Block gemacht; ich habe ihn ausgewählt und mit ctrl+c kopiert.
Ich habe einen anderen Dwg eingegeben, wo die Variable auf 0 gesetzt ist, und ich habe den Block verklebt.

der verklebte Block hat die Größe 100x100 beibehalten.

Ich tat die gleiche Operation in der entgegengesetzten Richtung... und auch in diesem Fall ist die Skala nicht variiert..

an diesem Punkt verstehe ich nicht, warum die anderen Blöcke aufhören...
 
den Wert von Einheiten oder vielmehr den Wert von Einheiten eines Blocks kennen:(vla-get-insunits (vlax-ename->vla-object (car (entsel)))liefert "Millimeter", "Zentimeter" oder "Meter"

das Skalenverhältnis zwischen Blockeinheit und dwg-Inseinheiten kennen(vla-get-insunitsfactor (vlax-ename->vla-object (car (entsel))))Wiedereinsetzung ad es. 0.01 wenn es Blockierung importiert wird in Zentimetern und Einheiten = 6 (Meter)

Dieser Wert dient dazu, zu wissen, wie viel der Block zu skalieren, um ihn auf das Design, in dem es importiert wurde, zu beziehen, worauf Sie allen Blöcken den aktuellen Wert der Einheit mit: (vla-get-Blocks (vla-get-active document (vla-get-acad object)))
(fla-put-units blk (getvar 'insunits))
)
sollten wir wissen, wie sie eingefügt wurden, oder skaliert, um sie mit dem Rest des Designs zu vereinheitlichen oder ohne die ursprüngliche Skala zu ändern?
 
Dank allen .. und dank gp! Ich muss nur ein Sub erstellen, das die interessierten Blöcke überprüft, bevor sie in die Zeichnung einfügen.
 
Also im Grunde denke ich, dass ich nur dafür sorgen werde, dass die neuen Blöcke in der richtigen Skala werden.... vermeiden, die interne Skala jedes "zu zwingen".
 
Anwendung gp-Tipps, Ich erstellte diese Lispe, die Ihnen erlaubt, alle Blöcke, die derzeit in der Zeichnung verwendet werden, den aktuellen Wert der Insunits zuzuordnen.
Ich werde es erklären. .
Wenn wir mittels des Einheitsbefehls in Metern arbeiten und einen Block einfügen wollen, der in Zentimetern angelegt wurde, in den Maßstab 1 (für alle Achsen) einlaufen würde, wird der Block von 100 mal skaliert: sehr unangenehm, wenn diese Einfügungen durch eine Lispe geschehen.

Nun: Wenn wir insunit.lsp starten, werden alle in der Zeichnung vorhandenen Blöcke in Meter umgewandelt (oder was auch immer der Wert derzeit verwendet), so gibt es keine Probleme mehr, lisp Befehle zu starten, die Blöcke einsetzen (so lange sie bereits in die Zeichnung geladen wurden).

Mein Rat ist jedoch, die Insunits variabel auf 0 (ohne Einheit) einzustellen, was die Blöcke "universal" macht.

Wie auch immer, dank der Gp-Tipps ist es jetzt nicht mehr notwendig, zu denken, dass Sie alle Blöcke zu explodieren und zu revidieren, um nicht Probleme mit Treppen.

nicht zu verwirren:
insunits-- ist die Systemgröße, die auch mit dem Einheitsbefehl geändert werden kann

insunit -------> ist die Lisp, die ich an dieser Nachricht befestigen und dient zur Uniformierung der Blöcke
 

Anhänge

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