Automated Placement of Pedestal Blocks Along Polyline for Flooring System in Large Projects

Automated Placement of Pedestal Blocks Along Polyline for Flooring System in Large Projects

nagaraj8DLF4
Participant Participant
282 Views
7 Replies
Message 1 of 8

Automated Placement of Pedestal Blocks Along Polyline for Flooring System in Large Projects

nagaraj8DLF4
Participant
Participant

Hi everyone,

I'm working on a large-scale flooring system project in AutoCAD 2024 where I need to place pedestal blocks along a Polyline that traces the walls and partitions. The flooring consists of tiles supported by two types of pedestals:

Cross-head pedestals: Placed at the intersections of 4 tile corners.

Flat-head pedestals: Placed around cut panel areas (typically along the perimeter or irregular spaces).

For this project, I need to place around 4000 to 6000 pedestal blocks, and doing this manually is extremely time-consuming and prone to error.

My goal is to automate this placement along the Polyline or surface boundary so that:

Crosshead pedestals are placed in a grid-like fashion (typically on the regular tile layout),

Flat-head pedestals are placed near edges or irregular (cut) tiles.

Has anyone worked on something similar, or is there a LISP routine, script, or tool/plugin you’d recommend automating this?

Any help or direction would be greatly appreciated as i need to work on multiple drawings with complex layouts and with curve partitions!

Thanks in advance!

0 Likes
283 Views
7 Replies
Replies (7)
Message 2 of 8

Sea-Haven
Mentor
Mentor

Pretty sure have seen insert block on grid points, will try to find. Else can be done. 

 

The outer edges seem to have different rules, if you set the red pline width to zero the pads are at different offsets from that line looks like a placement error. Check bottom line.I take it they should not protrude or have an offset gap. Why 2 pads on some lines ? What is pad max, min spacing no hints about that.

 

Yes there is a way to walk along a pline which has straights and curves, work out the spacing based on a fixed distance, just a hint draw an arc forward and look at forward intersection point.

SeaHaven_0-1750056989037.png

 

I think if you explain more how the red blocks are placed then some one may be able to help.

 

I did find this by Gile which finds intersections of lines it worked for internals when I drew new "LINES" instead of a POINT insert a block.

 

; Intersection of lines by Gile.

;;; Returns a list of points for each intersection of the lines in the selection set
(defun getIntersections (ss / i elst lines p1 p2 intersect points)
    ;; compute a list of start and end points for each selected line
    (repeat (setq i (sslength ss))
        (setq elst  (entget (ssname ss (setq i (1- i))))
              lines (cons (list (cdr (assoc 10 elst)) (cdr (assoc 11 elst))) lines)
        )
    )
    ;; for each pair of points, search for intersections with the following pairs
    (while (cdr lines)
        (setq p1    (caar lines)
              p2    (cadar lines)
              lines (cdr lines)
        )
        (foreach l lines
            (if (setq intersect (inters p1 p2 (car l) (cadr l)))
                (setq points (cons intersect points))
            )
        )
    )
    points
)

;;; test command which draws a point on each intersection of the selected lines
(defun c:test (/ ss points)
    (if (setq ss (ssget '((0 . "LINE"))))
        (progn
            (setq points (getIntersections ss))
            (foreach p points (entmake (list (cons 0 "POINT") (cons 10 p) (cons 62 1))))
        )
    )
(setvar 'pdmode 34) ; show points
    (princ)
)

SeaHaven_1-1750058331248.png

 

I think maybe draw grid lines and tiles on different layers. 

 

Others will probably comment also.

 

 

0 Likes
Message 3 of 8

nagaraj8DLF4
Participant
Participant

Thank you so much for your response!!

The square represents a floor tile mounted on the cross-head pedestals (Blue Color) and Flat head pedestals (Red). In few areas, i Had provided two flat head pedestals as the panels will be cut to accommodate within the walls and additional support has to be provided for its stability. This occurs rarely in the site as we mostly plot the layout with cut pieces of larger size.

 I create the array with a panel and blue pedestal together so that the cross-head pedestals will be placed along with the panels. My main issue was to plot the flat pedestals(Red) along the perimeter (Polyline) manually. It has been hard to plot is for large-scale high-rise towers with non - typical floors. 

0 Likes
Message 4 of 8

Sea-Haven
Mentor
Mentor

I wrote a do waffles for concrete slabs and they can be any shape including curves a similar task, the way around the problem may be start with the red pline. Pick the control point then draw grids over the shape. I do this with the waffles so end up with something like this as 1st step, 2nd step is draw tiles on another layer so can count them.

SeaHaven_0-1750059165486.png

Pad placed wrong there are a few in this task. A program should fix that problem, distance from insertion point = 49.9263 moved the block now Distance = 50.0000

SeaHaven_1-1750059348733.png

In the corner not sure about placement. Should it be more a 45 answer.

SeaHaven_2-1750059415970.png

Can you comment on these inconsistency please.

 

 

 

0 Likes
Message 5 of 8

ВeekeeCZ
Consultant
Consultant

For the perimeter blocks, the workflow could be to make an offset polyline, add a vertex at each crossing with the grid, then put a block into each vertex.

 

eekeeCZ_0-1750068656296.png

 

 

 

For the first part, a slight modification of this @CADaSchtroumpf 's routine, then block insertion is easy.

https://forums.autodesk.com/t5/visual-lisp-autolisp-and-general/add-vertices-to-selected-polylines-a...

 

 

(defun c:AddPerimBlocks ( / e i )
  (setq e (car (entsel "\nPolyligne de référence ?\n")))
  (repeat (setq i (fix (vlax-curve-getEndParam e)))
    (command "_insert" "PEDESTAL-PERIMETER" "_s" 1 "_r" 0 "_none" (vlax-curve-getpointatparam e (setq i (1- i)))))
  (princ))

 

Message 6 of 8

nagaraj8DLF4
Participant
Participant

the edge of the pad has to be placed on the polyline. My apologies 

0 Likes
Message 7 of 8

nagaraj8DLF4
Participant
Participant

I can create the Intersection with the off-setted Polyline. How can i Insert the block along with it? Should I Incorporate the above code in the previous code that you had shared throughthe link.

0 Likes
Message 8 of 8

nagaraj101400
Explorer
Explorer

This works perfect!.. Thanks!!!

0 Likes