Hot News aus dem CAD.de-Newsletter:

Mit Unterstützung durch:

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

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 auslesen (1310 mal gelesen)
Jürgen Scheeren
Mitglied
Energieanlagen Konstrukteur , CAD-Administrator


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

Beiträge: 255
Registriert: 03.04.2003

Autocad MEP 2016
win7x64bit

erstellt am: 18. Apr. 2006 13:01    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 Autolisper,

möchte gerne den Maßstab eines Ansichtsfensters auslesen,
habe mir mal die Beiträge im Forum angeschaut und gesehen
das es wohl für einen Gelegenheitslisper nicht ganz so einfach ist.
Dachte der Maßstab steht in einer Variablen, ist aber offensichtlich
nicht so.
Brauchte einfach nur

(setq ele(entsel "\nAnsichtsfenster wählen: "))
(setq AFMA ( wie auch immmer ausgelesener Maßstab vom AF))

um weiter zu kommen. Vieleicht hat jemand das ganze schon
Komplett und braucht nur mit Strg + C das ganze zwischen
die klammern zu setzten. Wäre super nett.

Gruß Jürgen

[Diese Nachricht wurde von Jürgen Scheeren am 18. Apr. 2006 editiert.]

[Diese Nachricht wurde von Jürgen Scheeren am 18. Apr. 2006 editiert.]

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: 13244
Registriert: 30.11.2003

.

erstellt am: 18. Apr. 2006 13:20    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 Jürgen Scheeren 10 Unities + Antwort hilfreich

(vla-get-customscale(vlax-ename->vla-object(car(entsel))))
also für dich
(setq ele(car(entsel "\nAnsichtsfenster wählen: ")))
(setq AFMA (vla-get-customscale(vlax-ename->vla-object ele)))


------------------
  - 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

Jürgen Scheeren
Mitglied
Energieanlagen Konstrukteur , CAD-Administrator


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

Beiträge: 255
Registriert: 03.04.2003

Autocad MEP 2016
win7x64bit

erstellt am: 18. Apr. 2006 13: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 Thomas,

Irre, eine Antwort in Echtzeit.
Danke Dir und wünsche noch einen schönen
Tag und wenig Streß.

Gruß Jürgen

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

Jürgen Scheeren
Mitglied
Energieanlagen Konstrukteur , CAD-Administrator


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

Beiträge: 255
Registriert: 03.04.2003

Autocad MEP 2016
win7x64bit

erstellt am: 18. Apr. 2006 15:00    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 Autolisper,

wenn ich schon poste, dann kann ich auch mal zeigen
was dabei raus gekommen ist, aber bitte keine Steinigung,
weiß selber das das Ding nicht rund ist, aber produktieve
Kritik ist immer willkommen.
Also wenn's wehn interessiert, hier mein low level Tool
zum gucken, motzen, mißbrauchen oder als Ansatz
für was Anderes.
Ach so, noch eins, es funzt tatsächlich;-)

Gruß Jürgen


;*************************************************************************
;* Written by: Jürgen Scheeren / CAD-Konstrukteur
;*  Erstellt: 2006
;*
;*************************************************************************
; Tool zum automatischen Einstellen der Bemaßungsskalierung
; für den Papierbereich in "Meter Angaben"

(Defun C:FenFak (/)
(setvar "cmdecho" 0)

(setq ele(car(entsel "\nAnsichtsfenster wählen: ")))

;holen des aktuellen AF-Maßstabs
(setq AFMA (vla-get-customscale(vlax-ename->vla-object ele)))

(setvar "dimlfac" 1)

(setq dimlf (getvar "dimlfac"))

(setq fac (/ (/ dimlf AFMA) 1000))

(command "dimlfac" fac)

;übernehmen der Änderung
(command "_-DIMSTYLE" "_apply" "_all" "")


(setvar "cmdecho" 1)
   (PROMPT "\nBemaßungsskalierung geändert in Meter Angaben ... ")
(princ)
)
(princ)


[Diese Nachricht wurde von Jürgen Scheeren am 18. Apr. 2006 editiert.]

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: 13244
Registriert: 30.11.2003

.

erstellt am: 18. Apr. 2006 15:37    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 Jürgen Scheeren 10 Unities + Antwort hilfreich

Schön, dass du dein Ergebnis gepostet hast. Dazu ein paar Anmerkungen:
Lokalisier doch bitte deine Variablen!
->(Defun C:FenFak (/ ELE AFMA DIMLF FAC)
    .. dann , was passiert, wenn der Nutzer daneben oder was anderes angeklickt hat?... Besser ist :
  (if(and(setq ele(car(entsel "\nAnsichtsfenster wählen: ")))
        (=(cdr(assoc 0 (entget ELE))) "VIEWPORT")
      )
    (progn
        (setq AFMA (vla-get-customscale(vlax-ename->vla-object ele)))
        ... was soll das??
          ;(setvar "dimlfac" 1)
          ;(setq dimlf (getvar "dimlfac"))
          ;(setq fac (/ (/ dimlf AFMA) 1000))
        ... kannst du auch als
            (setq fac (/ 0.001 AFMA))
        .. schreiben

            (command "dimlfac" fac)
        .. hiermit überschreibst du aber auch alle anderen
        .. bereits vorgenommenen Bemaßungsmanipulationen!!
            (command "_-DIMSTYLE" "_apply" "_all" "")
      )
)


als (command "_-DIMSTYLE" "_apply" "_all" "") -Ersatz ist vielleicht eine entsprechende direkte Bemaßungsmanipulation günstiger?!

------------------
  - 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

Jürgen Scheeren
Mitglied
Energieanlagen Konstrukteur , CAD-Administrator


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

Beiträge: 255
Registriert: 03.04.2003

Autocad MEP 2016
win7x64bit

erstellt am: 18. Apr. 2006 16: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

Ja, Hallo Thomas,

vielen Dank für Deine Tips, werde versuchen sie einzubauen
und versuchen es nachzuvollziehen, um das ganze abzurunden.
@ ;(setvar "dimlfac" 1)
Das habe ich gemacht damit der Ausgangswert immer 1 ist,
falls der Wert mal geändert ist.

@;(setq dimlf (getvar "dimlfac"))
;(setq fac (/ (/ dimlf AFMA) 1000))
Hast Du vollkommen recht, ist Quatsch.

.. hiermit überschreibst du aber auch alle anderen
        .. bereits vorgenommenen Bemaßungsmanipulationen!!
            (command "_-DIMSTYLE" "_apply" "_all" "")
Am liebsten wäre mir immer den aktuellen Bemaßungsstil zu überschreiben, der kann ja auch mal unterschiedlich sein, deswegen wollte ich keine benannten Bamaßungsstile einsetzen.

Wenn ich fertig bin poste ich das Ding wieder.

Gruß Jürgen

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

Jürgen Scheeren
Mitglied
Energieanlagen Konstrukteur , CAD-Administrator


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

Beiträge: 255
Registriert: 03.04.2003

Autocad MEP 2016
win7x64bit

erstellt am: 19. Apr. 2006 09: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

Hallo Thomas,

hier nochmal das Prog geändert.

@(command "_-DIMSTYLE" "_apply" "_all" "")
Wenn ich nur den aktuellen Bemaßungsstil überschreiben
will, kann ich für "_all" was anderes einsetzen,
giebt es so was wie "_current" ?

Gruß Jürgen

; Tool zum automatischen Einstellen der Bemaßungsskalierung
; für den Papierbereich in "Meter Angaben"

(Defun C:FenFak (/ ELE AFMA DIMLF FAC)
(setvar "cmdecho" 0)

(if(and(setq ele(car(entsel "\nAnsichtsfenster wählen: ")))
        (=(cdr(assoc 0 (entget ELE))) "VIEWPORT")
      )
;holen des aktuellen AF-Maßstabs
    (progn
        (setq AFMA (vla-get-customscale(vlax-ename->vla-object ele)))

;setzt die Bemaßungsskalierung, falls verstellt
(setvar "dimlfac" 1)

(setq fac (/ 0.001 AFMA))

(command "dimlfac" fac)

;übernehmen der Änderung
(command "_-DIMSTYLE" "_apply" "_all" "")
)
)
(setvar "cmdecho" 1)
  (PROMPT "\nBemaßungsskalierung geändert in Meter Angaben ... ")
(princ)
)
(princ)

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: 13244
Registriert: 30.11.2003

.

erstellt am: 19. Apr. 2006 10: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 Jürgen Scheeren 10 Unities + Antwort hilfreich

Mein Ansatz wäre die direkte Manipulation des Bemaßungsobjektes :

(defun SETDIMLFAC (FAKTOR / AUSWAHL OBJEKT VLA-OBJEKT) 
  (if(and(setq AUSWAHL (ssget '( (0 . "DIMENSION")) ))
        (numberp FAKTOR)
    )   
    (repeat (sslength AUSWAHL)                     
      (setq OBJEKT (ssname AUSWAHL 0))             
      (setq VLA-OBJEKT (vlax-ename->vla-object OBJEKT))
      (vlax-put-property
        VLA-OBJEKT
        'LinearScaleFactor
        (/(vlax-get-property VLA-OBJEKT 'LinearScaleFactor)(float FAKTOR))
      )
      (vlax-put-property
        VLA-OBJEKT
        'RoundDistance
        (/(vlax-get-property VLA-OBJEKT 'RoundDistance)(float FAKTOR))
      )
      (setq P(+(vlax-get-property VLA-OBJEKT 'PrimaryUnitsPrecision)(fix(/(log FAKTOR)(log 10)))1))
      (vlax-put-property
        VLA-OBJEKT
        'PrimaryUnitsPrecision
        (cond((< P 0)0)((> P 8)8)('T P)) 
      )     
      (setq AUSWAHL (ssdel OBJEKT AUSWAHL))     
    )
  ) 
  (princ)
)

für die Umrechnung von mm in m dann folgender Aufruf
(SETDIMLFAC 1000)
von m in mm
(SETDIMLFAC 0.001)
usw..

evtl. kann man noch einbauen, das die überschriebenen Bemaßungen berücksichtigt werden, Fehlerbehandlungen usw.

------------------
  - 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

Jürgen Scheeren
Mitglied
Energieanlagen Konstrukteur , CAD-Administrator


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

Beiträge: 255
Registriert: 03.04.2003

Autocad MEP 2016
win7x64bit

erstellt am: 19. Apr. 2006 11:06    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,

ähem, Schluck, das muß ich jetzt erstmal einwirken
lassen. Verstehe das so, das der Code eine Funktion
ist den ich zusätzlich einbauen muß, oder ist es ein
eigenständiges Prog.
Bin da ein ganz klein bischen überfordert.

Gruß Jürgen

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: 13244
Registriert: 30.11.2003

.

erstellt am: 19. Apr. 2006 11:13    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 Jürgen Scheeren 10 Unities + Antwort hilfreich

..eigentlich ein eigenständiges Prog... bloß dass du evtl.
noch ein (defun c: ..) mit Faktoreingabe , undo usw. drumherumbasteln mußt, wenn du es als Kommando haben willst.

------------------
  - 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

Jürgen Scheeren
Mitglied
Energieanlagen Konstrukteur , CAD-Administrator


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

Beiträge: 255
Registriert: 03.04.2003

Autocad MEP 2016
win7x64bit

erstellt am: 21. Apr. 2006 10:30    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,

nochmal vielen Dank für Deine Hilfe,
das mit Deinen Tips entstandene Tool
funzt super.

@..eigentlich ein eigenständiges Prog... bloß dass du evtl.
noch ein (defun c: ..) mit Faktoreingabe , undo usw. drumherumbasteln mußt, wenn du es als Kommando haben willst.

Bei der Geschichte muß ich ehrlich zugeben das es meine
Gelegenheitsprogrammierhorizont bei weitem übersteigt,
dank Dir aber trotzdem für Dein Beispiel.

Wünsch Dir ein schönes Wochenende und bis dann in diesem Forum.

Gruß Jürgen

[Diese Nachricht wurde von Jürgen Scheeren am 21. Apr. 2006 editiert.]

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

Dolcetto
Mitglied
Konstrukteur / Softwareentwickler


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

Beiträge: 66
Registriert: 04.05.2004

erstellt am: 09. Jun. 2006 10: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 Jürgen Scheeren 10 Unities + Antwort hilfreich

Hallo zusammen,

Benötige auch den Massstab eines Ansichtsfensters in eine Variable.
Allerdings bekomme ich immer volgende Fehlermeldung:

Fehler: ActiveX-Server gab folgenden Fehler zurück:
unbekannter Name: CustomScale

Wieso erkennt er nicht CustomScale?

Vielen Dank für Antworten

Gruss Dolcetto

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: 1774
Registriert: 05.09.2000

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

erstellt am: 09. Jun. 2006 10:55    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 Jürgen Scheeren 10 Unities + Antwort hilfreich

Ich vermute mal, das dir ein (vl-load-com) zur inizialisierung der Schnittstelle fehlt

also setz das mal über deinen code drüber

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

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

CADchup
Ehrenmitglied V.I.P. h.c.




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

Beiträge: 3291
Registriert: 14.03.2001

Sicher ist, dass nichts sicher ist. Selbst das nicht.
Joachim Ringelnatz

erstellt am: 09. Jun. 2006 12:37    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 Jürgen Scheeren 10 Unities + Antwort hilfreich

Hi,

könnte auch sein, dass du ein zugeschnittenes Ansichtsfenster erwischst hast und das Umgrenzungs-Objekt zurückgegeben wird.


Gruß
CADchup

------------------
CADmaro.de

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)2017 CAD.de