Community
AutoCAD Produktfamilie - Deutsch
Das Forum für alle Fragen zu AutoCAD, LT, Architecture, Electrical, Map 3D, Mechanical, MEP, Plant 3D, Raster Design, Web App, sowie Autodesk Civil 3D und Advance Steel.
abbrechen
Suchergebnisse werden angezeigt für 
Anzeigen  nur  | Stattdessen suchen nach 
Meintest du: 

Befehlsmakro - vordefinierte Schritte/Werte für Mehrfachbemaßung (AMAUTODIM)

11 ANTWORTEN 11
GELÖST
Antworten
Nachricht 1 von 12
karel.grygar.jr
477 Aufrufe, 11 Antworten

Befehlsmakro - vordefinierte Schritte/Werte für Mehrfachbemaßung (AMAUTODIM)

Hallo zusammen,

 

ich benutze unter AutoCAD Mechanical sehr oft die Mehrfachbemaßung (AMAUTODIM) für beide Achsen, um verschiedene Polylinien zu bemaßen. In diesem Befehl werden einige Schritte ausgeführt, die man evtl. automatisieren konnte.

 

Meine Idee wäre, manche Schritte / Werte im Befehlsmakro vorzudefinieren: 

- Befehl AMAUTODIM aufrufen und automatisch ENTER bestätigen (Einstellungen bereits vordefiniert)

Mehrfachbemaßung.png

- ein Objekt manuell auswählen + automatisch ENTER

- erster und zweiter Null-Punk manuell definieren

erster Null-Punkt.pngzweiter Null-Punkt.png

- automatisch erste Maßlinienposition VERTIKAL + manuell Abstand* + manuell ENTER

erste Maßlinienposition.png

- automatisch zweite Maßlinienposition HORIZONTAL + manuell Abstand* + manuell Enter

zweite Maßlinienposition.png

* - muss wahrscheinlich eine manuelle Eingabe bleiben. Ich habe bereits versucht, den Abstand im Befehl über relative Koordinaten manuell zu steuern, leider ist der entsprechende Null-Punkt nicht immer der nächste Punkt zur Maßlinie und damit nicht verwendbar. Es wäre super, wenn man die zum tatsächlichen nächsten Punkt beziehen konnte.

 

Das Ergebnis:

Ergebnis.png

Hoffentlich kann mir dies jemand aufklären. Vielen Dank im Voraus für eure Tipps.

 

 

If this solution helped you solve the problem, click on "Accept as solution". Your Like is also welcome.

Karel Grygar
EQOS Energie Deutschland GmbH
11 ANTWORTEN 11
Nachricht 2 von 12
cadffm
als Antwort auf: karel.grygar.jr


@karel.grygar.jr  schrieb:

In diesem Befehl werden einige Schritte ausgeführt, die man evtl. automatisieren konnte.

Meine Idee wäre, manche Schritte / Werte im Befehlsmakro vorzudefinieren: 

- Befehl AMAUTODIM

Wenn ich das in der Hilfe richtig sehe ist AMAUTODIM ein Dialogfenster-only Befehl,

also wirst du schon mal nichts aus ACAD heraus steuern können(Befehlsmakro)

 

 

- automatisch erste Maßlinienposition VERTIKAL + manuell Abstand* + manuell ENTER

Hier fehlt wohl noch eine "Eingabe" ?

- automatisch zweite Maßlinienposition HORIZONTAL + manuell Abstand* + manuell Enter

 

* - muss wahrscheinlich eine manuelle Eingabe bleiben. Ich habe bereits versucht, den Abstand im Befehl über relative Koordinaten manuell zu steuern, leider ist der entsprechende Null-Punkt nicht immer der nächste Punkt zur Maßlinie und damit nicht verwendbar.

Es wäre super, wenn man die zum tatsächlichen nächsten Punkt beziehen konnte.

Das wäre bei einer Automatisierung kein Problem, denn die Objektdaten sind ja dann bekannt,

das Programm muß nur wissen wie weit "außerhalb" es platziert werden soll. (außerhalb = wieviel Einheit weiter links/oberhalb von weitesten Links bzw. hochsten Punkt entfernt..)

 

Hoffentlich kann mir dies jemand aufklären.

Was meinst du denn mit "dies aufklären" ?

Erklären kann ich es zumindest..

 

--

 

Wenn ich das richtig sehe dann sind das ja nur einfache AutoCAD Ordinatenbemaßungen im Resultat, richtig?

(Bin kein MECH User)

In dem Fall wäre die saubere Lösung natürlich das Nachprogrammieren

und ich bin recht sicher diese Funktion findet sich schon im www.

"Dirty", würde sicher  auch gehen, aber für sowas mache ich keine 'Werbung'.

 


 

- Sebastian -
Nachricht 3 von 12
karel.grygar.jr
als Antwort auf: cadffm

Hallo @cadffm ,

 

danke für deine Antwort. Du hast mir das aufgeklärt, was ich mich gewünscht habe. Nun leider ist das über ein Befehlsmakro nicht steuerbar, man muss damit einfach leben.

 

Hier ein Screencast aus MECH: https://autode.sk/2NkWL5p

 

 

Ich habe schon über 7 verschiedene LISPs im ACAD sowie auch im Mech getestet , die funktionieren zwar in reinem ACAD, leider sind diese für mich nicht nutzbar im Mech. Ich kenne dein Beispiel sehr gut, habe so was im englischen Forum erhalten - das war meine letzte Hoffnung. Mann kann hier leider von vielen Mech features nicht profitieren, vor allem die Power-Funktionen (Power-Löschen, Power-Kopieren), was für mich ein Muss ist. Im ACAD verhält sich jede Koordinatenbemaßung als ein separates Objekt, im Mech ist das eine Bemaßungskette, usw.

 

Darum mein Versuch, die Koordinatenbemaßung aus Mech ein Bisschen über das Befehlsmakro zu automatisieren, weil 50+ Objekte pro Zeichnung zu bemaßen ist ja kein Spaß 🙂

 

Es geht mir gar nicht um Design (Bemaßungsstil ist so wie so vordefiniert), sondern um die Funktionalität.

 

Wie kann man diese Automatisierung noch anders realisieren?

 

 

 

If this solution helped you solve the problem, click on "Accept as solution". Your Like is also welcome.

Karel Grygar
EQOS Energie Deutschland GmbH
Nachricht 4 von 12
cadffm
als Antwort auf: karel.grygar.jr

Man kann auch Dialogfelder steuern und auch wenn eine individuelle Programmierung eleganter wäre:

Dafür gibt es auch fertige ganz allgemeine

Softwarelösungen, Schöngeister und Programmierer gewinnst du zwar nicht als Freunde damit, aber

bitte sehr.

Als Beispiel sei genannt AutoIT und an erster Stelle AutoHotkey

 

Zusammen mit ein paar Zeilen Code mit dem man den Linken und Oberen Stützpunkt ausliest

sieht es dann so aus:

 

SOtTUO61W1

(hier mit AMAUTODIM-Dialog zum bestätigen, wa man aber automatisieren kann)

 

 

Zu deinen 7 Tools:

Wenn die nicht entsprechend für die MECH Funktionalität programmiert sind, klar.

Viele Netzfundstücke berücksichtigen noch nicht mal "ACAD Standards"..

Würde man mit einem erfahrenen MECH-Programmierer sprechen so könnte dieser

sicher schnell Auskunft geben ob dies auch möglich ist oder nicht

 

PS: Ich bin mir nicht sichr was du mit meinem "Beispiel" meintest, hattest du dieses GIF

chon gesehen oder meintest du etwas anderes? Ich bin mir nicht sicher.

 

Sebastian

- Sebastian -
Nachricht 5 von 12
cadffm
als Antwort auf: cadffm

Habe das Beispiel- Programm vergessen anzuhängen, wenn ich morgen wieder am PC bin und daran zufällig noch denke poste noch was dazu.

- Sebastian -
Nachricht 6 von 12
karel.grygar.jr
als Antwort auf: cadffm

Morgen Sebastian,

 

ja dein GIF sieht super lecker aus 😊.

 

Ja ich habe es versucht im ACAD sowie auch MECH Forum ein LISP zu finden / nach zufragen, ohne Erfolg. 

 

Bin gespannt auf dein Besispiel-Programm...

If this solution helped you solve the problem, click on "Accept as solution". Your Like is also welcome.

Karel Grygar
EQOS Energie Deutschland GmbH
Nachricht 7 von 12
cadffm
als Antwort auf: karel.grygar.jr


@karel.grygar.jr  schrieb:

>>ja dein GIF sieht super lecker aus

In dem Fall lege ich als Motivation gerne nach: KLICKMICH!

 

>>Ja ich habe es versucht im ACAD sowie auch MECH Forum ein LISP zu finden / nach zufragen, ohne Erfolg. 

Zu finden ist wirklich schwierig, da die Anforderung selten vorkommt - (und dazu "eigene" Programmierlösungen oft einfacher sind)

Nachfragen: Kann man machen, vielleicht hat man auch mal Glück, aber da muß man ja gleich doppelt Glück haben.

1. Einen mit Langeweile und Lust daran finden oder jemanden der echtes Interesse an der Umsetzung selbst hat

2. Derjenige sollte Ahnung von MECH haben oder zumidnest das Programm im Zugriff haben

3. Derjenige muß dann auch noch gewillt sein Stunden an Arbeit für einen Fremden für Nothing zu investieren

   (Als Codeschnipsel/funktionsfähe Demo ab und an zu finden, als Kugelsicheres Anwenderfreundliches Programm wohl kaum)

 

Aber es gibt einen Trick wie man seinem Glück auf die Sprünge helfen kann: Da es hier um eine kommerzielle Nutzung geht sehe ich es ohnehin als richtigen Weg an. Dienstleister mit Auftrag Quälen, fertig.

 

>>Bin gespannt auf dein Besispiel-Programm

Nur ein paar Zeilen um das Objekt zu ermitteln,

zwei Koordinaten aus dem Objekt zu lesen und zwei Positionen anzugeben, relativ zu den zwei Koordinaten

(Da du Interesse hast, hier nur als Bausatz 😎 )


Also, weder schön noch sonst etwas, aber es zeigt den prinzipiellen Weg und eine simple Umsetzung.

Es fehlen Prüfungen für die Objektwahl,

es fehlt ein Objektfang handling

natürlich geht es von einer ganz bestimmten Situation aus (AmAutoDim Dialogfeld und nur 1 Objekt ohne zusätzl. Kante)

usw.

 

DAS ist der Grund warum man sowas nicht findet: Quick&Dirty dauert mal ne Halbe, mal ne ganze Stunde,

ordentlich dann aber auch schnell mal 1 Tag, 2 Tage oder eine Woche (so das man es problemlos in Userhand geben kann)

(defun c:AMAUTODIM+M ( / aadPPL)
  (and
    ; Objektwahl / ohne Test auf Objekttyp
    (setq aadObj1 (car(entsel)))
    ; Alle Stützpunkte der (hoffentlich) LWPOLYLINE
    (setq aadPPL (mapcar 'cdr (vl-remove-if-not '(lambda(dp)(= (car dp) 10))(entget aadObj1))))
     ; Suche nach Stützpunkt mit niedrigstem Y-Wert(WKS)
    (setq aad0V (car(vl-sort aadPPL (function (lambda(e1 e2)(<(cadr e1)(cadr e2)))))))
     ; Suche nach Stützpunkt mit niedrigstem X-Wert(WKS)
    (setq aad0H (car(vl-sort aadPPL (function (lambda(e1 e2)(<(car e1)(car e2)))))))
     ; Einfügepunkt Vertikal (WKS)
    (setq aadPV (mapcar '+ aad0H '(-35 0 0)))
     ; Einfügepunkt Horizontal (WKS)
    (setq aadPH (mapcar '+ (car(vl-sort aadPPL (function (lambda(e1 e2)(>(cadr e1)(cadr e2)))))) '(0 35 0)))
  )
)

 

Nach ausführen von AMAUTODIM+M hat man also das Objekt, unteren und linken Stützpunkt,

so wie den Absetzen-Punkt für die Hor/Vert Ordinaten.

Nun kannst du ein Menümakro schreiben:

AMAUTODIM <Objektwahl> ObjektwahlBeenden 0-Punkt Vertikal, 0-Punkt Horizontal, usw.

 

Beispielmakro was zusammen mit dem Codeschnipsel oben funktionieren soll:

^C^C^CAMAUTODIM+M;\AMAUTODIM;!aadObj1;;!aad0V;!aad0H;_v;!aadPV;;_h;!aadPH;;

 

- Sebastian -
Nachricht 8 von 12
karel.grygar.jr
als Antwort auf: cadffm

@cadffm ,

 

DU hast mir unglaublich viel gezeigt und geholfen, vielen Dank für die perfekte Einführung in das Thema. Ich gehe dein Lernbuch weiter studieren und versuche den Ball bis zum Tor zu kriegen 😊.

 

Wünsche Dir noch einen schönen Tag 

If this solution helped you solve the problem, click on "Accept as solution". Your Like is also welcome.

Karel Grygar
EQOS Energie Deutschland GmbH
Nachricht 9 von 12
cadffm
als Antwort auf: karel.grygar.jr

Mach das.

Wie hoffentlich mal erwähnt: Ich empfehle jedes Tor zur Seite zu schieben und

stumpf das Tutorial durchzuarbeiten. Sitzen Syntax und Funktionsweise,

dazu noch das Wissen wie man in der Hilfe[F1] Informationen bekommt,

dann kann man auch fremden Code lesen oder sich selbst weiterhelfen.

Eine Fehlermeldung wird verstanden und so der Fehler schnell gefunden&behoben.

 

PS: Wenn du keine Fehler im Tutorial gefunden hast, dann war es nicht gründlich genug ;D

Teste möglichst mit ACAD und nicht als MECH, nicht das die Layerverwaltung und Co unnötig dazwischen funkt.

 

 

So bewaffnet kann man dann recht flüssig "wirklich" starten, Konzept, Zeile für Zeile umsetzen und

bei Hindernissen findet man dann auch Lösungen.

Kopiert man nur wild einzelnen Brocken ist das nur ein wildes Gestolpere und man auf lange Probleme, nur weil die Basics nicht sitzen.

 

Reden wir in ein paar Monaten noch einmal darüber, bin gespannt.

 

 

- Sebastian -
Nachricht 10 von 12
karel.grygar.jr
als Antwort auf: cadffm

ich bin dran 😁

If this solution helped you solve the problem, click on "Accept as solution". Your Like is also welcome.

Karel Grygar
EQOS Energie Deutschland GmbH
Nachricht 11 von 12
karel.grygar.jr
als Antwort auf: cadffm

Hallo @cadffm ,

 

eine Sache ist komisch, falls ich beim Objektauswahl relativ nah zum Objekt heranzoome, werden beide Bemaßungen mit dem vordefinierten Abstand platziert, falls ich aber weit weg rauszoome, werden beide Bemaßungen mit dem Abstand 0mm ausgeführt. Womit hängt das zusammen?

If this solution helped you solve the problem, click on "Accept as solution". Your Like is also welcome.

Karel Grygar
EQOS Energie Deutschland GmbH
Nachricht 12 von 12
cadffm
als Antwort auf: karel.grygar.jr

Ich "sehe" es ja gerade nicht im Detail vor mir (nur du), aber bezogen auf das Makro oben:

 

ACHTUNG, ich habe jetzt nicht versucht zu prüfen wo du gedanklich bist und

wie es sich in diesem Fall verhält(Wo das beschriebene Problem ist), aber allgemein.. hilfts ggf. auch.

 

1. Darin findet kein Objektfang-Handling statt,


@ CADffm ,schrieb

Also, weder schön noch sonst etwas, aber es zeigt den prinzipiellen Weg und eine simple Umsetzung.

Es fehlen Prüfungen für die Objektwahl,

es fehlt ein Objektfang handling


Dein Makro sollte explizit den benötigten Objektfang aufrufen, bei Polylinien ohne Bögen also der ENDpunkt,

dieser Befehlsmodifizierer nennt sich im deutschen ENDPUNKT oder kurz und international: _end

Nachdem der Befehl nach einem Punkt fragt und bevor du die Koordinaten sendest, rufe _end auf.

Im Zweifelsfall muß man zuvor an die entsprechende Stelle Zoomen.

 

In der Standardeinstellung berücksicht AutoCAD den aktuell (evtl.) eingeschalteten Objektfang

und Objektfänge sind Ansichtsabhängig bei der Ausführung von Automatisierungen(Script/Makro/(send)command.

 

Falls man bei diesem Fall hier überhaupt keinen Objektfang benötigt(ungetestet), dann senden man einfach "kein" Objektfang,

oder auch _non

 

----

 

 

- Sebastian -

Sie finden nicht, was Sie suchen? Fragen Sie die Community oder teilen Sie Ihr Wissen mit anderen.

In Foren veröffentlichen