Results 1 to 1 of 1

Thread: Old Bell JMOS programs to fill step markers and boarders

  1. #1
    I could stop if I wanted to
    Join Date
    2006-04
    Posts
    466
    Login to Give a bone
    0

    Default Old Bell JMOS programs to fill step markers and boarders

    [ Moderator Action = ON ] What are [ CODE ] tags... [ Moderator Action = OFF ]

    ;This program numbers JMOS(Bell symbol) blocks from left to right and top to bottom.
    ;(see attachments)

    Code:
    (DEFUN C:JFILL (/ VCT FLTR SN CNT LUP CJS JSS CJSL CT LP CCJ CT2 LP2 CJ MST CJL CJP CJX CJH CJY CNT JSSL CT3 LP3 JN JAN JANL SNA SNV NSNA NJANL)
    (PROMPT "\n*JMOS STEP FILL*")
    (SETQ VCT (GETVAR "VIEWCTR"))
    (SETQ FLTR '((2 . "4")))
    (SETQ SN 1)
    (SETQ CNT 1)
    (SETQ LUP 1)
    (WHILE LUP
    (SETQ CJS (SSGET "X" FLTR))
    (IF (/= CJS NIL) (PROGN
    (SETQ JSS (SSADD))
    (SETQ CJSL (SSLENGTH CJS))
    (SETQ CT (- CJSL 1))
    (SETQ LP 1)
    (WHILE LP
    (SETQ CCJ (+ (CAR VCT) 900000))
    (SETQ CT2 (- CJSL 1))
    (SETQ LP2 1)
    (WHILE LP2
    (SETQ CJ (SSNAME CJS CT2))
    (SETQ MST (SSMEMB CJ JSS))
    (SETQ CJL (ENTGET CJ))
    (SETQ CJP (CDR (ASSOC 10 CJL))) 
    (SETQ CJX (CAR CJP))
    (IF (AND (= MST NIL) (< CJX CCJ)) (PROGN (SETQ CCJ CJX) (SETQ CJH CJ)) )
    (SETQ CT2 (- CT2 1))
    (IF (< CT2 0) (SETQ LP2 NIL))
    );END LP2
    (SETQ JSS (SSADD CJH JSS))
    (SETQ CT (- CT 1))
    (IF (< CT 0) (SETQ LP NIL))
    );END LP
    (SETQ CJS JSS)
    (SETQ JSS (SSADD))
    (SETQ CT (- CJSL 1))
    (SETQ LP 1)
    (WHILE LP
    (SETQ CCJ (+ (CAR (CDR VCT)) 900000))
    (SETQ CT2 (- CJSL 1))
    (SETQ LP2 1)
    (WHILE LP2
    (SETQ CJ (SSNAME CJS CT2))
    (SETQ MST (SSMEMB CJ JSS))
    (SETQ CJL (ENTGET CJ))
    (SETQ CJP (CDR (ASSOC 10 CJL))) 
    (SETQ CJY (CAR (CDR CJP)))
    (IF (AND (= MST NIL) (< CJY CCJ)) (PROGN (SETQ CCJ CJY) (SETQ CJH CJ)) )
    (SETQ CT2 (- CT2 1))
    (IF (< CT2 0) (SETQ LP2 NIL))
    );END LP2
    (SETQ JSS (SSADD CJH JSS))
    (SETQ CT (- CT 1))
    (IF (< CT 0) (SETQ LP NIL))
    );END LP
    (SETQ JSSL (SSLENGTH JSS))
    (SETQ CT3 (- JSSL 1))
    (SETQ LP3 1)
    (WHILE LP3
    (SETQ JN (SSNAME JSS CT3))
    (SETQ JAN (ENTNEXT JN))
    (SETQ JANL (ENTGET JAN))
    (SETQ SNA (ASSOC 1 JANL))
    (SETQ SNV (CDR SNA))
    (SETQ NSNA (CONS 1 (ITOA SN)))
    (SETQ NJANL (SUBST NSNA SNA JANL))
    (ENTMOD NJANL)
    (SETQ SN (+ SN 1))
    (SETQ CT3 (- CT3 1))
    (IF (< CT3 0) (SETQ LP3 NIL))
    );END LP3
    ));END PROGN/IF
    (SETQ CNT (+ CNT 1))
    (IF (= CNT 2) (PROGN (SETQ FLTR '((2 . "2"))) (SETQ SN 31)))
    (IF (= CNT 3) (PROGN (SETQ FLTR '((2 . "WL1"))) (SETQ SN 61)))
    (IF (= CNT 4) (SETQ LUP NIL))
    );END LUP
    (COMMAND "REGEN")
    (PRINC)
    );END JFILL
    
    ;and this program fills the border with the range of JMOS symbols (all below)
    ;(see attachments)
    
    
    ; jscan.lsp
    ;
    ;
    ;   5-13-94     Revise to 'Barryize' JMOS format
    ;
    ;
    (defun c:jscan()
        (jscan_main)
        (princ)
    ) jscan
    (defun jscan_main()
        (setq jsum nil
              jstep nil
              jmos_list nil
              temp_list nil
              duplist nil
              jmos_sym_list
                  (reverse
                      (list "4" "2" "WL1")    ; jmos symbols MUST be listed in
                  )                           ; order of desired occurence
              count
                  (1-
                      (length jmos_sym_list)
                  )
              dupflag nil
              dupmsg "WARNING!  DUPLICATE OCCURENCE OF JMOS STEP "
        ); setq
        (while
            (>= count 0)
            (setq sset
                (getsset
                    (nth count jmos_sym_list)
                )
                duplist nil
            )
            (if sset
                (getjstep)
                (dfltjstep)
            ); end if
            (setq jsum
                (cons loval jsum)
            )
            (setq jsum
                (cons hival jsum)
            )
            (setq count
                (1- count)
            )
        ); end while
        (updjmos)
        (if dupflag
            (textscr)
        ); end if
    );jscan_main
    ;
    ;
    ;
    ;
    ;
    ;
    (defun getjstep()
        (setq loval 999)
        (setq hival 0)
        (setq entname
            (ssname sset 0)
        )
        (setq jstep nil)
        (while entname
            (setq ent
                (entget entname)
            )
            (setq attval
                (dxf 1
                    (entget
                        (entnext
                            (dxf -1 ent)
                        )
                    )
                )
            )
            (cond
                (
                    (not
                        (eq
                            (atoi attval)
                            0
                        )
                    )
                    (dupstep)
                    (setq jstep
                        (cons
                            (atoi attval)
                            jstep
                        )
                    )
                )
            ); end if
            (ssdel entname sset)
            (setq entname
                (ssname sset 0)
            )
        ); end while
        (foreach curval jstep
            (setq loval
                (min curval loval)
            )
        )
        (foreach curval jstep
            (setq hival
                (max curval hival)
            )
        )
        (setq loval
            (itoa loval)
        )
        (setq hival
            (itoa hival)
        )
        (if
            (or
                (<
                    (atoi loval)
                     1
                 )
                (<
                    (atoi hival)
                    1
                )
            )
            (dfltjstep)
        ); end if
        (if
            (= loval hival)
            (setq
                hival
                    "-"
            )
        )
    );getjstep
    ;
    ;
    ;
    (defun dfltjstep()
        (setq loval "-")
        (setq hival "-")
    );dfltjstep
    ;
    ;
    ;
    ;
    (defun updjmos(/ ts)
        (setq sset
            (getsset "jmos")
        )
        (setq ts (getsset "titlea"))
        (if (= ts nil) (setq ts (getsset "titleb")))
        (if
            (not sset)
            (setq sset
                ts
            )
        ); end if
        (setq entname
            (ssname sset 0)
        )
        (setq ent
            (entget entname)
        )
        (setq jmos_list nil)
        (while
            (not
                (eq
                    (dxf 0 ent)
                    "SEQEND"
                )
            )
            (if
                (eq
                    (dxf 2 ent)
                    "WL"
                )
                (setq jmos_list
                    (cons
                        (dxf -1 ent)
                        jmos_list
                    )
                )
            ); end if
            (setq ent
                (entget
                    (entnext
                        (dxf -1 ent)
                    )
                )
            )
        ); end while
        (cond
            (
                (eq
                    (length jmos_list)
                    8
                )
                (setq jmos_list
                    (reverse jmos_list)
                )
                (setq count 7)
                (while
                    (> count 1)
                    (setq temp_list
                        (cons
                            (nth count jmos_list)
                            temp_list
                        )
                    )
                    (setq count
                        (1- count)
                    )
                ); end while
                (setq jmos_list
                    (reverse temp_list)
                )
            )
        ); end cond
        (setq count 0)
        (while (< count 6)
            (setq ent
                (entget
                    (nth count jmos_list)
                )
            )
            (setq new
                (cons 1
                    (nth count jsum)
                )
            )
            (setq old
                (assoc 1 ent)
            )
            (setq ent
                (subst new old ent)
            )
            (entmod ent)
            (setq count
                (1+ count)
            )
        ); end while
        (entupd entname)
    );updjmos
    ;
    ;
    (defun dupstep()
        (cond
            (
                (member attval duplist)
                (alert
                    (print
                        (strcat dupmsg attval)
                    )
                )
                (setq dupflag 1)
            )
        )
        (setq duplist
            (cons attval duplist)
        )
    ); dupstep
    ;
    (jscan_main)
    ;
    (princ)
    Attached Files Attached Files
    Last edited by Opie; 2007-01-05 at 02:20 PM. Reason: [CODE] tags added, see Moderator Action

Similar Threads

  1. CV33-2L: Step-by-Step Photorealistic Renderings in Autodesk® Land Desktop
    By Autodesk University in forum Civil Infrastructure
    Replies: 0
    Last Post: 2013-04-08, 08:26 PM
  2. Bring back step by step tutorials...
    By No more AUGI for me. in forum Revit Architecture - Wish List
    Replies: 2
    Last Post: 2011-09-14, 05:42 AM
  3. Need Plan Markers like Section Markers
    By Chirag Dedhia in forum Revit - Platform
    Replies: 0
    Last Post: 2009-03-24, 12:13 PM
  4. Looking for step by step guide for Civil 3D 2006 or 2007
    By sergio_garces_salgado in forum AutoCAD Civil 3D - General
    Replies: 6
    Last Post: 2006-08-23, 06:12 PM
  5. Windows XP - add/remove programs only shows programs listed with "A" after ACAD 2002 installation
    By marc.griffies in forum Operating Systems
    Replies: 3
    Last Post: 2006-08-08, 05:23 PM

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •