Hot News aus dem CAD.de-Newsletter:

Mit Unterstützung durch:

  Foren auf CAD.de (alle Foren)
  Lisp
  Maßstab erzeugen

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
Autor Thema:   Maßstab erzeugen (2003 mal gelesen)
Danillo
Mitglied
Bauingenieur


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

Beiträge: 216
Registriert: 12.11.2003

Windows 7 - AutoCAD 2015

erstellt am: 21. Apr. 2013 14:59    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 Leute,
kann mir jemand verraten, wie ich über Lisp einen Maßstab (Cannoscale) erzeugen kann. Das Problem rührt daher, dass ich bisher eine Benutzereingabe hatte, über welche der Maßstab inkl. Maßeinheit festgelegt wurde. Nachdem jetzt (?) in AutoCAD die annotativen Stile vorhanden sind, welche in Abhängigkeit von Cannoscale erzeugt werden, würde ich gerne meine bisherige Abfrage gleich lassen und einen entsprechenden Scale erzeugen und aktuell setzen. Vor dem Erzeugen muss man wahrscheinlich abchecken, dass der Maßstab noch nicht vorhanden ist. Habe es mit Tablesearch probiert, aber das führt nicht ans Ziel...

Danke für die Hilfe und Grüße
Daniel

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

CAD-Huebner
Ehrenmitglied V.I.P. h.c.
Verm.- Ing., ATC-Trainer



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

Beiträge: 9554
Registriert: 01.12.2003

One AutoCAD 2.5 - 2020, Civil 3D, Win10

erstellt am: 21. Apr. 2013 16:22    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 Danillo 10 Unities + Antwort hilfreich

Zitat:
Original erstellt von Danillo:
...wie ich über Lisp einen Maßstab (Cannoscale) erzeugen kann....


Eine einfache Methode wäre über den passenden Command-Aufruf, also
(command "_-SCALELISTEDIT" "_Add" "1:75" "1:75" "_exit")

Sollte der Maßstab schon existieren, kannst du die Meldung z.B. durch setzen von EXPERT unterdrücken.

------------------
Mit freundlichem Gruß

Udo Hübner
www.CAD-Huebner.de

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

Danillo
Mitglied
Bauingenieur


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

Beiträge: 216
Registriert: 12.11.2003

Windows 7 - AutoCAD 2015

erstellt am: 21. Apr. 2013 16:36    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 Udo,
an diese Lösung habe ich auch schon gedacht, aber ohne Command wäre es toller.

Danke trotzdem für die Antwort.
Grüße
Daniel

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

CADmium
Moderator
Maschinenbaukonstrukteur




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

Beiträge: 13435
Registriert: 30.11.2003

.

erstellt am: 21. Apr. 2013 20:47    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 Danillo 10 Unities + Antwort hilfreich

mal ein Schubs für die Richtung:

(defun SCALE-ADD(NAME PAPERUNIT DRAWINGUNIT / DICT SCALE)
  (if(>=(atof (substr (getvar "acadver") 1 4)) 17.1)
    (if(setq DICT(dictsearch (namedobjdict) "ACAD_SCALELIST"))
      (if(and(=(type NAME)'STR)             
            (numberp  PAPERUNIT)
            (numberp DRAWINGUNIT)
            (> PAPERUNIT  0)
            (> DRAWINGUNIT 0)
        )
        (cond
          ;
          ('T           
            (if(and(not(vl-catch-all-error-p
                        (setq SCALE
                          (vl-catch-all-apply
                            'entmakex
                            (list
                              (list
                                (cons  0      "SCALE")
                                (cons 100  "AcDbScale")
                                (cons  70            0)
                                (cons 300        NAME)
                                (cons 140    PAPERUNIT)
                                (cons 141  DRAWINGUNIT)
                                (cons 290            0)
                              )
                            )
                          )
                        )
                      )
                  )
                  (not(vl-catch-all-error-p
                        (vl-catch-all-apply
                          'dictadd
                          (list (cdr(assoc -1 DICT)) "*" SCALE)
                        )
                      )
                  )                     
              )
              SCALE
            )
          )
        ) 
      )
    ) 
  )
)

Aufruf:
(SCALE-ADD "1:3" 1.0 3.0)

------------------
Also ich finde Unities gut ... und andere sicher auch
---------------------------------------
  - Thomas -          
"Bei 99% aller Probleme ist die umfassende Beschreibung des Problems bereits mehr als die Hälfte der Lösung desselben."

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

Danillo
Mitglied
Bauingenieur


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

Beiträge: 216
Registriert: 12.11.2003

Windows 7 - AutoCAD 2015

erstellt am: 23. Apr. 2013 00:46    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

Danke für deine Hilfe. Hatte gehofft, dass es ein bisschen weniger komplex abläuft. Danke trotzdem.

Grüße
Daniel

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

Danillo
Mitglied
Bauingenieur


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

Beiträge: 216
Registriert: 12.11.2003

Windows 7 - AutoCAD 2015

erstellt am: 24. Apr. 2013 00:10    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 Leute,
habe mir die 2 Vorschläge nun genauer angeschaut. Ich stelle mir den Ablauf so vor, dass ich zuerst prüfe, ob ein gewisser Maßstab vorhanden ist, falls ja setzte ich ihn aktuell, falls nein erzeuge ich ihn.
Habe gehofft, dass es dafür einen ähnlichen Befehl wie Make bei der Layersteuerung gibt, d.h. falls vorhaden wird der gewünschte Maßstab aktuell gesetzt, falls nicht wird er erzeugt und dann aktuell gesetzt.
Der von Cadmium vorgeschlagene Code funktioniert ja recht gut, aber leieder wird bei gleicher Eingabe immer wieder ein neuer Maßstab erzeugt.

Letzte Frage: wie kann ich abchecken, ob es einen gewissen Maßstab schon gibt?

Danke und Grüße
Daniel

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

CADmium
Moderator
Maschinenbaukonstrukteur




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

Beiträge: 13435
Registriert: 30.11.2003

.

erstellt am: 24. Apr. 2013 07: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 Danillo 10 Unities + Antwort hilfreich

na klar .... geht das ( dafür stand das ; beim cond ) ...

hangel dich doch einfach mal durch die Objekte:
das Dictionary hast du mit
(setq DICT(dictsearch (namedobjdict) "ACAD_SCALELIST"))
dann (entget DICT) .... da werden dir in den 330 GC neue Objekte geliefert ... die auch mal mit entget untersuchen ...

Klar könnte ich dir wieder den kompletten Code posten, aber dann würde ich a) deine Arbeit machen ( für die du (hoffentlich) bezahlt wirst)   und b) würdest du nicht so viel lernen als beim Selber tun  


------------------
Also ich finde Unities gut ... und andere sicher auch
---------------------------------------
  - Thomas -          
"Bei 99% aller Probleme ist die umfassende Beschreibung des Problems bereits mehr als die Hälfte der Lösung desselben."

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

Danillo
Mitglied
Bauingenieur


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

Beiträge: 216
Registriert: 12.11.2003

Windows 7 - AutoCAD 2015

erstellt am: 24. Apr. 2013 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

Hallo Thomas,
du hast natürlich recht, dass es um das Verstehen und selbermachen geht (arbeite übrigens ohne direkte Bezahlung fürs Lispeln). Deshalb möchte ich auch keinen fertigen Code, sondern nur Denkanstöße. Der obige Denkanstoß war nur ein bisschen groß, ich muss mir den Code erst in mundgerechte Happen aufteilen...

Neu ist für mich: dictsearch, entmakex
Habe bisher immer mit Tablesearch gearbeitet und selten mit entmake gearbeitet. Wird schon werden...

Danke für deine Hilfe und gute Arbeit
Daniel

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

Danillo
Mitglied
Bauingenieur


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

Beiträge: 216
Registriert: 12.11.2003

Windows 7 - AutoCAD 2015

erstellt am: 25. Apr. 2013 14:11    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 Thomas,
muss dich nochmals belästigen: habe das mit dem Weiterhangeln ausprobiert, aber irgendwie nicht hinbekommen. Habe keine Ahnung, wo und wie ich es anfangen soll? Auch ein Schlagwort, um nachzulesen fehlt mir...

Grüße
Daniel

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

CADmium
Moderator
Maschinenbaukonstrukteur




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

Beiträge: 13435
Registriert: 30.11.2003

.

erstellt am: 25. Apr. 2013 14:27    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 Danillo 10 Unities + Antwort hilfreich

na ok .. spendiere ich dir noch eine Funktion , obwohl mir so das Forum langsam zu einseitig wird ... ( wie kann ich eigentlich deine Eigeninitiative überprüfen ?   )


(defun SCALE-GETALL(/ DICT DICTNAME DICTOBJ DATA NAME PAPERUNIT DRAWINGUNIT LISTE)
  (if(setq DICT(dictsearch (namedobjdict) "ACAD_SCALELIST"))
    (while (setq DICT (member(assoc 3 DICT)DICT))
      (if(and(setq DICTNAME (cdr(car DICT)))
             (setq DICTOBJ  (cadr DICT))
             (= 350 (car DICTOBJ))
             (=(type(setq DICTOBJ(cdr DICTOBJ)))'ENAME)
             (setq DATA(entget DICTOBJ))
             (setq NAME       (cdr(assoc 300 DATA)))
             (setq NAME              (strcase NAME))
             (setq PAPERUNIT  (cdr(assoc 140 DATA)))            
             (setq DRAWINGUNIT(cdr(assoc 141 DATA)))
         )
        (progn
          (if(and(numberp PAPERUNIT)
                 (numberp DRAWINGUNIT)
                 (< 0 PAPERUNIT)
                 (< 0 DRAWINGUNIT)
             )   
            (setq FAKTOR (/ PAPERUNIT DRAWINGUNIT 1.0))
          )      
          (setq LISTE (cons
                        (list NAME DICTOBJ PAPERUNIT DRAWINGUNIT DICTNAME FAKTOR)
                        LISTE
                      )
          )
        ) 
      )
      (setq DICT (cdr DICT))
    ) 
  )
  (reverse LISTE)
)

------------------
Also ich finde Unities gut ... und andere sicher auch
---------------------------------------
  - Thomas -          
"Bei 99% aller Probleme ist die umfassende Beschreibung des Problems bereits mehr als die Hälfte der Lösung desselben."

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

Danillo
Mitglied
Bauingenieur


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

Beiträge: 216
Registriert: 12.11.2003

Windows 7 - AutoCAD 2015

erstellt am: 25. Apr. 2013 14:51    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

Bezüglich meiner Eigeninitiative: Heute ist in Italien Feiertag, schönstes Wetter und ich brühte zwischen AutoCad-Hilfe, autolisp.info und dem Forum.
Danke für die Hilfe! Vielleicht schaffe ich es jetzt ja.

Bezüglich Einseitigkeit: Wenn ich wüsste, welches deine Interessen, Tätigenkeiten sind, könnte ich dir vielleicht auch mal einen Tipp geben. Im Bereich Lisp sicherlich nicht...

Grüße
Daniel

[Diese Nachricht wurde von Danillo am 25. Apr. 2013 editiert.]

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

Danillo
Mitglied
Bauingenieur


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

Beiträge: 216
Registriert: 12.11.2003

Windows 7 - AutoCAD 2015

erstellt am: 25. Apr. 2013 15:14    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 Thomas,
habe den Code mal durchgeschaut: Sind diese Sicherheitschecks wirklich alle notwendig?
Kann es beim Auslesen der Daten passieren, dass negative Maßstabszahlen oder keine Zahlen zurückkommen?

Übrigens: hast eine sehr kompakte Scheibweise...

Grüße
Daniel

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

CADmium
Moderator
Maschinenbaukonstrukteur




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

Beiträge: 13435
Registriert: 30.11.2003

.

erstellt am: 25. Apr. 2013 15:25    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 Danillo 10 Unities + Antwort hilfreich

zu den "Sicherheitschecks" gibts unterschiedliche Meinungen ..... ich habs mir angewöhnt, möglichst "sicher" zu proggen, das eine fertige Funktion nicht wegen Fehleingaben aussteigt ect.  Manches davon ist sicher unnötig, fällt bei den Programmen ( die ich schreibe ) und den momentanen Prozessorleistungen nicht wirklich ins Gewicht.

------------------
Also ich finde Unities gut ... und andere sicher auch
---------------------------------------
  - Thomas -          
"Bei 99% aller Probleme ist die umfassende Beschreibung des Problems bereits mehr als die Hälfte der Lösung desselben."

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

Danillo
Mitglied
Bauingenieur


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

Beiträge: 216
Registriert: 12.11.2003

Windows 7 - AutoCAD 2015

erstellt am: 26. Apr. 2013 00:05    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 Experten,
hätte es eigentlich Sinn mit vl-... Methoden das Problem anzugehen?
Auf die Dictonaries kommt man ja mit:
(vla-get-dictionaries (vla-get-activedocument (vlax-get-acad-object)))

Wie man dann auf den Dictonary "ACAD_SCALELIST" gelangt und dort die vorhandenen Scales auszulesen, ist mir leider noch nicht gelungen...

Die Frage ist eigentlich nur, ob dieser Weg einfacher wäre?

Grüße
Daniel


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

CADmium
Moderator
Maschinenbaukonstrukteur




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

Beiträge: 13435
Registriert: 30.11.2003

.

erstellt am: 26. Apr. 2013 07:51    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 Danillo 10 Unities + Antwort hilfreich

in der Com-Schnittstelle ist in der Hinsicht IMHO nicht alles implementiert :

(if(and(setq DICTS(vla-get-dictionaries (vla-get-activedocument (vlax-get-acad-object))))
       (not(vl-catch-all-error-p
             (setq SCALEDICT(vl-catch-all-apply 'vla-item (list DICTS "ACAD_SCALELIST")))
           )
       )
   )
  (vlax-for ITEM SCALEDICT   
    (vlax-dump-object ITEM 'T)   
  )
)

liefert dann für einen Scale:
; IAcadObject: Die Vorgabe-Schnittstelle für ein AutoCAD-Basisobjekt
; Eigenschaftswerte:
;   Application (RO) = #<VLA-OBJECT IAcadApplication 0000000140433318>
;   Document (RO) = #<VLA-OBJECT IAcadDocument 0000000028a2d0d8>
;   Handle (RO) = "2FC"
;   HasExtensionDictionary (RO) = 0
;   ObjectID (RO) = 44
;   ObjectID32 (RO) = 44
;   ObjectName (RO) = "AcDbScale"
;   OwnerID (RO) = 42
;   OwnerID32 (RO) = 42
; Unterstützte Methoden:
;   Delete ()
;   GetExtensionDictionary ()
;   GetXData (3)
;   SetXData (2)

IMHO etwas wenig 

------------------
Also ich finde Unities gut ... und andere sicher auch
---------------------------------------
  - Thomas -          
"Bei 99% aller Probleme ist die umfassende Beschreibung des Problems bereits mehr als die Hälfte der Lösung desselben."

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

Danillo
Mitglied
Bauingenieur


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

Beiträge: 216
Registriert: 12.11.2003

Windows 7 - AutoCAD 2015

erstellt am: 27. Apr. 2013 16: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

Hallo,

sobald ich nun abgecheckt habe, ob ein Maßstab vorhanden ist bzw. sobald ich einen neuen Maßstab erzeugt habe, stellt sich das Problem, wie ich diesen aktuell setze. Über die VL-Befehle geht das offensichtlich nicht. Leichter wäre es Maßstäbe zu löschen. Natürlich könnte man auf den Command-Befehl zurückgreifen, aber das wäre nach all dem Aufwand nicht wirklich eine elegante Lösung.
Kann mir das "jeamand" weiter helfen?

Danke und Grüße
Daniel

Hoppla: jetzt habe ich zu kompliziert gedacht: Das Einfachste ist es wohl Cannoscale den entsprechenden Namen zuzuweisen. Falls es eine andere Methode gibt, wäre ich natürlich auch daran interessiert...

[Diese Nachricht wurde von Danillo am 27. Apr. 2013 editiert.]

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

Danillo
Mitglied
Bauingenieur


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

Beiträge: 216
Registriert: 12.11.2003

Windows 7 - AutoCAD 2015

erstellt am: 29. Apr. 2013 00: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

Hallo Leute,
habe nun den obigen Code bei Cond so vervollständigt, dass bei Vorhandensein des gegenständlichen Scale, dieser nicht neu erzeugt wird.
Habe dazu die Liste der vorhadenen Scales mit folgenden Code auf das Vorhandensein untersucht:
((= (car (member scale_gesucht (mapcar 'car scllst))) scale_gesucht)(princ "\nMaßstab bereits vorhanden..."))

Nehme an, da gibt es eine elegantere Variante, aber was soll's...

Dabei ist mir aufgefallen, dass der Name in der Liste in Großbuchstaben aufscheint, auch wenn er in Kleinbuchstaben erzeugt wurde. Ist kein größeres Problem, man muss halt alles in Großbuchstaben vergleichen.

Anschließend setze ich den gewünschten Maßstab mit (setvar "Cannoscale" name) aktuell, dabei kommte es zum totalen Absturz, d.h. AutoCAD verabschiedet sich. Möglicherweise hängt das damit zusammen, dass ich Reaktoren habe, die auf die Änderung von Cannoscale reagieren. Probiere ich es händisch über die Befehlszeile mit (setvar...) dann klappt es, aber der Maßstab wird neu erzeugt und dann erst aktuell gesetzt, d.h. er ist am Ende 2 x vorhanden. Hat jemand eine Ahnung, warum es zu diser Verdoppelung kommt?


Grüße
Daniel


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

CADwiesel
Moderator
CAD4FM UG




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

Beiträge: 1911
Registriert: 05.09.2000

AutoCAD, Bricscad
Wir machen das Mögliche unmöglich

erstellt am: 29. Apr. 2013 06: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 Danillo 10 Unities + Antwort hilfreich

versuch mal über eine ActiveX Methode eine Variable zu setzen. z.B. so
Code:
(vl-catch-all-apply
    'vlax-invoke(list (vla-get-activedocument (vlax-get-acad-object)) 'setvariable "cannoscale" "1:3")
    )

Außerdem solltest du schon genau wissen, was du mit Deinen Reaktoren machst.... vielleicht hast du ja command Aufrufe in den Reaktorfunktionen implementiert - das wäre sicher ein Fall von Absturtz.

------------------
Gruß
CADwiesel
Besucht uns im CHAT

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

Danillo
Mitglied
Bauingenieur


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

Beiträge: 216
Registriert: 12.11.2003

Windows 7 - AutoCAD 2015

erstellt am: 30. Apr. 2013 00:43    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 CADWiesel,
du hast Recht: ein Blick in den Reaktor hat gezeigt, dass zwar kein Command-Befehl aufgerufen wird, dass ich aber die gleiche Routine aufrufe, mit der ich jetzt den Cannoscale auf den neuen Wert gesetzt habe. Das führt zwangsläufig zu einer Endlosschleife. Auch die Verdoppelung des Maßstabs hängt mit dem Reaktor zusammen; hatte ich übersehen; tut mir leid.

Danke für den Tipp mit dem vl-Befehl; werde ich gerne ausprobieren.
Kann mir jemand verraten, wo ich eine Erklärung zu den vl-Befehlen finde? Was bewirkt z.B. vl-catch-all-apply?

Grüße
Daniel

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

joern bosse
Ehrenmitglied
Dipl.-Ing. Vermessung


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

Beiträge: 1661
Registriert: 11.10.2004

Window 8.1
ACAD 2012-2020
CIVIL 2012 - 2020
BricsCAD V14-V20
Intel(R) Core(TM)i5-8250U CPU @ 1.60GHz 1.80 GHz
16.0GB RAM
NVIDIA GeForce GTX 1050

erstellt am: 30. Apr. 2013 07:09    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 Danillo 10 Unities + Antwort hilfreich

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)2020 CAD.de | Impressum | Datenschutz