Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de (alle Foren)
  Rund um AutoCAD
  Problem mit mesh to solid m2s.lsp

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:  Problem mit mesh to solid m2s.lsp (2048 mal gelesen)
Dumpi
Mitglied
Geologe

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

Beiträge: 1
Registriert: 24.04.2012

AutoCAD 2013

erstellt am: 25. Apr. 2012 10: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

Hallo Leute,

Ich hab ein Problem mit genanntem Skript. Und zwar habe ich ein 3dmesh, das ich in ein solid überführen möchte. Ich starte das Skript und nenne dem Programm auch das Netz, welches er extrudieren soll. Dann gebe ich einen Wert (im Bild "1") an und das Programm rechnet kurz. Allerdings wird jeweils nur ein Polygon extrudiert... (s.h. Bild) Was mache ich falsch?

Wär schön wenn einer einen Tip für mich hätte. Bin noch ziemlich neu in der Materie. Vielen Dank schon mal

    

hier mal meine verwendete LSP:
(defun c:m2s (/  ent ename entlst M N MN SN SM ST smooth oldecho vtx d1
                 low vtxcnt vtxmax bot bottom p1 p2 p3 p4 c1 c2 c3 c4
                 b1 b2 b3 b4 soldepth ssall ssrow)

(setq oldecho (getvar "cmdecho"))
(setq oldsnap (getvar "osmode"))
(setq oldblip (getvar "blipmode"))
(setvar "cmdecho" 0)
(setvar "osmode" 0)
(setvar "blipmode" 0)
(command "_undo" "_begin")

;;select the mesh
  (setq ent (entsel "Select a polygon mesh to solidify: "))
  (setq ename (car ent))
  (setq entlst (entget ename))

  (if (not (= (cdr (assoc 0 entlst)) "POLYLINE"))
    (progn
      (alert "That is not a polygon mesh.")
      (exit)
      (princ)
    );progn
  );endif

  (if
    (not
      (or
       (= (cdr (assoc 70 entlst)) 16) ;open 3d polygon mesh
       (= (cdr (assoc 70 entlst)) 20) ;open mesh w/ spline-fit vertices
        );or
       );not
     (progn
       (alert "That is not an *open* polygon mesh.")
       (exit)
       (princ)
     );progn
  );endif

;; decide whether to use smoothed or unsmoothed vertices
  (setq M (cdr (assoc 71 entlst)))   ;M vertices
  (setq N (cdr (assoc 72 entlst)))   ;N vertices
  (setq SM (cdr (assoc 73 entlst)))  ;smoothed M vertices
  (setq SN (cdr (assoc 74 entlst)))  ;smoothed N vertices
  (setq ST (cdr (assoc 75 entlst)))  ;surface type
  (if
    (or
      (= (getvar "splframe") 1)      ;use MxN vertices when splframe = 1
      (= ST 0)                       ;or mesh has not been smoothed
      )
    (setq smooth 0
         MN (* M N))
    (setq smooth 1                   ;use SMxSN vertices when mesh is smoothed
          MN (* SM SN)               ;and SPLFRAME = 0
          M SM
          N SN)
    );if

;; determine lowest vertex
  (grtext -2 "Checking out the mesh...")
  (setq vtx ename)
  (setq vtx (entnext vtx))
  (setq d1 (entget vtx))
  (setq bottom (caddr (trans (cdr (assoc 10 d1)) 0 1)))
 
  (repeat (1- MN)   ;compare with each vertex's z coord
    (setq vtx (entnext vtx))
    (setq d1 (entget vtx))
    (setq low (caddr (trans (cdr (assoc 10 d1)) 0 1)))
    (setq bottom (min bottom low))
    );repeat

;; get desired thickness of solid
  (setq soldepth 0)
  (while
     (zerop soldepth)
     (progn
       (setq soldepth
          (getdist "\nEnter desired thickness of solid below lowest vertex <1>: "))
       (if (not soldepth) (setq soldepth 1.0))
       (if (zerop soldepth)
          (princ "\nThickness can be small, but not zero. (Slice it later, if need be.)"))
        );progn
     );while
  (setq bot (- bottom (abs soldepth)))
  
  (setq p1 ename)
  (if (= smooth 1)
      (setq p1 (entnext p1))) ;skip 1st vtx of smoothed mesh - not true vtx
  (setq ssrow (ssadd))        ;initialize set of extruded segments to be unioned as a row
  (setq ssall (ssadd))        ;initialize set of rows to be unioned into the whole
  (grtext -2 "Creating row...")
  (setq vtxmax (- MN N)) 
  (setq vtxcnt 1)

;;create row of solid segments
  (while (< vtxcnt vtxmax)

    (if (= 0 (rem vtxcnt N))  ;at end of each row...
        (progn
          (setq rowmsg (strcat "Unioning row "
                       (itoa (/ vtxcnt N)) " of "
                       (itoa (1- M)) "... "))
          (grtext -2 rowmsg)
          (command "_union" ssrow "")
          (setq row (entlast))
          (ssadd row ssall)
          (setq ssrow (ssadd))
          (setq p1 (entnext p1)         ;skip to the next vertex
                vtxcnt (1+ vtxcnt))
          );progn
        );if
       
    (grtext -2 "Creating row...")
    (setq p1 (entnext p1)                  ;first vertex of mesh square
          p2 (entnext p1)                  ;second vertex
          p3 p2)
    (repeat (1- n) (setq p3 (entnext p3))) ;walk along to 3rd (p1 + N) vertex
    (setq p4 (entnext p3))                 ;4th vertex of mesh square

    (setq c1 (trans (cdr (assoc 10 (entget p1))) 0 1) ;top coordinates
          c2 (trans (cdr (assoc 10 (entget p2))) 0 1)
          c3 (trans (cdr (assoc 10 (entget p3))) 0 1)
          c4 (trans (cdr (assoc 10 (entget p4))) 0 1)
          b1 (list (car c1) (cadr c1) bot)            ;bottom coordinates
          b2 (list (car c2) (cadr c2) bot)
          b3 (list (car c3) (cadr c3) bot)
          b4 (list (car c4) (cadr c4) bot))
          (LOFT c1 c2 c3 b1 b2 b3)
          (LOFT c2 c3 c4 b2 b3 b4)

    (setq vtxcnt (1+ vtxcnt))
  );while

(grtext -2 "Unioning last row...")
  (command "_union" ssrow "")
  (setq row (entlast))
  (ssadd row ssall)
  (if (> M 2)       ;bypass final union for N x 1 meshes (i.e., RULESURF)
    (progn
      (grtext -2 "Unioning all rows...")
       (command "_union" ssall "")
        );progn
     );if

;;cleanup
  (command "_undo" "_end")
  (setvar "cmdecho" oldecho)
  (setvar "osmode" oldsnap)
  (setvar "blipmode" oldblip)
  (setq ssall nil ssrow nil)
  (princ)

);defun

;;============== SUBROUTINES ====================
;(defun *error* (msg)
;  (command)
;  (command "undo" "end")
;  (setvar "cmdecho" oldecho)
;  (setvar "osmode" oldsnap)
;  (setvar "blipmode" oldblip)
;  (princ (strcat "\nError: " msg))
;  );defun

(defun LOFT (r1 r2 r3 s1 s2 s3 / e1 extr highest)
  (command "_area" s1 s2 s3 "")
  (if (not (equal (getvar "area") 0.0 0.00000001))
    (progn
      (command "_pline" s1 s2 s3 "_c")
      (setq highest (max (caddr r1) (caddr r2) (caddr r3)))
      (setq extr (- highest bot))
      (command "_extrude" (entlast) "" extr 0.0)
      (command "_slice" (entlast) "" "_3points" r1 r2 r3 s1)
      (setq e1 (entlast))
      (ssadd e1 ssrow)
      );progn
    );if
  );defun

(princ "M2S loaded.")

[Diese Nachricht wurde von Dumpi am 25. Apr. 2012 editiert.]

[Diese Nachricht wurde von Dumpi am 25. Apr. 2012 editiert.]

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

scj
Mitglied
 


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

Beiträge: 554
Registriert: 09.08.2001

erstellt am: 25. Apr. 2012 12: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 Nur für Dumpi 10 Unities + Antwort hilfreich

Vielleicht versuchst Du es mal beim Autor Bill Gilliss, z.B. über http://forums.autodesk.com/t5/Visual-LISP-AutoLISP-and-General/Polyface-mesh-to-solid/td-p/2103576/page/2
Er hatte sein anderes schönes Programm F2S.lsp auch an AutoCAD 2010 angepasst und ins Netz gestellt.
Viele Erfolg
Jochen

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