Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de (alle Foren)
  Lisp
  Plab funktioniert nicht

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:  Plab funktioniert nicht (1105 mal gelesen)
Bigggi
Mitglied
Bauzeichnerin


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

Beiträge: 178
Registriert: 14.02.2006

AutoCad Map2015

erstellt am: 09. Jul. 2015 11: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

Hallo Zusammen,

leider klappt die lsp "plab" zum Abwickeln von Polylinien von Cadwiesel bei mir nicht mehr. Wenn ich nach dem eintippen des Befehls die abzuwickelnde Polylinie anwähle kommt die Meldung "VVC: Internal Error". Hat jemand eine Idee, woran es liegen kann?
Anbei die lsp, die ich benutzt habe. Ich habe aber auch schon eine Version von Cadmium geladen und da kommt der gleich Fehler.

;;;Polylinien Abwicklung nach Zeigen einer Polylinie kann diese als abgewickeltes, gerades Element an anderer Stelle in der Zeichnung erstellt werden
(defun c lab (/ pl pld plli li)

  (defun plab2 (ELEM ptli / dili stpt gesla teillang)
    (setq gesla (vlax-curve-getdistatparam
                  ELEM
                  (vlax-curve-getendparam ELEM)
                  ) ;_ ende von vlax-curve-getdistatparam
          ) ;_ ende von setq
    (repeat (- (length ptli) 1)
      (setq dili  (cons
                    (setq teillang (2P-Dist ELEM (nth 0 ptli) (nth 1 ptli)))
                    dili
                    ) ;_ ende von cons
            ptli  (cdr ptli)
            gesla (- gesla teillang)
            ) ;_ ende von setq
      ) ;_ ende von repeat
    (if (> gesla 0)
      (setq dili (cons gesla dili))
      ) ;_ ende von if
    (command "_PLINE" (setq stpt (getpoint "\nStartpunkt: ")))
    (mapcar '(lambda (D)
              (command (setq stpt (getvar "lastpoint"))
                        (polar stpt 0.0 D)
                        ) ;_ ende von command
              ) ;_ ende von lambda
            dili
            ) ;_ ende von mapcar
    (command "")
    ) ;_ ende von defun

  (defun 2P-DIST (ENAME PT1 PT2 /)
    (setq ENAME (vlax-ename->vla-object ENAME))
    (abs (- (vlax-curve-getdistatpoint
              ENAME
              (vlax-curve-getclosestpointto
                ENAME
                PT1
                ) ;_ end of vlax-curve-getclosestpointto
              ) ;_ end of vlax-curve-getDistAtPoint
            (vlax-curve-getdistatpoint
              ENAME
              (vlax-curve-getclosestpointto
                ENAME
                PT2
                ) ;_ end of vlax-curve-getClosestPointTo
              ) ;_ end of vlax-curve-getdistatpoint
            ) ;_ end of -
        ) ;_ end of abs
    ) ;_ end of defun

  (princ "\nPolylinie wählen:")
  (setq pl  (entsel)
        pld (if pl
              (entget (setq pl (car pl)))
              ) ;_ ende von if
        ) ;_ ende von setq
  (if pld
    (cond
      ((= "LWPOLYLINE" (cdr (assoc 0 pld)))
      (setq plli
              (reverse
                (apply 'append
                      (mapcar '(lambda (P)
                                  (if (= 10 (car P))
                                    (list (cdr P))
                                    ) ;_ ende von if
                                  ) ;_ ende von lambda
                              pld
                              ) ;_ ende von mapcar
                      ) ;_ ende von apply
                ) ;_ ende von reverse
            ) ;_ ende von setq
;;;      (if (= (cdr (assoc 70 pld)) 1)
;;;       
;;;        ) ;_ ende von if
      )
      ((= "POLYLINE" (cdr (assoc 0 pld)))
      (if (= (cdr (assoc 70 pld)) 1)
        (setq flag T)
        ) ;_ ende von if
      (while
        (= (cdr
              (assoc 0
                    (setq pld (entget (entnext (cdr (assoc -1 pld)))))
                    ) ;_ ende von assoc
              ) ;_ ende von cdr
            "VERTEX"
            ) ;_ ende von =
          (setq plli (cons (cdr (assoc 10 pld)) plli))
          ) ;_ ende von while
      )
      ) ;_ ende von cond
    (princ "\nKeine Polylinie gewählt!")
    ) ;_ ende von if
  (if plli
    (plab2 pl plli)
    (princ "\nKeine Polylinie gewählt!")
    ) ;_ ende von if
  (princ)
  ) ;_ ende von defun

Danke schonmal für eure Hilfe!
Viele Grüße, Bigggi

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

Brischke
Moderator
CAD on demand GmbH




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

Beiträge: 4171
Registriert: 17.05.2001

AutoCAD 20XX, defun-tools (d-tools.eu)

erstellt am: 09. Jul. 2015 11: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 Nur für Bigggi 10 Unities + Antwort hilfreich

das Tool musst du dann an einigen Stellen umstellen, da sich das Command-Handling geändert hat.
aus command wird ein command-s .. aber nicht überall. Innerhalb von (mapcar '(Lambda ... geht's gar nicht, dass muss als (foreach - umgeschrieben werden.

Grüße!
Holger

------------------
Holger Brischke
CAD on demand GmbH
Individuelle Lösungen von Heute auf Morgen.


defun-tools Das Download-Portal für AutoCAD-Zusatzprogramme!


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

Bigggi
Mitglied
Bauzeichnerin


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

Beiträge: 178
Registriert: 14.02.2006

AutoCad Map2015

erstellt am: 09. Jul. 2015 12: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

Hallo Holger,
danke für deine Antwort. Ich kenne mich mit lsp gar nicht aus. Aber ich habe nun mal folgende lsp von Cadmium benutzt. Die enthält genau das was du geschrieben hast und damit klappt es nach Neustart von Autocad und vorherigem Löschen des temp-Ordners.
Ich seh schon, irgendwann muss ich mich mal mit lsp beschäftigen, das ist so klasse was man damit alles machen kann. Nur für mich sind das im Moment nur Hieroglyphen!
Vielen Dank für deine Info!
Bigggi

(defun c:PLABWICKLUNG(/ PL DA VPL KO X0 Y0 L NKO)
  (vl-load-com)
  (if(and(setq PL(car(entsel "\nPolylinie :")))
        (setq DA(entget PL))
        (=(cdr(assoc 0 DA))"LWPOLYLINE")
        (setq VPL(vlax-ename->vla-object PL))
        (setq KO(vl-remove-if-not '(lambda(X)(=(car X)10))DA))
        (setq KO (mapcar 'cdr KO))
    )
    (progn   
      (setq X0(car (car KO)))
      (setq Y0(cadr(car KO)))
      (setq L 0)
      (repeat(length KO)
        (setq NKO(cons (+ X0 L)NKO))
        (setq NKO(cons Y0 NKO))     
        (if(cadr KO)(setq L(+ L(distance (car KO)(cadr KO)))))
        (setq KO(cdr KO))     
      )
      (setq NKO
        (vlax-safearray-fill
          (vlax-make-safearray vlax-vbdouble (cons 0 (1- (length NKO))))
          (reverse NKO)
        )
      )
      (vla-put-coordinates VPL NKO)
    )
  )
  (princ)

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