| | | Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für Autodesk Produkte |
Autor
|
Thema: Scriptdatei Blockeinfügen, was ist falsch ? (4238 mal gelesen)
|
khugel Mitglied Technischer Zeichner
Beiträge: 95 Registriert: 11.08.2005 System: Intel Core i7 3770, CPU 3,4 Ghz, 16 Gbyt RAM ,NVIDIA Geforce Quadro 600 Autocad LT 2014,Visio 2007, Office 2010, Windows 7,64bit
|
erstellt am: 26. Nov. 2009 11:26 <-- editieren / zitieren --> Unities abgeben:
Hallo zusammen, ich hab gerade damit begonnen für mein AutoCad LT 2009 scripte zu schreiben. Ein script zum öffnen einer zeichnungsdatei läuft bereits, ist ja auch noch rewcht einfach. Aber jetzt hab ich folgendes Probiert: Ich möchte einen Block einfügen. Dabei soll der Skalierfaktor auf 1 und der Drehwinkel immer auf 0 Grad bleiben. Mein Scriptext in der Scriptdatei lautet bei mir wie folgt: ;Einfügepunkt erster Beschriftungstext _insert Kasten.dwg Einfügepunkt angeben oder [Basispunkt/Faktor/Drehen]: X-Skalierfaktor eingeben*<1>:mführausr Drehwinkel angeben*<0>:mführausr Das ich den Einfügepunkt ist mir ja noch klar, aber warum übernimmt mir das Script nicht den Skalierfaktor mit 1 und den Drehwinkel mit 0 Grad ? Was ist falsch an meinem Script ? Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Dig15 Ehrenmitglied V.I.P. h.c. Dipl.-Ing. für Markscheidewesen und Geodäsie
Beiträge: 5833 Registriert: 27.02.2003 DWG TrueView 2014
|
erstellt am: 26. Nov. 2009 11:39 <-- editieren / zitieren --> Unities abgeben: Nur für khugel
Wie sieht denn Dein Script aus? Das im Beitrag ist ja nur die Textfensterausgabe. Ich habe ein ähnliches Script und das sieht so aus: -einfüge C:\Pfad\Block.dxf 0,0,0 1 1 0------------------ Viele Grüße Lutz Glück Auf! Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
khugel Mitglied Technischer Zeichner
Beiträge: 95 Registriert: 11.08.2005 System: Intel Core i7 3770, CPU 3,4 Ghz, 16 Gbyt RAM ,NVIDIA Geforce Quadro 600 Autocad LT 2014,Visio 2007, Office 2010, Windows 7,64bit
|
erstellt am: 26. Nov. 2009 11:57 <-- editieren / zitieren --> Unities abgeben:
|
cadffm Moderator 良い精神
Beiträge: 21533 Registriert: 03.06.2002 System: F1 und Google
|
erstellt am: 26. Nov. 2009 12:05 <-- editieren / zitieren --> Unities abgeben: Nur für khugel
Nochmal ganz deutlich: Wir brauchen deine Scriptdatei ! Oder du suchst selbst den "Fehler" = gehe das Script Schritt für Schritt per Hand durch, dann siehst du was Acad will (befehlszeile/Textfenster[F2]) und was dein Script ihm in dem Moment gibt ! PS: ich tippe auf ein Leerzeichen im Pfad oder Dateiname - dann müßte die Angabe der Datei in Anführungszeichen gesetzt werden imho. ------------------ die alte SUCHfunktion.. - System-Angaben - User:FAQ(Adesk)
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
khugel Mitglied Technischer Zeichner
Beiträge: 95 Registriert: 11.08.2005 System: Intel Core i7 3770, CPU 3,4 Ghz, 16 Gbyt RAM ,NVIDIA Geforce Quadro 600 Autocad LT 2014,Visio 2007, Office 2010, Windows 7,64bit
|
erstellt am: 26. Nov. 2009 12:25 <-- editieren / zitieren --> Unities abgeben:
|
cadffm Moderator 良い精神
Beiträge: 21533 Registriert: 03.06.2002 System: F1 und Google
|
erstellt am: 26. Nov. 2009 12:30 <-- editieren / zitieren --> Unities abgeben: Nur für khugel
ok, das ist dein 1.Versuch der zeigt das du noch garnichts von Scripten weißt 1. Das Script (das ist der komplette Scripteintrag !) ist richtig ! Also kopiere es und passe die DWG-Eingabe an, speichern,fertig 2. Scripte lassen keine Benutzeringaben zu, wenn du also vorhast den Einfügepunkt "per Maus oder Tastatur selbst anzugeben" : NoChance ! Nachfolgendes Script funktioniert WENN: Datei im Supportpfad liegt(oder dem aktuellen Pfad) und keine Attribute hat (oder ATTREQ=AUS geschaltet ist) und: "einheitlich skalieren" darf für die(Block)DWG nicht aktiviert sein, bzw, dann müßte eine "1" aus dem Script raus. ;---script -EINFÜGE KASTEN.dwG 0,0,0 1 1 0 ------------------ die alte SUCHfunktion.. - System-Angaben - User:FAQ(Adesk) Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
CADmium Ehrenmitglied V.I.P. h.c. Maschinenbaukonstrukteur
Beiträge: 13508 Registriert: 30.11.2003 .
|
erstellt am: 26. Nov. 2009 12:32 <-- editieren / zitieren --> Unities abgeben: Nur für khugel
|
mourixin Mitglied Student
Beiträge: 8 Registriert: 04.01.2010
|
erstellt am: 04. Jan. 2010 19:44 <-- editieren / zitieren --> Unities abgeben: Nur für khugel
Hallo khugel, ist deine Frage denn mittlerweile beantwortet (ist ja schon über einen Monat her)? Mein Skript sieht folgendermaßen aus: _insert (oder alternativ -einfüge) für CAD-Befehl Blockname (hier schreibe ich nicht .dwg, sondern einfach nur den Blocknamen, den ich bei der Blockdefinition vergeben habe) 10,10 (Lagekoordinaten [X,Y] des Einfügepunktes) 1 (Skalierfaktor X [?]) 1 (Skalierfaktor Y [?]) 0 (Drehung) Ich weiß, dass es bei mir mit 1,1,0 immer klappt, aber ich bin mir nicht sicher, ob meine Erklärung stimmt. Es könnte auch sein, dass die zweite 1 für die Blockeinheit steht. Worauf du noch achten solltest: hinter dem jeweiligen Befehl oder Eingabewert darf kein Leerzeichen stehen. Das liest ACAD ja wie eine Eingabe. Dieses Problem habe ich ab und zu, wenn ich Koordinaten mit verschiedenen Vorkommastellen habe. Wenn ich nicht aufpasse, bekomme ich gleich eine Fehlermeldung. Wie viele Blöcke willst du denn hintereinander einfügen? Ich arbeite mit ACAD-Map. Es kann also sein, dass du in ACAD LT wirklich zu dem Blocknamen noch das .dwg hinzufügen musst. Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
mourixin Mitglied Student
Beiträge: 8 Registriert: 04.01.2010
|
erstellt am: 04. Jan. 2010 20:09 <-- editieren / zitieren --> Unities abgeben: Nur für khugel
Ich hab' grad noch mal einen Versuch ohne "1 1 0" gestartet, sondern nur mit "1" und "0". Funktioniert genauso. Wenn ich die ACAD-Hilfe richtig interpretiere, dann wird, wenn man nur eine 1 verwendet, die Skalierung vom Einfügepunkt aus berechnet. Aber ob´s stimmt?? Die ACAD-Hilfen sind manchmal nicht so hilfreich oder produzieren ihrerseits zu der eigenen Frage noch fünf weitere. Also zusammenfassend: -einfüge Block 10,10 1 0 ... und die Leerzeichen nicht vergessen wegzumachen. Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
cadffm Moderator 良い精神
Beiträge: 21533 Registriert: 03.06.2002 System: F1 und Google
|
erstellt am: 04. Jan. 2010 22:40 <-- editieren / zitieren --> Unities abgeben: Nur für khugel
Hallo mourixin wüßte ich auch gerne was daraus wurde.. khugel abgesehen davon das die Befehlszeilenversion ganz deutlich macht nach welchem Wert (wann) Acad verlangt so ist die Frage ob mit oder ohne ".dwg" oder sogar Block=Dateiname.dwg einzig vom User zu entscheiden, die Helfer hier haben dabei den Versuch des Fragenden versucht zu integrieren/interpretieren - diese drei Möglichkeiten dazu sind in der Hilfe sehr gut dokumentiert (Hilfe: Befehlszeilenversion Einfüge). Ob man dem Dateinamen dann noch einen Pfad voranstellt oder nicht ist abhängig davon ob man die Datei immer vom gleichen Platz mit festem Pfad als Block einlesen möchte oder ob die Datei (flexibel) über die Supportpfade gesucht werden soll. Zitat: Original erstellt von mourixin: Ich hab' grad noch mal einen Versuch ohne "1 1 0" gestartet, sondern nur mit "1" und "0". Funktioniert genauso. -> Funktioniert NICHT "genauso" ! Dein letztes Script sollte (wenn das vorherige funktionierte) in einen Fehler laufen bzw. das Script nicht beendet werden: [Acad-Meldung: Wert muss ungleich Null sein. ] (beides ist zwar Möglich, je nach Situation und Version. Funktionieren tut dann aber immer nur eine der Varianten)Wenn ich die ACAD-Hilfe richtig interpretiere, dann wird, wenn man nur eine 1 verwendet, die Skalierung vom Einfügepunkt aus berechnet. Aber ob´s stimmt?? ->Nicht wirklich, die Hilfe ist sehr gut in diesem Fall, schau einfach nochmal nach. "21,55"(Einfügepunkt) bis "1"(aus deinem Script) wäre ja auch keine schlüssige Angabe als Skalierfaktor ;) Die Option XYZ verlangt nur einen skal.Wert, die Option ECKE eine Koordinate - aber du rufst ja keine der Optionen auf im Script. Was funktionieren würde wäre das einfache bestätigen, dann würde der voran eingegebene X-skal.Wert genutzt, dafür würde das Script aber noch ein "Enter" mehr benötigen(zwischen der 1 und der 0). Die ACAD-Hilfen sind manchmal nicht so hilfreich oder produzieren ihrerseits zu der eigenen Frage noch fünf weitere. ->"Nicht so hilfreich" : kommt natürlich vor - anderseits ist sie aber auch sehr gut im Vergleich mit anderen Programmen Falls aus der Information aus der Hilfe 5 weitere Fragen produziert werden, so ist das ja kein Indiz für die Qualität der Hilfe ;)
------------------ die alte SUCHfunktion.. - System-Angaben - User:FAQ(Adesk) Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
mourixin Mitglied Student
Beiträge: 8 Registriert: 04.01.2010
|
erstellt am: 05. Jan. 2010 23:03 <-- editieren / zitieren --> Unities abgeben: Nur für khugel
Bei mir funktionieren beide Versionen ohne Fehlermeldung. Komisch... Ich will natürlich in meiner Arbeit, die ich gerade schreibe (zu der ich auch ein Skript verwendet) auch die richtige Erklärung schreiben. Bis gerade eben war ich davon ausgegangen, dass die Erklärung auch richtig ist. Danke für die Hinweise! Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
cadffm Moderator 良い精神
Beiträge: 21533 Registriert: 03.06.2002 System: F1 und Google
|
erstellt am: 06. Jan. 2010 09:15 <-- editieren / zitieren --> Unities abgeben: Nur für khugel
na dann füge deinem Script doch nochmal eine Zeile hinzu, zB. nach der Blockeinfüge-Aktion noch ein "REGEN" oder ähnliches hinzu: Version1: -einfüge Block 10,10 1 0 REGEN oder auch Version2: -einfüge Block 10,10 1 1 0 REGEN laufen immernoch beide Versionen bei dir ? PS: Zudem muß man zwingend die Attribute-Möglichkeiten in einem Sript handeln, zumindest sobald es sich nicht immer um den gleichen Block ohne Attribute handelt. (ATTREQ ATTDIA und/oder die Attributewerte) <<Aber danke auch: der Thread animiert mich mal wieder die FAQ zum Thema Makro&Script zu erweitern >> ------------------ die alte SUCHfunktion.. - System-Angaben - User:FAQ(Adesk) Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
mourixin Mitglied Student
Beiträge: 8 Registriert: 04.01.2010
|
erstellt am: 06. Jan. 2010 18:44 <-- editieren / zitieren --> Unities abgeben: Nur für khugel
Hmm. Folgendes finde ich nun schon komisch: Nun, da mein Skript nur aus "1,0,Attribut" besteht, kann ich das andere Skript mit "1,1,0,Attribut" nicht mehr einlesen. Das hat aber vorher sicher funktioniert. Als ich in eine neu erstellte Datei das "1,1,0"-Skript eingelesen habe, wurde dieses ausgefürt. Nun habe ich es ja auf "1,0" umgestellt und das "alte" Skript funktioniert nicht mehr. Am Wichtigsten ist mir ja nun erstmal, dass ich meine Punkte richtig in der Datei habe. Dennoch finde ich es auch sehr interessant zu erfahren, welche Feinheiten in einem Skript beachtet werden müssen. Bin ich eigentlich die einzige, die das Problem mit der aktivierten Fang-Funktion und dem Einlesen von Blöcken habe? Wenn ich den Objektfang aktiviert habe, dann kann es vorkommen, dass die Punkte nicht an der im Skript angegebenen Koordinate landen, sondern z. B. im Mittelpunkt des zuvor eingelesenen Blocks. Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
cadffm Moderator 良い精神
Beiträge: 21533 Registriert: 03.06.2002 System: F1 und Google
|
erstellt am: 06. Jan. 2010 21:40 <-- editieren / zitieren --> Unities abgeben: Nur für khugel
Nur weil dir der Fehler bei einem der beiden Versionen vorher nicht aufgefallen ist bedeutet es ja nicht automatisch das beide (gleich) funktionierten das war nämlich sicher nicht der Fall, zumindest nicht bei der gleichen Blockdefinition. Objektfang: Du bist nicht der einzigste, aber die Anwenderzahl die Script (oder Makros oder auch sendcommand-Anweisungen in Programmen) einsetzen ist ja schonmal sehr gering, von diesen Wenigen bist du einer der Wenigen die einen Zusammenhang des Problems mit dem OFang hergestellt haben
Auch zu diesem Thema hat der User FAQ einen Beitrag verfasst => KLICK! ------------------ die alte SUCHfunktion.. - System-Angaben - User:FAQ(Adesk) Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
| Anzeige.:
Anzeige: (Infos zum Werbeplatz >>)
|