| |
![](https://ww3.cad.de/php/image.php?resolution=width:20050) | Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für Autodesk Produkte |
| |
![](https://ww3.cad.de/php/image.php?resolution=width:16196) | PNY: der unverzichtbare Partner für umfassende KI-Lösungen von Workstations bis zu Edge Computing und KI-Cluster-Bereitstellung, eine Pressemitteilung
|
Autor
|
Thema: Block bearbeiten verbieten... (1623 mal gelesen)
|
Heiko76 Mitglied Applikationsingenieur
![](/foren/ubb/star3.gif) ![](/foren/ubb/star3.gif) ![](/foren/ubb/star3.gif)
![Schreiben Sie einen Gästebucheintrag für Heiko76](/foren/ubb/pmimages/gbu.gif) Beiträge: 589 Registriert: 21.03.2002 Win10 64bit Autodesk Produkte 2018 VB.net / Powershell
|
erstellt am: 09. Sep. 2003 11:02 <-- editieren / zitieren --> Unities abgeben: ![1 Unity (wenig hilfreich, aber dennoch)](/foren/ubb/z1.gif) ![2 Unities](/foren/ubb/z2.gif) ![3 Unities](/foren/ubb/z3.gif) ![4 Unities](/foren/ubb/z4.gif) ![5 Unities](/foren/ubb/z5.gif) ![6 Unities](/foren/ubb/z6.gif) ![7 Unities](/foren/ubb/z7.gif) ![8 Unities](/foren/ubb/z8.gif) ![9 Unities](/foren/ubb/z9.gif)
Hallo zusammen, ich habe dieses Beispiel bekommen, aber irgendwie macht es nicht das was mir versprochen wurde. Es sollte eigendlich eine MSGBox aufrufen mit dem Text: "Fingerweg von Bloecken" Aber das tut es nicht. Was muß ich hierbei noch machen??? ------------------ cu Heiko Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
BerndE Mitglied Hochbautechniker
![](/foren/ubb/star3.gif) ![](/foren/ubb/star3.gif) ![](/foren/ubb/star3.gif)
![Schreiben Sie einen Gästebucheintrag für BerndE](/foren/ubb/pmimages/gbu.gif) Beiträge: 557 Registriert: 05.07.2003
|
erstellt am: 09. Sep. 2003 11:58 <-- editieren / zitieren --> Unities abgeben: ![1 Unity (wenig hilfreich, aber dennoch)](/foren/ubb/z1.gif) ![2 Unities](/foren/ubb/z2.gif) ![3 Unities](/foren/ubb/z3.gif) ![4 Unities](/foren/ubb/z4.gif) ![5 Unities](/foren/ubb/z5.gif) ![6 Unities](/foren/ubb/z6.gif) ![7 Unities](/foren/ubb/z7.gif) ![8 Unities](/foren/ubb/z8.gif) ![9 Unities](/foren/ubb/z9.gif) Nur für Heiko76
Hi Heiko, hab mir dein dvb mal angeschaut. das event modified tritt erst ein, wenn du tatsächlich ein veränderung auslöst. das reine anklicken eines objektes mit getentity erfüllt dies m.e. noch nicht. willst du aber direkt nach anklicken des objektes eine meldung erzeugen, wie wäre es dann mit einer If..then-zeile (siehe anhang) ------------------ Bernd Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Heiko76 Mitglied Applikationsingenieur
![](/foren/ubb/star3.gif) ![](/foren/ubb/star3.gif) ![](/foren/ubb/star3.gif)
![Schreiben Sie einen Gästebucheintrag für Heiko76](/foren/ubb/pmimages/gbu.gif) Beiträge: 589 Registriert: 21.03.2002 Win10 64bit Autodesk Produkte 2018 VB.net / Powershell
|
erstellt am: 09. Sep. 2003 12:06 <-- editieren / zitieren --> Unities abgeben: ![1 Unity (wenig hilfreich, aber dennoch)](/foren/ubb/z1.gif) ![2 Unities](/foren/ubb/z2.gif) ![3 Unities](/foren/ubb/z3.gif) ![4 Unities](/foren/ubb/z4.gif) ![5 Unities](/foren/ubb/z5.gif) ![6 Unities](/foren/ubb/z6.gif) ![7 Unities](/foren/ubb/z7.gif) ![8 Unities](/foren/ubb/z8.gif) ![9 Unities](/foren/ubb/z9.gif)
Hallo Bernd, das sieht schon richtig gut aus. Das mit dem Beenden des Befehls hab ich auch gerade gesehen. Das ist nicht das, was ich haben will, da hast Du recht. Ich habe hier einen Event gefunden, der ist auch ganz gut: Private Sub AcadDocument_BeginCommand(CommandName) MsgBox "Nein" End Sub Nur wie kriege ich jetzt da bei CommandName einen Befehl rein? Ich möchte den Befehl _.eattedit abfangen? Am besten, wenn er bei einem bestimmten Block angewendet wird. ------------------ cu Heiko Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
BerndE Mitglied Hochbautechniker
![](/foren/ubb/star3.gif) ![](/foren/ubb/star3.gif) ![](/foren/ubb/star3.gif)
![Schreiben Sie einen Gästebucheintrag für BerndE](/foren/ubb/pmimages/gbu.gif) Beiträge: 557 Registriert: 05.07.2003
|
erstellt am: 09. Sep. 2003 12:13 <-- editieren / zitieren --> Unities abgeben: ![1 Unity (wenig hilfreich, aber dennoch)](/foren/ubb/z1.gif) ![2 Unities](/foren/ubb/z2.gif) ![3 Unities](/foren/ubb/z3.gif) ![4 Unities](/foren/ubb/z4.gif) ![5 Unities](/foren/ubb/z5.gif) ![6 Unities](/foren/ubb/z6.gif) ![7 Unities](/foren/ubb/z7.gif) ![8 Unities](/foren/ubb/z8.gif) ![9 Unities](/foren/ubb/z9.gif) Nur für Heiko76
Hi Heiko, wenn du eine bearbeitung der Blöcke gänzlich unmöglich machen willst, dann trag im aktuellen projekt unter thisdrawing ein: Public WithEvents Object As AcadBlockReference Private Sub AcadDocument_ObjectModified(ByVal Object As Object) MsgBox "Finger weg von Bloecken" ThisDrawing.SendCommand "z" & vbCr End Sub allerdings ist es dann auch aus mit dem einfügen von blöcken, weil das einfügen eines blockes eine veränderung der blockreference ist.
------------------ Bernd Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
BerndE Mitglied Hochbautechniker
![](/foren/ubb/star3.gif) ![](/foren/ubb/star3.gif) ![](/foren/ubb/star3.gif)
![Schreiben Sie einen Gästebucheintrag für BerndE](/foren/ubb/pmimages/gbu.gif) Beiträge: 557 Registriert: 05.07.2003 Revit 2013 ACA 2012 deutsch BuildingOne 5.4.5 Win7 WindowsNetz
|
erstellt am: 09. Sep. 2003 12:20 <-- editieren / zitieren --> Unities abgeben: ![1 Unity (wenig hilfreich, aber dennoch)](/foren/ubb/z1.gif) ![2 Unities](/foren/ubb/z2.gif) ![3 Unities](/foren/ubb/z3.gif) ![4 Unities](/foren/ubb/z4.gif) ![5 Unities](/foren/ubb/z5.gif) ![6 Unities](/foren/ubb/z6.gif) ![7 Unities](/foren/ubb/z7.gif) ![8 Unities](/foren/ubb/z8.gif) ![9 Unities](/foren/ubb/z9.gif) Nur für Heiko76
|
Heiko76 Mitglied Applikationsingenieur
![](/foren/ubb/star3.gif) ![](/foren/ubb/star3.gif) ![](/foren/ubb/star3.gif)
![Schreiben Sie einen Gästebucheintrag für Heiko76](/foren/ubb/pmimages/gbu.gif) Beiträge: 589 Registriert: 21.03.2002
|
erstellt am: 11. Sep. 2003 12:06 <-- editieren / zitieren --> Unities abgeben: ![1 Unity (wenig hilfreich, aber dennoch)](/foren/ubb/z1.gif) ![2 Unities](/foren/ubb/z2.gif) ![3 Unities](/foren/ubb/z3.gif) ![4 Unities](/foren/ubb/z4.gif) ![5 Unities](/foren/ubb/z5.gif) ![6 Unities](/foren/ubb/z6.gif) ![7 Unities](/foren/ubb/z7.gif) ![8 Unities](/foren/ubb/z8.gif) ![9 Unities](/foren/ubb/z9.gif)
Hi Bernd, das ist ja gerade das Problem. Ich habe ein VBA Programm geschrieben, womit man das Schriftfeld ausfüllen muss. Dieses Programm ist mit einer SQL-Datenbank verbunden von der dann automatisch eine neue Zeichnungsnummer vergeben wird. In der Datenbank sind auch die ganzen Felder, die im Schriffeld stehen hinterlegt. Also in etwa ein EDM System (zumindest mal in die Richtung). Nun muß ich aber verhindern, das ein User das Schriftfeld "von Hand" ändert, d.H. ohne mein Programm darf das Schriftfeld nicht bearbeitet werden. Das hätte zur Folge, das im Schriftfeld andere Werte stehen als in der Datenbank. Dafür suche ich jetzt eine Sinnvolle Lösung, wie ich dies verhindern kann... ------------------ cu Heiko Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
BerndE Mitglied Hochbautechniker
![](/foren/ubb/star3.gif) ![](/foren/ubb/star3.gif) ![](/foren/ubb/star3.gif)
![Schreiben Sie einen Gästebucheintrag für BerndE](/foren/ubb/pmimages/gbu.gif) Beiträge: 557 Registriert: 05.07.2003 Revit 2013 ACA 2012 deutsch BuildingOne 5.4.5 Win7 WindowsNetz
|
erstellt am: 11. Sep. 2003 13:56 <-- editieren / zitieren --> Unities abgeben: ![1 Unity (wenig hilfreich, aber dennoch)](/foren/ubb/z1.gif) ![2 Unities](/foren/ubb/z2.gif) ![3 Unities](/foren/ubb/z3.gif) ![4 Unities](/foren/ubb/z4.gif) ![5 Unities](/foren/ubb/z5.gif) ![6 Unities](/foren/ubb/z6.gif) ![7 Unities](/foren/ubb/z7.gif) ![8 Unities](/foren/ubb/z8.gif) ![9 Unities](/foren/ubb/z9.gif) Nur für Heiko76
|
Brischke Ehrenmitglied V.I.P. h.c. CAD on demand GmbH
![](/foren/avatars/Brischke.gif)
![Schreiben Sie einen Gästebucheintrag für Brischke](/foren/ubb/pmimages/gbu.gif) Beiträge: 4189 Registriert: 17.05.2001 ACAD20XX, defun-tools
|
erstellt am: 12. Sep. 2003 08:40 <-- editieren / zitieren --> Unities abgeben: ![1 Unity (wenig hilfreich, aber dennoch)](/foren/ubb/z1.gif) ![2 Unities](/foren/ubb/z2.gif) ![3 Unities](/foren/ubb/z3.gif) ![4 Unities](/foren/ubb/z4.gif) ![5 Unities](/foren/ubb/z5.gif) ![6 Unities](/foren/ubb/z6.gif) ![7 Unities](/foren/ubb/z7.gif) ![8 Unities](/foren/ubb/z8.gif) ![9 Unities](/foren/ubb/z9.gif) Nur für Heiko76
Hallo Heiko, ich weiß ja nicht, wie fit Deine Anwender sind. Man kann aber auch einzelne Befehle löschen. Mit AutoLISP geht das so (command "_UNDEFINE" "BEFNAME") Nachteil, dieser Befel steht dann auch nicht bei den Blöcken zur Verfügung, die geändert werden dürfen. 2. Variante, die ich eigentlich noch besser finden würde. Wenn Das Attribut sowieso nur einmal ausgefüllt werden darf, dann mach doch einfach ein Konstantes Attribut daraus. Sowohl mit VBA als auch AutoLISP ist das ja kein Thema, auch das auszuwerten. Das wären mal 2 andere Ansätze, mit denen du dein Ziel erreichen könntest. Bei Fragen ... Grüße Holger ------------------ Holger Brischke CADlon - Lisp over night! 10 - Der Countdown läuft. Wofür?... ./. Ich bin vom 07.-10.10. in Stuttgart dabei. Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Heiko76 Mitglied Applikationsingenieur
![](/foren/ubb/star3.gif) ![](/foren/ubb/star3.gif) ![](/foren/ubb/star3.gif)
![Schreiben Sie einen Gästebucheintrag für Heiko76](/foren/ubb/pmimages/gbu.gif) Beiträge: 589 Registriert: 21.03.2002
|
erstellt am: 12. Sep. 2003 09:35 <-- editieren / zitieren --> Unities abgeben: ![1 Unity (wenig hilfreich, aber dennoch)](/foren/ubb/z1.gif) ![2 Unities](/foren/ubb/z2.gif) ![3 Unities](/foren/ubb/z3.gif) ![4 Unities](/foren/ubb/z4.gif) ![5 Unities](/foren/ubb/z5.gif) ![6 Unities](/foren/ubb/z6.gif) ![7 Unities](/foren/ubb/z7.gif) ![8 Unities](/foren/ubb/z8.gif) ![9 Unities](/foren/ubb/z9.gif)
Hi Holger, danke für die 2 Varianten. Das mit dem Befehl deaktivieren kannte ich noch nicht. Ist mal interresant zu wissen, aber es müssen noch andere Blöcke geändert werden. Mit den konstanten Attributen, ist nicht so toll, da die User die möglichkeit haben müssen, diese Werte nochmals zu ändern oder zu ergänzen. Ist es möglich, beim start des VBA Programmes die Attribute nicht mehr konstant zu schalten und beim Beenden wieder konstant? ------------------ cu Heiko Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
RoSiNiNo Mitglied Konstrukteur
![](/foren/ubb/star3.gif) ![](/foren/ubb/star3.gif) ![](/foren/ubb/star3.gif) ![](/foren/ubb/star3.gif)
![Schreiben Sie einen Gästebucheintrag für RoSiNiNo](/foren/ubb/pmimages/gbu.gif) Beiträge: 1126 Registriert: 09.10.2002 Acad 2011-deutsch, Express Tools 3ds Max 2010 Win 7-Professional HP Workstation Z400, 6GB GeForce GTX 470
|
erstellt am: 18. Sep. 2003 19:52 <-- editieren / zitieren --> Unities abgeben: ![1 Unity (wenig hilfreich, aber dennoch)](/foren/ubb/z1.gif) ![2 Unities](/foren/ubb/z2.gif) ![3 Unities](/foren/ubb/z3.gif) ![4 Unities](/foren/ubb/z4.gif) ![5 Unities](/foren/ubb/z5.gif) ![6 Unities](/foren/ubb/z6.gif) ![7 Unities](/foren/ubb/z7.gif) ![8 Unities](/foren/ubb/z8.gif) ![9 Unities](/foren/ubb/z9.gif) Nur für Heiko76
Eine Frage dazu. Geht es dir nur um das Abfangen des Befehls "_.eattedit "? Verrschieben, drehen, etc. kann ruhig möglich sein? Was möchtest du das passiert wenn jemand die Attribute ändern möchte, soll vielleicht dein VBA-Programm zum ändern der Attribute aufgerufen werden? Wie heißt den dein Block der nicht angegriffen werden darf? ------------------ Roland [Diese Nachricht wurde von RoSiNiNo am 18. September 2003 editiert.] [Diese Nachricht wurde von RoSiNiNo am 18. September 2003 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Heiko76 Mitglied Applikationsingenieur
![](/foren/ubb/star3.gif) ![](/foren/ubb/star3.gif) ![](/foren/ubb/star3.gif)
![Schreiben Sie einen Gästebucheintrag für Heiko76](/foren/ubb/pmimages/gbu.gif) Beiträge: 589 Registriert: 21.03.2002
|
erstellt am: 22. Sep. 2003 07:06 <-- editieren / zitieren --> Unities abgeben: ![1 Unity (wenig hilfreich, aber dennoch)](/foren/ubb/z1.gif) ![2 Unities](/foren/ubb/z2.gif) ![3 Unities](/foren/ubb/z3.gif) ![4 Unities](/foren/ubb/z4.gif) ![5 Unities](/foren/ubb/z5.gif) ![6 Unities](/foren/ubb/z6.gif) ![7 Unities](/foren/ubb/z7.gif) ![8 Unities](/foren/ubb/z8.gif) ![9 Unities](/foren/ubb/z9.gif)
Hi Roland, als erstes, es geht mir eigendlich grundsätzlich um das bearbeiten des Blockes (Schriftfeldes), d.H. z.B. mit _eattedit oder _ddatte. Das starten des VBA-Programmes hört sich ganz gut an. Ich wollte eigendlich nur eine MSGBOX haben, aber das ist noch besser. Es sind eigendlich 2 Blöcke die nicht angegriffen werden dürfen. Die heißen "SFeld2000" und "2SFeld2000". ------------------ cu Heiko Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
RoSiNiNo Mitglied Konstrukteur
![](/foren/ubb/star3.gif) ![](/foren/ubb/star3.gif) ![](/foren/ubb/star3.gif) ![](/foren/ubb/star3.gif)
![Schreiben Sie einen Gästebucheintrag für RoSiNiNo](/foren/ubb/pmimages/gbu.gif) Beiträge: 1126 Registriert: 09.10.2002 Acad 2011-deutsch, Express Tools 3ds Max 2010 Win 7-Professional HP Workstation Z400, 6GB GeForce GTX 470
|
erstellt am: 24. Sep. 2003 08:00 <-- editieren / zitieren --> Unities abgeben: ![1 Unity (wenig hilfreich, aber dennoch)](/foren/ubb/z1.gif) ![2 Unities](/foren/ubb/z2.gif) ![3 Unities](/foren/ubb/z3.gif) ![4 Unities](/foren/ubb/z4.gif) ![5 Unities](/foren/ubb/z5.gif) ![6 Unities](/foren/ubb/z6.gif) ![7 Unities](/foren/ubb/z7.gif) ![8 Unities](/foren/ubb/z8.gif) ![9 Unities](/foren/ubb/z9.gif) Nur für Heiko76
Ich hab jetzt ein wenig herumgefragt, hier ist die Lösung für dein Problem. Du solltest sie allerdings noch ein wenig Testen. Code: Private Sub AcadDocument_BeginCommand(ByVal CommandName As String) Select Case CommandName Case "REFEDIT", "ATTEDIT", "EATTEDIT" Dim selectionSetObject As AcadSelectionSet Dim oBlock As AcadBlockReference Dim Var As Variant On Error Resume Next If ThisDrawing.SelectionSets("SSet1") Then ThisDrawing.SelectionSets("SSet1").Delete End If Set selectionSetObject = ThisDrawing.SelectionSets.Add("SSet1") selectionSetObject.Select acSelectionSetLast Set oBlock = selectionSetObject.Item(0) If oBlock.Name = "SFeld2000" Then SendKeys "{ESC}" ThisDrawing.SelectionSets("SSet1").Delete End Select End Sub
Natürlich mußt du den Code an deine Bedürfnisse anpassen, hier kannst du auch die Prozedur die du brauchst starten und den Block bearbeiten. ------------------ Roland Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Heiko76 Mitglied Applikationsingenieur
![](/foren/ubb/star3.gif) ![](/foren/ubb/star3.gif) ![](/foren/ubb/star3.gif)
![Schreiben Sie einen Gästebucheintrag für Heiko76](/foren/ubb/pmimages/gbu.gif) Beiträge: 589 Registriert: 21.03.2002
|
erstellt am: 24. Sep. 2003 08:17 <-- editieren / zitieren --> Unities abgeben: ![1 Unity (wenig hilfreich, aber dennoch)](/foren/ubb/z1.gif) ![2 Unities](/foren/ubb/z2.gif) ![3 Unities](/foren/ubb/z3.gif) ![4 Unities](/foren/ubb/z4.gif) ![5 Unities](/foren/ubb/z5.gif) ![6 Unities](/foren/ubb/z6.gif) ![7 Unities](/foren/ubb/z7.gif) ![8 Unities](/foren/ubb/z8.gif) ![9 Unities](/foren/ubb/z9.gif)
|