Visual LISP, AutoLISP and General Customization
cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 

Creating a Riser From blocks inserted on the floor plan

12 REPLIES 12
Reply
Message 1 of 13
LSFiretrol
2033 Views, 12 Replies

Creating a Riser From blocks inserted on the floor plan

I'm looking for an easy way to generate a on-line riser diagram of blocks that have been inserted on a floor plan.

Here's what I was thinking.

For every instance where the block  SLC_DEVICE IS insert on the drawing, the routine would insert the block listed in the "TYPE" and place text equal to what is listed in the "ADDRESS".  The TYPE is the actual block name.

 

Each one of these blocks have a tag of TYPE and ADDRESS.  What is in the TYPE tag is the block name of what should be inserted and what is in the ADDRESS tag is the text that should be inserted under the block.

 

So for example; the routine would find the first instance and the tag TYPE which is "Smoke_Detector" and the tag ADDRESS which is 01:03:001.  The routine would insert the block "Smoke_Detector" with the text "01:03:001" directly under it.  It would insert the next instance the same way a specified distance from the last; so on so on so on until all instances of the BLOCK (SLC_DEVICE ) have been inserted.

 

The other part of this would be the Block "NAC&SPK_Circuit" but you would use the Tags "Type", "Candela" AND "NacCkt" to generate the one liner.

 

You will see the results of each type on the drawing.  The drawing attached has all the blocks mentioned here.

12 REPLIES 12
Message 2 of 13
javtorres
in reply to: LSFiretrol

Hi Firetrol, can you , please upload a floor plant dwg , or send it off line 

Message 3 of 13
javtorres
in reply to: javtorres

Any news??

Message 4 of 13
LSFiretrol
in reply to: javtorres

Try this one.  Its the last one we did.  The only problem is you wont be able to pick up all the devices shown on the floor plans because at the time we used several different blocks, for example we used SLC_Device and SLC_Module.  I wanted to siplify the Lisp request so I only asked that it pick up the block SLC_Device.  Same is true for NacSpk_Circuit.  Thats the I want to have the Lisp pick up but this drawing has three different blocks.  At least this would be a test.  Does this help?

Message 5 of 13
pbejse
in reply to: LSFiretrol

It would help if you also show the completed "Riser" that goes with your sample drawing LSFiretrol.

 

Message 6 of 13
LSFiretrol
in reply to: pbejse

I have attached a riser we did for this project.  To make the floor plan file smaller I deleted the second floor.  This riser shows the firest and second.  Also, I understand it wouldnt be possible to place the interconnections but for us the time consuming part is adding the individual symbols on the circuits they belong.  If it wasnt a requirement by our City reviewer I wouldnt do it at all.  Sometimes it takes us longer to generate a riser than the actual floor plan.  I truly appreciate the groups help on this.  You guys rock.  If you need something else let me know.

Message 7 of 13
pbejse
in reply to: LSFiretrol


@LSFiretrol wrote:

I have attached a riser we did for this project. ...... If you need something else let me know.


Yeah, an aspirin, Dont even know where to start. It may take some time for me to understand the diagram flow.

Its all greek to me.

 

Smiley Happy

Message 8 of 13
LSFiretrol
in reply to: pbejse

It would be too much to expect what I attached.  What I would hope for is the Block SLC_Device simple be inserted in one huge line.  Doesnt matter how many symbols.  The designer would then break it into managable pieces.  The NacSpk_Circuit block would be the many small lines of sysmbols.  I woundnt try to arrange them in levels.  Just single lines like the first Teser Drawing I attached. 

I do have a new bottle of Aspirin if you need me to forward you a few.

Message 9 of 13
pbejse
in reply to: LSFiretrol

 


@LSFiretrol wrote:
.... to place the interconnections but for us the time consuming part is adding the individual symbols on the circuits they belong. ...

What I would hope for is the Block SLC_Device simple be inserted in one huge line.  Doesnt matter how many symbols.  The designer would then break it into managable pieces.  The NacSpk_Circuit block would be the many small lines of sysmbols. ....


 

Lets say. i collected all or via selection the "SLC_Device" and their values. Now which symbol goes with what value?  The same goes for NacSpk_Circuit block values.

 

I honestly think what your asking is NOT that hard. Just need to understand it is all.

 

Here's a sample code for SLC_Device

 

(Defun c:demo ( / values blk pt )
   (if (setq values nil
            blk    (ssget '((2 . "SLC_Device")))
      )
    (progn
      (repeat (setq i (sslength blk))
       (Setq values (cons (cadr
                     (assoc
                       "ADDRESS"
                       (mapcar '(lambda (at)
                                  (list (vla-get-tagstring at)(vla-get-textstring at)))
                         (vlax-invoke 
                         (vlax-ename->vla-object (ssname blk (Setq i (1- i))))
                         'GetAttributes)
                               )
                     )
                   )
                   values
                 )
        )
      )
      (setq pt (getpoint "\nStart point"))
      (foreach itm (acad_strlsort values)
        (entmakex
          (list
            (cons 0 "TEXT")
            (cons 10 pt)
            (cons 11 pt)
            '(40 . 9)
            '(41 . 0.80)
            '(72 . 4)
            '(73 . 3)
            (cons 1 itm)
          )
        )
;;	This line will show you where symbol would be place	;;
        (command "_point" (polar pt (/ pi 2.0) 20))
;;								;;
        (setq pt (polar pt 0 80))
       
      )
    )
  )(princ)
)

 HTH

 

Message 10 of 13
LSFiretrol
in reply to: pbejse

The actual symbol to be inserted is the block name in the tag "TYPE". For example.....Smoke_Detector.

Sent from my iPhone
Message 11 of 13
pbejse
in reply to: LSFiretrol

I figured as much.

 

From your sample diagram from duct detector to heat detector to smoke detector. just need to know how you guys determine what symbol goes with what value. if you get a chance to try the code i posted you will see the "point" entity where the synbol would be place. We can even add the "connecting lines"

 

It appears you're "out of the office". Keep me posted till then.

 

Message 12 of 13
thajmul2501
in reply to: pbejse


@pbejse wrote:

 


@LSFiretrol wrote:
.... to place the interconnections but for us the time consuming part is adding the individual symbols on the circuits they belong. ...

What I would hope for is the Block SLC_Device simple be inserted in one huge line.  Doesnt matter how many symbols.  The designer would then break it into managable pieces.  The NacSpk_Circuit block would be the many small lines of sysmbols. ....


 

Lets say. i collected all or via selection the "SLC_Device" and their values. Now which symbol goes with what value?  The same goes for NacSpk_Circuit block values.

 

I honestly think what your asking is NOT that hard. Just need to understand it is all.

 

Here's a sample code for SLC_Device

 

(Defun c:demo ( / values blk pt )
   (if (setq values nil
            blk    (ssget '((2 . "SLC_Device")))
      )
    (progn
      (repeat (setq i (sslength blk))
       (Setq values (cons (cadr
                     (assoc
                       "ADDRESS"
                       (mapcar '(lambda (at)
                                  (list (vla-get-tagstring at)(vla-get-textstring at)))
                         (vlax-invoke 
                         (vlax-ename->vla-object (ssname blk (Setq i (1- i))))
                         'GetAttributes)
                               )
                     )
                   )
                   values
                 )
        )
      )
      (setq pt (getpoint "\nStart point"))
      (foreach itm (acad_strlsort values)
        (entmakex
          (list
            (cons 0 "TEXT")
            (cons 10 pt)
            (cons 11 pt)
            '(40 . 9)
            '(41 . 0.80)
            '(72 . 4)
            '(73 . 3)
            (cons 1 itm)
          )
        )
;;	This line will show you where symbol would be place	;;
        (command "_point" (polar pt (/ pi 2.0) 20))
;;								;;
        (setq pt (polar pt 0 80))
       
      )
    )
  )(princ)
)

 HTH

 


hi 

same as i need like what he said.

i could not select the object according to your lisp code. anything problem in the code. could you solve it.

Message 13 of 13
TSQDD
in reply to: thajmul2501

Hello,

 

I would like to jump in on this conversation if I may.

 

I too do fire alarm systems and the riser diagrams are a serious pain.

 

I would like to send someone a routine I have that has errors, but I do not wish to give away my custom blocks or the routine as it took me a long time to create the blocks and the routine was done by someone else.

 

So, if someone can assist me via my business email that would be much appreciated.

 

Thank you in advance.

 

Tim Jaronik

T-Square Drafting & Design, LLC

(907) 355-4035

tim@tsquareusa.com

Can't find what you're looking for? Ask the community or share your knowledge.

Post to forums  

Autodesk Design & Make Report

”Boost