Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de (alle Foren)
  Lisp
  Blockgrenzen ermitteln

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:  Blockgrenzen ermitteln (1574 mal gelesen)
cadking
Mitglied
CAD-Zeichendiensleistung


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

Beiträge: 238
Registriert: 26.10.2004

Intel Quadcore i7,W7-64bit, Quadro FX 3800
MEP/ACA2018; MEP/ACA2018; MEP/ACA2021; MEP/ACA2021

erstellt am: 18. Sep. 2019 13: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


Planrahmen.dwg

 
Hallo Leute,
ich möchte in der angehängten Datei für die Planrahmen die Koordinaten der rechten unteren Ecke und der rechten oberen Ecke ermitteln.
Der Planrahmen ist ein dynamischer Block. Ich benötige die Koordinaten für die Bestimmung des Plotbereichs (Fenster) und das Einfügen des Plankopfes in einer rechten unteren Ecke per Lisp.
Hat jemand eine Idee?

------------------
Danke Stefan

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: 18. Sep. 2019 13:38    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 cadking 10 Unities + Antwort hilfreich

Hallo Stefan,

Möglichkeiten gibt es sicher einige.
- Suche mal nach vla-GetBoundingBox

- Du könntest die Daten des Rahmens auswerten, GC 10 liefert linke untere Ecke und irgendwo in den Daten steckt sicher die Blattgröße drin. Dann lässt sich das Gesuchte ausrechenen.

- Wenn Du nichts weiter im Layout rumliegen hast, mal EXTMIN und EXTMAX auswerten, ggf. noch ein zoom Grenzen vorneweg schicken. Ist aber etwas ungenau in dne Kommastellen, aber wenn der Rahmen immer auf ganzen Koordinaten liegt, sicher durch Runden machbar.

- Wenn keiner mit den Limiten rumgespielt hat, geht auch Auswertung von LIMMIN und LIMMAX

HTH
Gruß
Thomas

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

cadking
Mitglied
CAD-Zeichendiensleistung


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

Beiträge: 238
Registriert: 26.10.2004

Intel Quadcore i7,W7-64bit, Quadro FX 3800
MEP/ACA2018; MEP/ACA2018; MEP/ACA2021; MEP/ACA2021

erstellt am: 18. Sep. 2019 13:57    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,
danke für deinen Beitrag, aber das hilft mir nicht weiter, denn:
1. in den Layouts liegen zum Teil auch außerhalb der Planrahmens Zeichenobjekte.
2. die Seiteneinrichtung (Fensterkoordeinaten) möchte ich ja gerade aus den Koordinaten des Planrahmens (untere linke Ecke immer 0,0) ermitteln
3. Da der Planrahmen-Block dynamisch ist, hilft mir auch der GC 10 nicht weiter.

------------------
Danke Stefan

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

Meldin
Mitglied



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

Beiträge: 381
Registriert: 15.07.2011

ACA2020
Windows10

erstellt am: 18. Sep. 2019 14:03    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 cadking 10 Unities + Antwort hilfreich

Als nur mal so ein schuß ins blaue.
mit vla-getboundingbox wirst du nicht weit kommen damußt du wohl an die Blockeinstellungen dran.

------------------
Gruß Wolfgang

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

archtools
Mitglied



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

Beiträge: 823
Registriert: 09.10.2004

Entwickler für AutoCAD, BricsCAD u.a., alle Systeme

erstellt am: 19. Sep. 2019 17: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 cadking 10 Unities + Antwort hilfreich

Zitat:
Original erstellt von Meldin:
Als nur mal so ein schuß ins blaue.
mit vla-getboundingbox wirst du nicht weit kommen damußt du wohl an die Blockeinstellungen dran.


Aber natürlich funktioniert das mit :

Code:

;;; ermittelt Umgrenzungsrechteck um einzelne Entity, Pickset oder Liste von Entities
(defun getboundingbox (en / ll ur pl)
  (if (= 'PICKSET (type en)) (setq en (ss->list en)))
  (cond
    ((= 'ENAME (type en))
     (setq en (vlax-ename->vla-object en))
     (vla-GetBoundingBox en 'll 'ur)
     (setq ll (mapcar 'ff-fixit (vlax-safearray->list ll)))
     (setq ur (mapcar 'ff-fixit (vlax-safearray->list ur)))
     (list ll ur)
    )
    ((= 'LIST (type en))
     (setq pl (apply 'append (mapcar 'getboundingbox en)))

     (list (list (apply 'min (mapcar 'car pl)) (apply 'min (mapcar 'cadr pl)))
   (list (apply 'max (mapcar 'car pl)) (apply 'max (mapcar 'cadr pl)))
     )
    )
  )
)

;;; wandelt PICKSET in Liste von Entities:
(defun ss->list (sset / eset counter)
  (setq counter 0)
  (if (= 'PICKSET (type sset))
    (repeat (sslength sset)
      (setq eset    (cons (ssname sset counter) eset)
    counter (1+ counter)
      )
    )
  )
  eset
)

(defun ff-rtos (zahl modus genau / result olddimzin)
  (setq olddimzin (getvar "DIMZIN"))
  (setvar "DIMZIN" 8)
  (if (and (numberp zahl)
  (numberp modus)
  (numberp genau)
      )
    (setq result (rtos zahl modus genau))
    (setq result "")
  )
  (setvar "DIMZIN" olddimzin)
  (if (and (= 'INT (type (read result)))
  (/= 0 genau)
  )
    (setq result (strcat result ".0"))
  )
  result
)

(defun ff-fixit (weird) (read (ff-rtos weird 2 20)))


[Diese Nachricht wurde von archtools am 19. Sep. 2019 editiert.]

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

Meldin
Mitglied



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

Beiträge: 381
Registriert: 15.07.2011

ACA2020
Windows10

erstellt am: 19. Sep. 2019 18: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 cadking 10 Unities + Antwort hilfreich

Probiert hast du es auch?
Also bei mir geht es nicht.

------------------
Gruß Wolfgang

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

archtools
Mitglied



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

Beiträge: 823
Registriert: 09.10.2004

Entwickler für AutoCAD, BricsCAD u.a., alle Systeme

erstellt am: 19. Sep. 2019 18:33    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 cadking 10 Unities + Antwort hilfreich

Zitat:
Original erstellt von Meldin:
Probiert hast du es auch?
Also bei mir geht es nicht.



Hast Du formatierten MText im Insert? Das gibt teils heftige Abweichungen. Könnte sein, dass auch manche andere Objekte versagen. Ansonsten geht das bei mir und bei unseren Kunden. Dort werden damit automatisch XClip Objekte über andere gelegt.

[Diese Nachricht wurde von archtools am 19. Sep. 2019 editiert.]

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

Meldin
Mitglied



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

Beiträge: 381
Registriert: 15.07.2011

ACA2020
Windows10

erstellt am: 19. Sep. 2019 18:52    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 cadking 10 Unities + Antwort hilfreich

Der beitragsersteller hat boch eine Zeichnung bereitgestellt mit der du testen kannst.
Also teste mal mit deinem Code und verändere die größen und poste dann mal deine Ergebnisse.
 

------------------
Gruß Wolfgang

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

archtools
Mitglied



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

Beiträge: 823
Registriert: 09.10.2004

Entwickler für AutoCAD, BricsCAD u.a., alle Systeme

erstellt am: 19. Sep. 2019 18:57    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 cadking 10 Unities + Antwort hilfreich

Zitat:
Original erstellt von Meldin:
Der beitragsersteller hat boch eine Zeichnung bereitgestellt mit der du testen kannst.
Also teste mal mit deinem Code und verändere die größen und poste dann mal deine Ergebnisse.
 


Das ist mir zu viel Aufwand. Nicht ich, sondern der Beitragsertseller sucht nach einer Lösung. Der kann meinen Code testen, denn genau dazu hab' ich den ins Netz gestellt. Wenn ich jetzt auch noch seine Aufgabe des Testens übernehmen soll, dann kostet das extra.

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

Meldin
Mitglied



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

Beiträge: 381
Registriert: 15.07.2011

ACA2020
Windows10

erstellt am: 19. Sep. 2019 19: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 Nur für cadking 10 Unities + Antwort hilfreich

Sorry aber gute Einstellung.

------------------
Gruß Wolfgang

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

Andreas Kraus
Mitglied
Elektrotechniker


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

Beiträge: 1356
Registriert: 11.01.2006

WIN 10
ACAD 2022

erstellt am: 19. Sep. 2019 20:34    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 cadking 10 Unities + Antwort hilfreich

Hallo Stefan,
ich verstehe zwar deinen Planrahmen nicht aber du wirst schon deine Gründe haben den mit Sichtbarkeiten aufzubauen.

Dein Problem kannst du ganz einfach lösen wenn du mit vla-getdynamicblockproperties die Daten der Parameter ausliest und mit GC10 zusammen auswertest.
Im Parameter "DIN-Format" steht das gewählte Blatt. Jetzt nur noch die entsprechenden Parameter für Höhe und Breite (mit cond) raussuchen und GC10 addieren ... fertig.

------------------
Geht nicht, gibts nicht

Gruß
Andreas

http://kraus-cad.de

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

cadking
Mitglied
CAD-Zeichendiensleistung


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

Beiträge: 238
Registriert: 26.10.2004

Intel Quadcore i7,W7-64bit, Quadro FX 3800
MEP/ACA2018; MEP/ACA2018; MEP/ACA2021; MEP/ACA2021

erstellt am: 23. Sep. 2019 11:29    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,
erst mal Vielen Dank für eure Beiträge.
mit dem Code von archtools komme ich nicht ganz klar.
Wie lautet die Eingabe in der Befehlszeile, damit da was passiert?

------------------
Danke Stefan

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

archtools
Mitglied



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

Beiträge: 823
Registriert: 09.10.2004

Entwickler für AutoCAD, BricsCAD u.a., alle Systeme

erstellt am: 23. Sep. 2019 11: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 Nur für cadking 10 Unities + Antwort hilfreich

Zitat:
Original erstellt von cadking:
Hallo Leute,
erst mal Vielen Dank für eure Beiträge.
mit dem Code von archtools komme ich nicht ganz klar.
Wie lautet die Eingabe in der Befehlszeile, damit da was passiert?


z.B.:
(getboundingbox (car (entsel)))

Du bist hier im Lisp-Forum. Du solltest Dir vielleicht minimale Lisp-Kenntnisse aneignen, um hier Fragen stellen und mitdiskutieren zu können. Fang mal an, es ist nicht schwer, und den meisten Leuten macht es richtig Spaß.

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

cadking
Mitglied
CAD-Zeichendiensleistung


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

Beiträge: 238
Registriert: 26.10.2004

Intel Quadcore i7,W7-64bit, Quadro FX 3800
MEP/ACA2018; MEP/ACA2018; MEP/ACA2021; MEP/ACA2021

erstellt am: 23. Sep. 2019 16:21    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 Archtools,
in dem geposteten Planrahmen bekomme ich für das Layout A1Überlänge von deinem Code folgendes zurück:
((0.0 -8.43754e-14 0.0) (1211.0 1189.0 0.0))
Die Eckpunkte liegen aber auf:
Befehl: '_id Punkt angeben:  X = 0.0000    Y = 0.0000    Z = 0.0000
Befehl: '_id Punkt angeben:  X = 1211.0000    Y = 594.0000    Z = 0.0000

Ich habe keine Ahnung woher dein Code die ((0.0 -8.43754e-14 0.0) (1211.0 1189.0 0.0)) bekommt.
Wenn ich die Nachkommastellen auf 8 setze habe ich auch nur Nullen hinter dem Komma. Woraus soll die e-14 im Y-Wert des ersten Elements der Liste stammen?

------------------
Danke Stefan

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

archtools
Mitglied



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

Beiträge: 823
Registriert: 09.10.2004

Entwickler für AutoCAD, BricsCAD u.a., alle Systeme

erstellt am: 23. Sep. 2019 16:35    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 cadking 10 Unities + Antwort hilfreich

Zitat:
Original erstellt von cadking:
Hallo Archtools,
in dem geposteten Planrahmen bekomme ich für das Layout A1Überlänge von deinem Code folgendes zurück:
((0.0 -8.43754e-14 0.0) (1211.0 1189.0 0.0))
Die Eckpunkte liegen aber auf:
Befehl: '_id Punkt angeben:  X = 0.0000     Y = 0.0000     Z = 0.0000
Befehl: '_id Punkt angeben:  X = 1211.0000     Y = 594.0000     Z = 0.0000

Ich habe keine Ahnung woher dein Code die ((0.0 -8.43754e-14 0.0) (1211.0 1189.0 0.0)) bekommt.
Wenn ich die Nachkommastellen auf 8 setze habe ich auch nur Nullen hinter dem Komma. Woraus soll die e-14 im Y-Wert des ersten Elements der Liste stammen?


Die e-14 kommen daher, dass Rechner nur schlecht rechnen können. Die e-14 darfst Du als Null verstehen,und so versteht sie auch AutoCAD.

Auffällig ist die Abweichung im Y-Wert des zweiten Punkts, wo es korrekt 594 sein sollten, mein Programm aber 1189 auswirft. Das ist ziemlich genau das Doppelte. Ist das nur Zufall, oder hat das eventuell mit einer Skalierung des dynamischen Blocks zu tun?

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

cadking
Mitglied
CAD-Zeichendiensleistung


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

Beiträge: 238
Registriert: 26.10.2004

Intel Quadcore i7,W7-64bit, Quadro FX 3800
MEP/ACA2018; MEP/ACA2018; MEP/ACA2021; MEP/ACA2021

erstellt am: 24. Sep. 2019 09:38    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 Archtools,
der Block ist nicht skaliert. Er wird über Sichtbarkeitsparameter in der Höhe, und über Streckparameter in der Länge gesteuert. Ich habe den Block nicht erstellt. Er ist Bestandteil von Zeichnungen die ich bekomme und für die ich die Seiteneinrichtungen ändern muss (Plotstiltabelle, Plotbereich auf Fenster von Planrahmen, Drucker umstellen auf DWG To PDF...). Das sind etwa 400 Dateien mit mehreren Layouts.

------------------
Danke Stefan

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

archtools
Mitglied



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

Beiträge: 823
Registriert: 09.10.2004

Entwickler für AutoCAD, BricsCAD u.a., alle Systeme

erstellt am: 24. Sep. 2019 10: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 cadking 10 Unities + Antwort hilfreich

Zitat:
Original erstellt von cadking:
Hallo Archtools,
der Block ist nicht skaliert. Er wird über Sichtbarkeitsparameter in der Höhe, und über Streckparameter in der Länge gesteuert. Ich habe den Block nicht erstellt. Er ist Bestandteil von Zeichnungen die ich bekomme und für die ich die Seiteneinrichtungen ändern muss (Plotstiltabelle, Plotbereich auf Fenster von Planrahmen, Drucker umstellen auf DWG To PDF...). Das sind etwa 400 Dateien mit mehreren Layouts.


Tja, dann musst Du selbst zusehen, woher der doppelt so hohe Y-Wert kommt. Mein kostenfreier Support endet hier.

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: 24. Sep. 2019 11: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 Nur für cadking 10 Unities + Antwort hilfreich

Ich verweise mal nochmal hier drauf

Zitat:
Original erstellt von Andreas Kraus:
... Dein Problem kannst du ganz einfach lösen wenn du mit vla-getdynamicblockproperties die Daten der Parameter ausliest und mit GC10 zusammen auswertest.
Im Parameter "DIN-Format" steht das gewählte Blatt. Jetzt nur noch die entsprechenden Parameter für Höhe und Breite (mit cond) raussuchen und GC10 addieren ... fertig.

Also hole Dir bei Lee Mac LM:getdynpropvalue

mit:

Code:

(lm:getdynpropvalue (vlax-ename->vla-object (car (entsel))) "DIN-Format")


Bekommst Du das Format des Rahmens

HTH
Gruß
Thomas

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

Andreas Kraus
Mitglied
Elektrotechniker


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

Beiträge: 1356
Registriert: 11.01.2006

WIN 10
ACAD 2022

erstellt am: 24. Sep. 2019 16:04    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 cadking 10 Unities + Antwort hilfreich

Hallo Stefan,
so ... jetzt ist es soweit.

ICH HAB ES SOOOO SATT !!!

Du probierst jetzt das hier mal aus, sonst weiß ich auch nicht weiter.

Code:

;;; Rahmen wählen
(if (setq obj_name (vlax-ename->vla-object (car (entsel))))
;;; Parameter holen und in Liste wurschteln
  (if (setq prop_list (if (vl-catch-all-error-p
    (vl-catch-all-apply
      'vlax-safearray->list
      (list (vlax-variant-value
      (vla-getdynamicblockproperties
obj_name
      )
    )
      )
    )
  )
nil
(vlax-safearray->list
  (vlax-variant-value
    (vla-getdynamicblockproperties
      obj_name
    )
  )
)
      )
      )
    (progn
;;; Eingestelltes Format aus Parameterliste suchen und Wert in Variable speichern
      (setq
format (vlax-variant-value
(vla-get-value
  (car
    (vl-remove-if-not
      '(lambda (prop)
  (= (vla-get-PropertyName prop) "DIN-Format")
)
      prop_list
    )
  )
)
      )
      )
;;; Blattformat auswerten und zugehörigen Längenparameter auswerten
      (cond
;;; hier jetzt erst mal nur für A0 quer, das muss dann für alle anderen Formate entsprechend kopiert und angepasst werden
((= format "DinA0 (Q)")
(setq
  länge (vlax-variant-value
  (vla-get-value
    (car
      (vl-remove-if-not
'(lambda (prop)
    (= (vla-get-PropertyName prop) "Länge A0")
  )
prop_list
      )
    )
  )
)
)
;;; das ganze Zeug in eine Liste
(setq bereich (list (setq p (vlax-safearray->list
      (vlax-variant-value
(vla-get-insertionpoint obj_name)
      )
    )
    )
    (mapcar '+ p (list länge 841 0))
      )
)
)
(t (setq bereich "nicht in Liste"))
      )
;;; und irgendwas damit machen
      (alert (vl-princ-to-string bereich))
    )
  )
)

Ich hab zwar vorwiegend mit VLisp gearbeitet aber da musst du halt mal durch.

------------------
Geht nicht, gibts nicht

Gruß
Andreas

http://kraus-cad.de

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

cadking
Mitglied
CAD-Zeichendiensleistung


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

Beiträge: 238
Registriert: 26.10.2004

Intel Quadcore i7,W7-64bit, Quadro FX 3800
MEP/ACA2018; MEP/ACA2018; MEP/ACA2021; MEP/ACA2021

erstellt am: 26. Sep. 2019 08:57    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 Andreas,
sorry dass ich erst jetzt ein Feedback gebe. Dein Code funktioniert einwandfrei. Ich habe die noch fehlenden Formate ergänzt. Jetzt muss ich nur noch herausfinden wie ich die Werte als Plotfenster verwende.
Bisher habe ich den GC noch nicht gefunden wo die Ploteinstellungen drinstehen.

------------------
Danke Stefan

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

Andreas Kraus
Mitglied
Elektrotechniker


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

Beiträge: 1356
Registriert: 11.01.2006

WIN 10
ACAD 2022

erstellt am: 26. Sep. 2019 10:02    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 cadking 10 Unities + Antwort hilfreich

Kurzer Tipp ... die Ploteinstellungen findest du im Layout-Objekt

(setq layout (vla-get-activelayout (vla-get-activedocument (vlax-get-acad-object))))

Und dann kannst/solltest du diese Sachen einstellen:

(vla-put-configname layout configname) ; Plotername
(vla-refreshplotdeviceinfo layout) ; neu einlesen
(vla-put-paperunits layout paperunits) ; Zoll = 0 oder mm = 1
(vla-put-usestandardscale layout usestandardscale) ; Einpassen oder nicht
(vla-put-canonicalmedianame layout canonicalmedianame) ; Name der Papiergeröße
(vla-put-usestandardscale layout usestandardscale)
(vla-put-plotrotation layout plotrotation) ; Plot drehen
(vla-put-stylesheet layout stylesheet) ; Stifttabelle
(vla-put-plotwithlineweights layout plotwithlineweights)
(vla-put-scalelineweights layout ScaleLineweights)
(vla-put-plotorigin layout plotorigin)
(vla-put-plottype layout plottype)
(vla-put-centerplot layout CenterPlot)
(vla-put-plotviewportborders layout PlotViewportBorders)
(vla-put-plotviewportsfirst layout PlotViewportsFirst)
(vla-put-plotwithlineweights layout PlotWithLineweights)
(vla-put-plotwithplotstyles layout PlotWithPlotStyles)
(vla-put-scalelineweights layout ScaleLineweights)
(vla-put-showplotstyles layout ShowPlotStyles)
(vla-setcustomscale layout Numerator Denominator)

Hab ich jetzt nur mal aus einer meiner Funktionen rauskopiert. Musst mal schauen ob du da alle brauchst.

------------------
Geht nicht, gibts nicht

Gruß
Andreas

http://kraus-cad.de

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

cadking
Mitglied
CAD-Zeichendiensleistung


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

Beiträge: 238
Registriert: 26.10.2004

Intel Quadcore i7,W7-64bit, Quadro FX 3800
MEP/ACA2018; MEP/ACA2018; MEP/ACA2021; MEP/ACA2021

erstellt am: 26. Sep. 2019 12:39    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 Andreas,
saugut, damit kann ich jetzt alle Layouts nach den gewünschten Vorgaben einstellen.

vielen Dank

------------------
Danke Stefan

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