Hot News:

Unser Angebot:

  Foren auf CAD.de (alle Foren)
  AutoCAD VBA
  Block verschieben

Antwort erstellen  Neues Thema erstellen
CAD.de Login | Logout | Profil | Profil bearbeiten | Registrieren | Voreinstellungen | Hilfe | Suchen

Anzeige:

Darstellung des Themas zum Ausdrucken. Bitte dann die Druckfunktion des Browsers verwenden. | Suche nach Beiträgen nächster neuer Beitrag | nächster älterer Beitrag
  
Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für Autodesk Produkte
Autor Thema:  Block verschieben (1362 mal gelesen)
niclas1234
Mitglied
sdf

Sehen Sie sich das Profil von niclas1234 an!   Senden Sie eine Private Message an niclas1234  Schreiben Sie einen Gästebucheintrag für niclas1234

Beiträge: 1
Registriert: 10.05.2013

erstellt am: 10. Mai. 2013 09:45    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

Hallo,

Ich bin neu hier und auch neu in Acad VBA.
Vielleicht könnte mir jemand helfen.

Ich habe in Acad einen Block definiert mit einem bestimmten Namen.
Sagen wir einfach mal "Josef" 
"Josef" gibt es nur einmal in der Zeichnung und es wird auch nie einen zweiten "Josef" geben.

Ich möchte nun "Josef" um 1mm nach rechts verschieben.

Kann mir jemand sagen wie das geht?
Kann ja nicht so schwierig sein.
Hab schon 3 Stunden gegoogelt und nichts gefunden.


Habe Autocad 2004

Danke im Voraus

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

KlaK
Ehrenmitglied V.I.P. h.c.
Dipl. Ing. Vermessung, CAD- und Netz-Admin



Sehen Sie sich das Profil von KlaK an!   Senden Sie eine Private Message an KlaK  Schreiben Sie einen Gästebucheintrag für KlaK

Beiträge: 2624
Registriert: 02.05.2006

AutoCAD LandDesktop R2 bis 2004
Civil 3D 2005 - 2022
Plateia, Canalis
Visual Basic

erstellt am: 10. Mai. 2013 12:31    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für niclas1234 10 Unities + Antwort hilfreich

Hallo niclas, willkommen im Forum

So ganz verstehe ich Dein Problem nicht, denn im Prinzip brauchst Du dazu kein VBA.

Dein Block "Josef" kann jetzt zwei Bedeutungen haben, bei denen Du Verschiebungen machen möchtest:

Einmal als Blockdefinition, also praktisch die Vorlage, Definition. Die kann man nachträglich mit dem Blockeditor bearbeiten

Oder als Blockreferenz, diese besagt an welcher Stelle und mit welcher Skalierung die in der Blockdefinition festgelegte Zeichnung dargestellt werden soll. Den Einfügepunkt kannst Du über die Eigenschaften verschieben.

Soweit die Grundvoraussetzungen, jetzt bräuchten wir von Dir genauere Angaben und vielleicht schon mal Codeschnipsel wo Du nicht weiterkommst ...

Grüße
Klaus  

PS.: Hast Du auch in der Autocad Hilfe gesucht?
Unter "Handbuch für Benutzeranpassungen" - "ActiveX-Automatisierung und VBA" -
öffnet sich das ActiveX- und VBA-Entwicklerhandbuch
Dort gibt es das Kapitel
"Erweiterte Zeichen- und Strukturierungsfunktionen"
- "Verwenden von Blöcken und Attributen"
-- "Arbeiten mit Blöcken"
Hier sind auch Beispiele hinterlegt wie Blöcke geändert werden

[Diese Nachricht wurde von KlaK am 11. Mai. 2013 editiert.]

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

rexxitall
Mitglied
Dipl. -Ing. Bau


Sehen Sie sich das Profil von rexxitall an!   Senden Sie eine Private Message an rexxitall  Schreiben Sie einen Gästebucheintrag für rexxitall

Beiträge: 266
Registriert: 07.06.2013

Various: systems, Operating systems, cad systems, cad versions, programming languages.

erstellt am: 08. Jun. 2013 16:01    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für niclas1234 10 Unities + Antwort hilfreich

'untested
sub move_JC
dim e as acadentity
dim P(2) as double
dim i as long
dim b as acadblockreference
for each entity in thisdrawing.modelspace 'alles durchwueheln
if lcase(entity.objectname)="acdbblockreference" then 'is sich block
set b=entity 'mussu machen doofe entity pointer zu block pointer
if lcase(b.name)="josef" then 'hassu nun volle doenerrotweiss
for i=0 to 2 'kriegstu block koordinaten
p(i)=b.insertationpoint(i)
next
'voll krass koordinaten
p(0)=p(0)-1 'one step to the left (c) Frank N further
b.insartationpoint =p
exit sub 'cheffe sauna ferrdich
end if
end if
next
end sub

Die b.name funktion funktioniert nicht bei dynamischen blöcken
dort muss b.effectivename verwendet werden
das suchen nach blockreferencen mit einem bestimmten namen ist auch bissi ungeschickt - besser attribute verwenden und diese auslesen um dann zu entscheiden welcher block gemeint ist

------------------
wer es nicht versucht, hat schon verlorn

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

Anzeige.:

Anzeige: (Infos zum Werbeplatz >>)

Darstellung des Themas zum Ausdrucken. Bitte dann die Druckfunktion des Browsers verwenden. | Suche nach Beiträgen

nächster neuerer Beitrag | nächster älterer Beitrag
Antwort erstellen


Diesen Beitrag mit Lesezeichen versehen ... | Nach anderen Beiträgen suchen | CAD.de-Newsletter

Administrative Optionen: Beitrag schliessen | Archivieren/Bewegen | Beitrag melden!

Fragen und Anregungen: Kritik-Forum | Neues aus der Community: Community-Forum

(c)2023 CAD.de | Impressum | Datenschutz