Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de (alle Foren)
  Lisp
  Einfügepunkt entspricht nicht immer den Koordinaten

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:  Einfügepunkt entspricht nicht immer den Koordinaten (1064 mal gelesen)
Archäologie Bubi
Mitglied
Archäologische Funddokumentation


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

Beiträge: 38
Registriert: 09.03.2021

erstellt am: 01. Jun. 2021 11:12    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


18_039_RMD_2021_05_18_Demo.dwg


Lisp-Makro_HPA.lsp

 
Hallo Zusammen

Ich habe für einen ehemaligen Arbeitskollegen von mir ein Makro für seinen neuen Betrieb geschrieben (für BricsCAD).
Dieses soll einen Block nach einer Messung im Feld einfügen und diesen mit der Höhe anschreiben. Soweit so gut.
Ich habe jetzt jedoch von ihm die Rückmeldung bekommen, dass die Blöcke nicht immer an der gemessenen Stelle eingefügt werden, die Beschriftung entspricht jedoch der Messung. Die falsch eingefügten Blöcke liegen immer genau auf anderen Objekten und müssten also mit Objektfang angehängt sein, aber die Systemvariable "OSNAPCOORD" ist auf "2" und sollte dies doch verhindern.
Ich selbst kann das Problem auch nach vielen Tests nicht selber rekonstruieren.

Code:

;;;-----------------------------------------------------------------------------------------------------------------------------------;;;
;;; Höhen einfügen
;;;-----------------------------------------------------------------------------------------------------------------------------------;;;
;;;  Befehl:    HPA
;;;  Zweck:      Einfügen belibig vieler Höhen mit Beschriftung für ElTheo
;;;  Funktionen: Runden von Zahlen auf die zweite Kommastelle
;;;              Einfügen von Blöcken (Höhen) und Beschriften
;;;              Ändern des Layers auf den Höhenlayer
;;;  Fehler:    Fehlermeldung bei Abbruch (ohne auswirkung, fehlender Errorhandler)
;;;  Autor:      Fabian Bubendorf / Archäologische Bodenforschung Basel-Stadt
;;;  Datum:      2021/Mai
;;;  Argumente:  Eingabe ohne Argumente
;;;  Variablen:  Number      --> Unterargument für die zu rundende Nummer
;;;              Multiple    --> Unterargument für den zu rundenden Wert
;;;              Block        --> Name des eingefügten Blocks
;;;              ActiveLayer  --> Automatische abfrage des aktiven Layer
;;;              BlockLayer  --> Name des gewünsten End-Layers
;;;              Point        --> Einfügepunkt
;;;              Heigth      --> Wert des Attributes
;;;  Code:

(defun c:HPA ( / )

  (defun Round (Number Multiple)
    (* Multiple (fix ((if (minusp Number) - +) (/ Number (float Multiple)) 0.5)))
  );end defun

  (setq Block      "HP_OHNE_SYMBOL"
        ActiveLayer (getvar "CLAYER")
        BlockLayer  "_TVN-_D---"
  );end setq
  (while
    (setq Point (getpoint "\nPunkt für Absolute Höhe messen:"))
      (setvar "CMDECHO" 0)
      (setq Heigth (rtos (Round (caddr Point) 0.01) 2 2))
        (if
          (/= (strlen Heigth) 6)
            (strcat Heigth "0")
        );end if
      (command "_.-INSERT"
              Block
              Point
              1
              1
              0
              Heigth
      );end command
      (setq LastInsert (ssget "_X" (list '(0 . "INSERT")(cons 2 Block)(cons 8 ActiveLayer))))
      (command "_.CHPROP"
              LastInsert
              ""
              "_LAYER"
              BlockLayer
              ""
      );end command
      (setvar "CMDECHO" 1)
  );end while
  (princ)
);end defun


Ich kenne mich nur Oberflächlich mit LISP aus und kann keinen derartigen Fehler im Code entdecken.
Habe ich etwas übersehen oder gibt es noch andere Möglichkeiten in Brics?

Im Anhang noch die Datei mit den abweichenden Blöcken (gelbe Linien).

Besten Dank im Voraus!

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

cadffm
Moderator
良い精神




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

Beiträge: 21533
Registriert: 03.06.2002

Alles

erstellt am: 01. Jun. 2021 11:19    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 Archäologie Bubi 10 Unities + Antwort hilfreich

>>" "OSNAPCOORD" ist auf "2" und sollte dies doch verhindern."
Haar-genau-NICHT! Nachzulesen in der Hilfe oder jeder anderen Erklärung dazu.

[F1] - Hilfe

CAD.de-FAQ


Alternativ könntest du ja einfach vor der Punktangabe den temporären Fang "KEIN" oder "_NONE" senden, dann interessiert osnapcoord nicht
weil deine Befehlsfolge eindeutig und ordentlich ist.

 

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

spider_dd
Mitglied



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

Beiträge: 1111
Registriert: 27.11.2003

Win 10Pro
Intel(R) Core(TM) i7-7700
NVIDIA Quadro P1000
ACAD, Civil-3D 2018

erstellt am: 01. Jun. 2021 11: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 Nur für Archäologie Bubi 10 Unities + Antwort hilfreich

...
oder merke Dir zum Anfang die aktuellen Objektfangeinstellungen und setze sie auf "keine"

Code:
  (setq sosmode (getvar "osmode"))
        (setvar "osmode" 0)

und setze sie zu Schluss wieder zurück

Code:
(setvar "osmode" sosmode)

Gruß
Thomas

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

Wolfgang Kirsch
Mitglied
Büroberater


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

Beiträge: 41
Registriert: 29.04.2002

erstellt am: 01. Jun. 2021 13:07    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 Archäologie Bubi 10 Unities + Antwort hilfreich

Globale und lokale Variablen

Hallo in die Schweiz,

noch ein (Schönheitsfehler), der manchmal böse Verwirrung stiften kann:
- Lisp kennt lokale und globale Variablen, die lokalen werden nur zur Laufzeit eines Programmes genutzt, die globalen bleiben auch nach Programmende noch im Speicher.

Deshalb ist es guter Stil, die Variablen zu lokalisieren.
Wie wird das gemacht:
ist ganz einfach, nach dem Namen des Programms , also bei defun c:HPA ( / ) ist das c:HPA ; das Klammernpaar mit dem Schrägstrich ( / ) beinhaltet Parameter und lokale Variablen.
Links vom Schrägstrich stehen Parameter, die dem Programmaufruf mit übergeben werden können, rechts davon dann die lokal gültigen Variablen.

Im Lisp-Editor können diese automatisch beim Prüfen aufgelistet werden, das Ergebnis des Prüflaufs lautete:

+ - ACTIVELAYER BLOCK BLOCKLAYER HEIGTH LASTINSERT POINT

Plus und Minus-Zeichen stehen eigentlich für Lisp-Operanden, deshalb spuckt die Prüfroutine die auch mit aus.

ActiveLayer als Variable braucht es eigentlich nicht, hier ginge auch ein
(cons 8 (getvar 'CLAYER)) statt dem (cons 8 ActiveLayer). Ist kein Fehler, spart aber eine Variable ein.

Das "setq LastInsert"-statement ist etwas verwirrend, denn statt der letzten eingefügten Blockreferenz (so würde ich den Namen der Variablen deuten) wird zeichnungsweit nach Blockreferenzen mit dem Namen "Block" auf dem aktuellen Layer gesucht. Aber das ist Geschmackssache.

Kurzum, der Programmaufruf mit lokalen Variablen sollte lauten:
(defun c:HPA ( / ACTIVELAYER BLOCK BLOCKLAYER HEIGTH LASTINSERT POINT ).....

ciao
Wolfgang Kirsch

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

Archäologie Bubi
Mitglied
Archäologische Funddokumentation


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

Beiträge: 38
Registriert: 09.03.2021

AutoCAD Map 3D 2013
AutoCAD Map 3D 2023
Faro AS-Built / TachyCAD
BricsCAD V18
Elcovision ElTheo
Agisoft Metashape Professional

erstellt am: 01. Jun. 2021 13:42    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

Vielen Dank für die Tipps!

Das mit "OSNAPCOORD" hab ich dann wohl falsch verstanden.
Von Autodesk Help:

Zitat:
Tastatureinträge setzen Objektfangeinstellungen, bis auf diejenigen in Skripten, außer Kraft.

Ich habe es so verstanden, dass wenn in Skripten explizit Objektfangeinstellungen definiert werden, nur dann diese gelten.

Ganz ausschalten werde ich sie aber nicht können, da sie für den Fall einer Codierten Messung noch mit OFang eingefügt werden können müssen.
Ich werde dann wohl anstatt dem "OSMODE" die "OSNAPCOORD" speichern und hin und her stellen. Dann sollte es ja auch wieder klappen.

Spannend finde ich hingegen, dass ich selbst den Fehler nie erzeugen konnte, obwohl auch wir mit "OSNAPCOORD" auf "2" arbeiten.


Auch danke für die Verschönerungstipps! Schönschreiben muss ich mir noch mehr einprügeln.

Besten Dank   

[Diese Nachricht wurde von Archäologie Bubi am 01. Jun. 2021 editiert.]

[Diese Nachricht wurde von Archäologie Bubi am 01. Jun. 2021 editiert.]

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

cadffm
Moderator
良い精神




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

Beiträge: 21533
Registriert: 03.06.2002

Alles

erstellt am: 01. Jun. 2021 13:54    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 Archäologie Bubi 10 Unities + Antwort hilfreich

>"bis auf diejenigen in Skripten, außer Kraft."
...setzt die fortlaufenden Objektfänger außer Kraft, außer für automatisierte Prozesse [Skripte, MenüMakros, (send-)commands]

>"Spannend finde ich hingegen, dass ich selbst den Fehler nie erzeugen konnte, obwohl auch wir mit "OSNAPCOORD" auf "2" arbeiten."
Dann war wohl deine aktuelle Ansicht eine andere oder dein Fangbereich war anders oder deine eingestellten Objektfänge,
(Objektwahl Fenster/polygon und Kreuzen/polygon in AutoCAD sind ansichtsabhängig)

[EDITIERT - ich kam durcheinander mit Objektfang<>Objektwahl]

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

Archäologie Bubi
Mitglied
Archäologische Funddokumentation


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

Beiträge: 38
Registriert: 09.03.2021

erstellt am: 02. Jun. 2021 09:58    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

Hier nochmals die überarbeitete Version vom Code.

Code:

;;;-----------------------------------------------------------------------------------------------------------------------------------;;;
;;; Höhen einfügen
;;;-----------------------------------------------------------------------------------------------------------------------------------;;;
;;;  Befehl:     HPA
;;;  Zweck:      Einfügen belibig vieler Höhen mit Beschriftung für ElTheo
;;;  Funktionen: Runden von Zahlen auf die zweite Kommastelle
;;;              Einfügen von Blöcken (Höhen) und Beschriften
;;;              Ändern des Layers auf den Höhenlayer
;;;  Fehler:     Fehlermeldung bei Abbruch (ohne auswirkung, fehlender Errorhandler)
;;;  Autor:      Fabian Bubendorf / Archäologische Bodenforschung Basel-Stadt
;;;  Datum:      2021/Mai
;;;  Argumente:  Eingabe ohne Argumente
;;;  Variablen:  Number       --> Unterargument für die zu rundende Nummer
;;;              Multiple     --> Unterargument für den zu rundenden Wert
;;;              Block        --> Name des eingefügten Blocks
;;;              BlockLayer   --> Name des gewünsten End-Layers
;;;              MyOSNAPCOOD  --> Abfrage der "OSNAPCOORD" einstellung beim start
;;;              Point        --> Einfügepunkt
;;;              Heigth       --> Wert des Attributes
;;;              BlockInserts --> Auswahlsatz aller eingefügten "Block" auf "BlockLayer"
;;;  Code:

(defun c:HPA ( / Block BlockLayer MyOSNAPCOORD Point Heigth BlockInserts )

  (defun Round (Number Multiple)
    (* Multiple (fix ((if (minusp Number) - +) (/ Number (float Multiple)) 0.5)))
  );end defun

  (setq Block        "HP_OHNE_SYMBOL"
        BlockLayer   "_TVN-_D---"
        MyOSNAPCOORD (getvar "OSNAPCOORD)
  );end setq
  (while
    (setq Point (getpoint "\nPunkt für Absolute Höhe messen:"))
      (setvar "CMDECHO" 0)
      (setvar "OSNAPCOORD" 1)
      (setq Heigth (rtos (Round (caddr Point) 0.01) 2 2))
        (if
          (/= (strlen Heigth) 6)
            (strcat Heigth "0")
        );end if
      (command "_.-INSERT"
               Block
               Point
               1
               1
               0
               Heigth
      );end command
      (setq BlockInserts (ssget "_X" (list '(0 . "INSERT")(cons 2 Block)(cons 8 (getvar "CLAYER")))))
      (command "_.CHPROP"
               BlockInserts
               ""
               "_LAYER"
               BlockLayer
               ""
      );end command
      (setvar "OSNAPCOORD" MyOSNAPCOORD)
      (setvar "CMDECHO" 1)
  );end while
  (princ)
);end defun

;;;-----------------------------------------------------------------------------------------------------------------------------------;;;


Da ich den Fehler aber nicht selber rekonstruieren kann und es mein Kollege erst im Feld testen muss, garantiere ich mal noch für nichts.

Vielen Dank für Tipps.

Schönen Tag
Bubi

[Diese Nachricht wurde von Archäologie Bubi am 03. Jun. 2021 editiert.]

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

cadffm
Moderator
良い精神




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

Beiträge: 21533
Registriert: 03.06.2002

Alles

erstellt am: 02. Jun. 2021 13:53    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 Archäologie Bubi 10 Unities + Antwort hilfreich

Hallo Bubi,

ich habe mir die DWG und das Lisp nun einmal angesehen (mehr haben wir nicht bekommen).

1. Alles was hier im Thread steht ist gut und richtig, ABER ich denke es hat nichts mit dem Problem zutun!
   Dennoch. Du nutzt einen AutoCAD-Befehl (insert) und daher ist es richtig sich um den Objektfang zu kümmern,
   es ist also nicht alles unnötig gewesen.

2. Der Code fragt ja jeden Punkt durch den Benutzer einzeln ab,
also wird bei der Punktabfragt und dem Einfügepunkt angeben die
selbe Einstellung verwendet (ansonsten wüßte es der Anwender   )

Der User wählt den Zielpunkt(Punkt für Absolute Höhe messen  doch mit der Maus, oder?

3. Dann die Beispiele in der DWG, die Lage und Werte passen
   generell nicht zu einem "Objektfangproblem" und wenn ich dann
   noch deinen Code berücksichtige..

   Ich lehne mich mal weit aus dem Fenster (gerne auch zu weit, Hauptsache es hilft womöglich).
   Behauptung: Diese Abweichung ist nicht mit deinem Code entstanden,
   zumindest nicht wenn der Einfügepunkt durch den Nutzer mit der Maus angegeben wurde.
   Völlig UNMÖGLICH!
   Und jetzt widerlegt meine These.


BTW: Dein Code kümmert sich auch nicht um ATTREQ, nicht um ATTDIA,
und wenn ich es jetzt richtig verstanden habe, dann wird eigentlich
für diese Anwendung(dein Code) ausschließelich der Objektfang PUNKT benötigt
und dann stellst sich mir die Frage:

Warum nicht einfach den PUNKTfang mit in den Command aufnehmen -> alle Objektfangsorgen los,
besonders vereinfacht es das ganze für den Anwender da die irrelevanten Fänge nicht nerven.

Dann aber frage ich mich auch was der Satz bedeutet:
"Ganz ausschalten werde ich sie aber nicht können, da sie für den Fall einer Codierten Messung noch mit OFang eingefügt werden können müssen."
Denn der User braucht ja den Objektfang(Punkt), also ist das schon generell ausgeschlossen die Objektfänge auszuschalten.

Und was bedeutet "da sie für den Fall einer Codierten Messung noch mit OFang eingefügt werden können müssen." ?
Dein Programm zeigt keinerlei Optionen, daher bin ich da wohl etwas verwirrt in dem Fall.

-

Wenn du (command "_.CHPROP" schon in der While-schleife hast,
dann nimm doch als Objektwahl einfach _last / letztes
und ändere nicht immer alle Blockreferenzen.

und
"        (if
          (/= (strlen Heigth) 6)
            (strcat Heigth "0")
        );end if"

Ist auch völlig ohne Funktion - abgesehen von DIMZIN was auch nicht behandelt wird im Code.

Und was ist wenn der Punkt auf 1.5 liegt oder auf 1000.12 ?
Aber das sind nur Kleinigkeiten und haben nichts mit dem Problem zutun.

Noch etwas ganz anderes:
Die Datei ist in einem modernen DWG Format gespeichert,
also ist die Verwendung von Schriftfeldern wohl zulässig in dem Prozess
und dann frage ich mich sofort: Warum schreibt ihr denn "dumme Text" in die Attribute?
Ein Schriftfeld würde zumindest immer den richtigen Wert (der Blockreferenz= anzeigen.

Einzige Vorteil der "dummer Text" Methode: Man könnte Fehler/Manipulationen ausfindig machen, also
Z ungleich Attributwert(gerundet)


--

Sicher das der User das Programm startet und per Hand(Maus) die Punkte mit dem Punkt-Objektfang wählt?
Zur Zeit sehe ich da echt keine Variante wie das Problem bei den CAD Daten und dem Code zustandekommen sollten.
<Ich lege meiner Kenntnis und Aussage AutoCAD zugrunde, mit evtl. vorhandenen BricsCAD spezifischen Abweichungen kenne ich mich nicht aus>

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

Archäologie Bubi
Mitglied
Archäologische Funddokumentation


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

Beiträge: 38
Registriert: 09.03.2021

erstellt am: 03. Jun. 2021 08:58    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 Cadffm

Um mehr auf die Umstände unserer Arbeit einzugehen:

Wie auch ich, ist mein Kollege für die Archäologische Felddokumentation zuständig.
Wir stehen also irgendwo auf einer Grabung und sind mit einem Tachymeter und einem Laptop bewaffnet.

In den meisten Fällen sind der Laptop und der Tachymeter direkt miteinander verbunden (in diesem Fall über BricsCAD und ElTheo als Verbindungssoftware).

In diesem Fall werden die Befehle (egal ob simple Linien oder sonstiges wie zB. hier HPA) über CAD gestartet und sämtliche Einfügepunkte mit dem Tachymeter als Koordinaten eingemessen und über ElTheo an Brics weitergegeben.
Der User gibt in diesem Fall also nie etwas mit der Maus ein.
Wenn nur mit dem Tachymeter und ohne Laptop gearbeitet wird (Codiert), dann ist das Ergebnis später im Büro nur eingemessene Punkte, an die man dann Händisch die entsprechenden Objekte anfügt.
Diese Punkte (Messpunkte) werden auch von ElTheo automatisch erstellt wenn mit dem Laptop gemessen wird. Dadurch kann man Fehler/Abweichungen rekonstruieren.

Zu deinen Punkten:

Ich habe beim Problem auf den OFang getippt, weil alle falsch eingefügten Blöcke an einem anderen Objekt hängen. Wie gross die Radien für den OFang sind und wann er wo greift weiss ich leider nicht genau. Vor allem da man diese Werte (glaube ich) auch verstellen kann.
Dass ich beim Manuellen einfügen nur den Punktfang brauche stimmt zwar schon, aber bei den Messungen darf natürlich keiner gelten.

Sind ATTREQ und ATTIDA überhaupt noch von Bedeutung wenn INSERT als -INSERT aufgerufen wird und alle Eingaben im Makro gehandelt werden?

Bei "CHPROP" hatte ich zuerst auch mit "_LAST" gearbeitet, aber da ich (wie oben schon erwähnt) vom Programm automatisch noch Messpunkte generiert bekomme, zählen diese als letzte Objekte.

Frage: Könnte ich bei SSGET anstatt "_X" auch "_L" nehmen und so nur den zuletzt eingefügten Block abgreifen?

Das mit IF Heigth ist leider auch nur eine Bastellösung die noch Fehleranfällig ist. Die Höhe im Attribut muss schlussendlich immer auf zwei Stellen nach dem Komma geschrieben werden.
Zur zeit arbeiten sie bei etwa 750 m.ü.M und da läuft es noch. Sobald das Programm soweit stabil läuft werde ich das auch noch angehen, Hauptsache sie können nun schonmal arbeiten.
(Tipps und Vorschläge gerne gesehen   )

Zu den Schriftfeldern: Ja, das war eine Provisorische Übergangslösung mit der wir experimentiert haben.
Das grosse Problem hier ist der Ursprung des Blocks. Es ist ein Standard Block einer anderen Vermessungssoftware die noch immer im Betrieb benutzt wird und kann dort nicht geändert werden.
Eine zweispurige Nutzung von Vermessungssoftware ist schon schwierig, eine weitere in den Zeichnungen wollen wir vermeiden. Deshalb der umständliche Weg.

Ich hoffe, dass ich die Abläufe einigermassen verständlich machen konnte.

Vielen Dank!

[Diese Nachricht wurde von Archäologie Bubi am 03. Jun. 2021 editiert.]

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