Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de (alle Foren)
  Rund um AutoCAD
  Layoutansichtsfenster automatisch ausrichten dynamischer Block

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:  Layoutansichtsfenster automatisch ausrichten dynamischer Block (820 / mal gelesen)
Brennhaeusser
Mitglied
Maschinenbautechniker

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

Beiträge: 3
Registriert: 22.03.2017

AutoCad 2015

erstellt am: 22. Mrz. 2017 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

Hallo zusammen,
ich hoffe sehr ihr könnt mir weiter helfen, da ich im gesamten Netz nichts hilfreiches gefunden hab.

Durch das Erstellen dynamischer Blöcke konnten wir schon viele Fehler vermeiden und noch mehr Zeit einsparen, da wir nicht mehr jedes einzelne Bauteil strecken müssen aber auch da hatten wir das Problem mit den Ansichtsfenster schon weswegen ich befürchte, dass es gar keine Lösung gibt.javascript:InsertSMI 

Zum Problem:
Wir haben im Modellbereich viele sehr unterschiedlich große Bauteile und zu fast jedem Bauteil gibt es ein Layout mit mehreren Anschichtsfenstern, die Auschnitte des jeweiligen Bauteils zeigen.
Wenn wir nun die Bauteile ändern müssen alle Layouts kontrolliert werden und in einigen Ansichtsfenstern muss über Befehl "-pan" der Modelbereich verschoben werden.

Gibt es irgendeine Möglichkeit, die Ansichtstfenster in Abhängigkeit der Blöcken oder von Linien zu bringen? 


Liebe Grüße einer verzweifelten

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

xem
Mitglied
Zeichner


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

Beiträge: 847
Registriert: 07.08.2008

Software:
AutoCAD 2022 - 64bit
Windows 10 Pro - 64bit
PDFCreator 1.0.2 - 32bit
Ghostscript 9.0 - 64bit
PDF-XChange Viewer - 64bit
GIMP 2.6.8 - 64bit
MS Office 2013 - 32bit
Opera 12 - 32bit
MacroX - 32bit
7-zip - 64bit
-----------------------
Hardware:
Intel i5 680 3,6GHz @ 4GHz
8GB RAM 1333MHz
nVidia GTX 460 1024MB
Intel SSD 2.5 80GB X25-M
Samsung SyncMaster 245B+
Iiyama ProLite E1900s
Logitech mx518
Logitech G11
Roccat Sense Glacier Blue

erstellt am: 22. Mrz. 2017 16:17    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 Brennhaeusser 10 Unities + Antwort hilfreich

Hallo,

wir behelfen uns damit, im Layout das Ansichtsfenster ins Modell zu übertragen (Rechteck vorausgesetzt).

Erzeugt eine Polylinie vom Ansichtsfenster im Modellbereich

Code:
(vl-load-com)

(defun dxf (n ed) (cdr (assoc n ed)))

(defun ax:List->VariantArray (lst)
  (vlax-Make-Variant
    (vlax-SafeArray-Fill
      (vlax-Make-SafeArray
        vlax-vbDouble
        (cons 0 (- (length lst) 1))
      )
      lst
    )
  )
)

(defun c:vp-outline (/ ad ss ent pl plist xy n vpbl vpur msbl msur ven vpno ok)

(command "_-layer" "se" "Ansichtsfenster" "")

  (setq ad (vla-get-activedocument (vlax-get-acad-object)))
  (if (= (getvar "tilemode") 0)
    (progn
      (if (= (getvar "cvport") 1)
        (progn
          (if (setq ss (ssget "_:E:S" '((0 . "VIEWPORT"))))
            (progn
              (setq ent (ssname ss 0))
              (setq vpno (dxf 69 (entget ent)))
              (vla-Display (vlax-ename->vla-object ent) :vlax-true)
              (vla-put-mspace ad :vlax-true) ; equal (command "._mspace")
              ; this to ensure trans later is working on correct viewport
              (setvar "cvport" vpno)
;              (vla-put-mspace ad :vlax-false) ; equal (command "._pspace")
              (setq ok T)
            )
          )
        )
        (setq ent (vlax-vla-object->ename (vla-get-activepviewport ad))
              ok  T
        )
      )
      (if ok
        (progn
          (setq ven (vlax-ename->vla-object ent))
          (if (/= 1 (logand 1 (dxf 90 (entget ent)))) ; detect perspective
            (if (= (vla-get-clipped ven) :vlax-false)
              (progn                ; not clipped
                (vla-getboundingbox ven 'vpbl 'vpur)
                  (setq vpbl  (trans (vlax-safearray->list vpbl) 3 2)
                        msbl  (trans vpbl 2 1)
                        msbl  (trans msbl 1 0)
                        vpur  (trans (vlax-safearray->list vpur) 3 2)
                        msur  (trans vpur 2 1)
                        msur  (trans msur 1 0)
                        vpbr (list (car vpur) (cadr vpbl)0)
                        msbr  (trans vpbr 2 1)
                        msbr  (trans msbr 1 0)
                        vpul (list (car vpbl) (cadr vpur)0)
                        msul  (trans vpul 2 1)
                        msul  (trans msul 1 0)
                        plist (list (car msbl) (cadr msbl)
                                            (car msbr) (cadr msbr)
                                            (car msur) (cadr msur)
                                            (car msul) (cadr msul)
                                    )
                    )
              )
              (progn                ; clipped
                (setq pl    (entget (dxf 340 (entget ent)))
                      plist (vla-get-coordinates
                              (vlax-ename->vla-object (dxf -1 pl))
                            )
                      plist (vlax-safearray->list (vlax-variant-value plist))
                      n    0
                      pl    nil
                )
                (repeat (/ (length plist) 2)
                  (setq xy (trans (list (nth n plist) (nth (1+ n) plist)) 3 2)
                        xy  (trans xy 2 1)
                        xy  (trans xy 1 0)
                        pl (cons (car xy) pl)
                        pl (cons (cadr xy) pl)
                        n  (+ n 2)
                  )
                )
                (setq plist (reverse pl))
              )
            )
          )
          (setq plist (ax:List->VariantArray plist))
          (vla-Put-Closed
            (vla-AddLightWeightPolyline
              (vla-get-ModelSpace ad)
              plist
            )
            :vlax-True
          )
        )
      )
    )
  )
  (if ss(vla-put-mspace ad :vlax-false)) ; equal (command "._pspace"))

(command "_-layer" "se" "0" "")

  (princ)
)


und dann bei Verschiebungen (kein Zoom!) mit dem Code den neuen Bereich schneller im Ansichtsfenster zu fangen.

Zoom das Ansichtsfenster auf das Rechteck.

Code:
(defun c:af (/ a b o ss)
  (vl-load-com)
  (if (setq ss (ssget "_+.:E:S" '((0 . "LWPOLYLINE")(-4 . "&=")(70 . 1))))
    (progn
      (setq o (vlax-ename->vla-object (ssname ss 0))
    a (vlax-curve-getpointatparam o 1)
    b (vlax-curve-getpointatparam o 3)
    )
            (vl-cmdf "_.zoom" (trans a 0 1) (trans b 0 1))
    )
  )
  (princ)
)

------------------
Error in Layer 8

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

Wolfgang Gruber
Mitglied
CAD für den Metallbau


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

Beiträge: 474
Registriert: 27.11.2003

Mod.: SYSCAD

erstellt am: 22. Mrz. 2017 16:28    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 Brennhaeusser 10 Unities + Antwort hilfreich

Hallo,

alternativ gibt es im AutoCAD App-Store ein Tool "Model2Layout".

Hiermit können Referenzen von Ansichtsfenstern aus dem Papierbereich in den Modellbereich übertragen werden und auf Knopfdruck aktualisiert werden.

https://apps.autodesk.com/ACD/de/Detail/Index?id=2381809151466454998&appLang=de&os=Win32_64

Bei Fragen - bitte fragen.

------------------
Mit freundlichen Grüßen

Wolfgang Gruber
www.syscad.info

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

Brennhaeusser
Mitglied
Maschinenbautechniker

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

Beiträge: 3
Registriert: 22.03.2017

AutoCad 2015

erstellt am: 23. Mrz. 2017 08:26    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

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