מציג 13 תגובות משורשרות
  • מאת
    תגובות
    • #48753
      Avatarבר מאריאל
      משתתף
      Offline
      Topics: 3
      Replies: 3
      Been thanked: 0 times

      איזה פקודה משטיחה לי את ההשרטוט באוטוקד למישור אחד ?
      (כרגע יש לי כמה מישורים)

    • #48754
      davidyahalomdavidyahalom
      מנחה
      Offline
      Topics: 2
      Replies: 452
      Been thanked: 3 times

      Flatten

    • #48755
      Avatarבר מאריאל
      משתתף
      Offline
      Topics: 3
      Replies: 3
      Been thanked: 0 times

      רשמתי בשורת פקודות ואין לי דבר כזה 🙁

    • #48756
      Avatarבר מאריאל
      משתתף
      Offline
      Topics: 3
      Replies: 3
      Been thanked: 0 times

      יש לי אוטוקד 2013 והוא כותב לי שזו פקודה לא מוכרת

    • #48757
      עמרי רוןעמרי רון
      מנהל בפורום
      Offline
      Topics: 12
      Replies: 5668
      Been thanked: 33 times

      FLATTEN
      ואז אנטר.

      זו פקודה שעובדת גם בגרסא 2013.

    • #48758
      עמרי רוןעמרי רון
      מנהל בפורום
      Offline
      Topics: 12
      Replies: 5668
      Been thanked: 33 times

      בדקנו,
      יכול להיות שזה בגלל שלא התקנת את ה
      Express Tools

    • #48759
      Avatarאלמוני

      אשמח אם מישהו יכול בצורה מפורטת להסביר לי איך להתקין.

    • #48760
      StuffStuff
      משתתף
      Offline
      Topics: 10
      Replies: 1223
      Been thanked: 0 times

      היי בר,
      אני מניחה שיש לך את ספר הלימוד שלנו לאוטוקאד נכון? :unsure:

    • #48761
      davidyahalomdavidyahalom
      מנחה
      Offline
      Topics: 2
      Replies: 452
      Been thanked: 3 times

      ככל הנראה הבעיה נובעת מכך שאת עובדת על גרסת אוטוקאד משודרגת כגון autocad architecture
      הפתרון הפשוט לכך הוא הפעלת פקודת ליספ שמבצעת את המלאכה. אפשר להכין אחת כזו כמו שמפורט מטה, ואפשר לבקש אחת כזו ממישהו שכבר הכין.

      אז הנה זה בא:

      את מעתיקה את שורות הקוד המפורטות מטה אל קובץ טקסט של notepad.
      את קובץ הטקסט את שומרת תחת השם ELZ.LSP בתיקיה כלשהי

      ואז באוטוקאד מפעילה את הפקודה AP
      בחלון שהפתח את מנווטת אל התיקייה שבה איחסנת את הקובץ הנ"ל ובוחרת בו.
      אנטר

      זהו. כעת בכל פעם שתפעילי את הפקודה ELZ היא תאפשר לך לשטח את האובייקטים.

      והנה שורות הקוד להעתקה (אותם מצאתי בפורום http://forums.augi.com/showthread.php?39606-Make-the-world-go-flat-FLATTEN&p=342765#post342765 ):

      (defun c:ELZ (/ cent el ent i na newel nst st stx)
      (princ "nElevation Zero")

      (defun WORKING ()
      (if (= wrkcnt nil)(setq wrkcnt 0))
      (setq wrkcnt (1+ wrkcnt))
      (if (= wrkcnt 1)(setq wrk "-"))
      (if (= wrkcnt 2)(setq wrk "\"))
      (if (= wrkcnt 3)(setq wrk "|"))
      (if (= wrkcnt 4)
      (progn (setq wrk "/")(setq wrkcnt 0))
      )
      (princ (strcat "n" wrk "n"))
      )

      (setq ent (ssget '((-4 . "")))
      )
      (setq el (sslength ent))
      (princ el)
      (setq i 0)
      (repeat el
      (working)
      (setq na (ssname ent i) i (1+ i))
      (setq cent (entget na))
      (setq st (assoc 10 cent))
      (setq stx (cadr st) sty (caddr st))
      (setq nst (list 10 stx sty 0.0))
      (setq newel (subst nst st cent))
      (entmod newel)
      (if (= (cdr (assoc 0 cent)) "LINE")
      (progn
      (setq na (ssname ent (- i 1)))
      (setq cent (entget na))
      (setq st (assoc 11 cent))
      (setq stx (cadr st) sty (caddr st))
      (setq nst (list 11 stx sty 0.0))
      (setq newel (subst nst st cent))
      (entmod newel)
      )
      )
      )
      (princ)
      )

      (princ)

    • #48762
      Avatarאלמוני

      קניתי את הספר של ווירי

    • #48763
      Avatarאלמוני

      דוד תודה! אני אנסה

    • #48764
      davidyahalomdavidyahalom
      מנחה
      Offline
      Topics: 2
      Replies: 452
      Been thanked: 3 times

      תנסי גם את הקובץ המצורף – לפקודה flatten

    • #48765
      davidyahalomdavidyahalom
      מנחה
      Offline
      Topics: 2
      Replies: 452
      Been thanked: 3 times

      או את הקוד הבא:

      (defun C:FLATTEN (/ tmpucs olderr oldcmd zeroz ss1 ss1len
      i numchg numnot numno0 ssno0 ename elist
      etype yorn vrt crz
      )
      (setq tmpucs "$FLATTEN-TEMP$") ;temporary UCS

      ;;Error handler
      (setq olderr *error*)
      (defun *error* (msg)
      (if (or
      (= msg "Function cancelled")
      (= msg "quit / exit abort")
      )
      ;;if user cancelled or program aborted, exit quietly
      (princ)
      ;;otherwise report error message
      (princ (strcat "nError: " msg))
      )
      (setq *error* olderr)
      (if (tblsearch "UCS" tmpucs)
      (command "._UCS" "_Restore" tmpucs "._UCS" "_Delete" tmpucs)
      )
      (command "._UNDO" "_End")
      (setvar "CMDECHO" oldcmd)
      (princ)
      )

      ;;Function to change Z coordinate to 0

      (defun zeroz (key zelist / oplist nplist)
      (setq oplist (assoc key zelist)
      nplist (reverse (append '(0.0) (cdr (reverse oplist))))
      zelist (subst nplist oplist zelist)
      )
      (entmod zelist)
      )
      ;;Setup
      (setq oldcmd (getvar "CMDECHO"))
      (setvar "CMDECHO" 0)
      (command "._UNDO" "_Group")
      (command "._UCS" "_Delete" tmpucs "._UCS" "_Save" tmpucs "._UCS"

      "_World")
      ;set World UCS

      ;;Get input
      (prompt
      (strcat
      "nFLATTEN sets the Z coordinates of most objects to zero."
      )
      )

      (initget "Yes No")
      (setq yorn (getkword "nDo you want to continue Y>: "))
      (cond ((/= yorn "No")
      (graphscr)
      (prompt "nChoose objects to FLATTEN ")
      (prompt
      "[press return to select all objects in the drawing]"
      )
      (setq ss1 (ssget))
      (if (null ss1) ;if enter…
      (setq ss1 (ssget "_X")) ;select all entities in database
      )

      ;;*initialize variables
      (setq ss1len (sslength ss1) ;length of selection set
      i 0 ;loop counter
      numchg 0 ;number changed counter
      numnot 0 ;number not changed counter
      numno0 0 ;number not changed and Z /= 0 counter
      ssno0 (ssadd) ;selection set of unchanged entities
      ) ;setq

      ;;*do the work
      (prompt "nWorking.")
      (while ( i ss1len) ;while more members in the SS
      (if (= 0 (rem i 10))
      (prompt ".")
      )
      (setq ename (ssname ss1 i) ;entity name
      elist (entget ename) ;entity data list
      etype (cdr (assoc 0 elist)) ;entity type
      )

      ;;*Keep track of entities not flattened
      (if (not (member etype
      '("3DFACE" "ARC" "ATTDEF"
      "CIRCLE" "DIMENSION" "ELLIPSE"
      "HATCH" "INSERT" "LINE"
      "LWPOLYLINE" "MTEXT" "POINT"
      "POLYLINE" "SOLID" "TEXT"
      )
      )
      )
      (progn ;leave others alone
      (setq numnot (1+ numnot))
      (if (/= 0.0 (car (reverse (assoc 10 elist))))
      (progn ;add it to special list if Z /= 0
      (setq numno0 (1+ numno0))
      (ssadd ename ssno0)
      )
      )
      )
      )

      ;;Change group 10 Z coordinate to 0 for listed entity types.
      (if (member etype
      '("3DFACE" "ARC" "ATTDEF" "CIRCLE"
      "DIMENSION" "ELLIPSE" "HATCH" "INSERT"
      "LINE" "MTEXT" "POINT" "POLYLINE"
      "SOLID" "TEXT"
      )
      )
      (setq elist (zeroz 10 elist) ;change entities in list above
      numchg (1+ numchg)
      )
      )

      ;;Change group 11 Z coordinate to 0 for listed entity types.
      (if (member etype
      '("3DFACE" "ATTDEF" "DIMENSION" "LINE" "TEXT" "SOLID")
      )
      (setq elist (zeroz 11 elist))
      )

      ;;Change groups 12 and 13 Z coordinate to 0 for SOLIDs and 3DFACEs.
      (if (member etype '("3DFACE" "SOLID"))
      (progn
      (setq elist (zeroz 12 elist))
      (setq elist (zeroz 13 elist))
      )
      )

      ;;Change groups 13, 14, 15, and 16
      ;;Z coordinate to 0 for DIMENSIONs.
      (if (member etype '("DIMENSION"))
      (progn
      (setq elist (zeroz 13 elist))
      (setq elist (zeroz 14 elist))
      (setq elist (zeroz 15 elist))
      (setq elist (zeroz 16 elist))
      )
      )

      ;;Change each polyline vertex Z coordinate to 0.
      ;;Code provided by Vladimir Livshiz, 09-Oct-1998
      (if (= etype "POLYLINE")
      (progn
      (setq vrt ename)
      (while (not (equal (cdr (assoc 0 (entget vrt))) "SEQEND"))
      (setq elist (entget (entnext vrt)))
      (setq crz (cadddr (assoc 10 elist)))
      (if (/= crz 0)
      (progn
      (zeroz 10 elist)
      (entupd ename)
      )
      )
      (setq vrt (cdr (assoc -1 elist)))
      )
      )
      )

      ;;Special handling for LWPOLYLINEs
      (if (member etype '("LWPOLYLINE"))
      (progn
      (setq elist (subst (cons 38 0.0) (assoc 38 elist) elist)
      numchg (1+ numchg)
      )
      (entmod elist)
      )
      )

      (setq i (1+ i)) ;next entity
      )
      (prompt " Done.")

      ;;Print results
      (prompt (strcat "n" (itoa numchg) " object(s) flattened."))
      (prompt
      (strcat "n" (itoa numnot) " object(s) not flattened.")
      )

      ;;If there any entities in ssno0, show them
      (if (/= 0 numno0)
      (progn
      (prompt (strcat " ["
      (itoa numno0)
      " with non-zero base points]"
      )
      )
      (getstring
      "nPress enter to see non-zero unchanged objects… "
      )
      (command "._SELECT" ssno0)
      (getstring "nPress enter to unhighlight them… ")
      (command "")
      )
      )
      )
      )

      (command "._UCS" "_Restore" tmpucs "._UCS" "_Delete" tmpucs)
      (command "._UNDO" "_End")
      (setvar "CMDECHO" oldcmd)
      (setq *error* olderr)
      (princ)
      )

      (prompt
      "nFLATTEN version 2k.01 loaded. Type FLATTEN to run it."
      )
      (princ)

    • #48766
      StuffStuff
      משתתף
      Offline
      Topics: 10
      Replies: 1223
      Been thanked: 0 times

      תודה על הליספ דוד ! 🙄

      מוטב להעלות את הקובץ באמצעות – http://upfree.net/

מציג 13 תגובות משורשרות
  • יש להתחבר למערכת על מנת להגיב.