- Marcar como nuevo
- Favorito
- Suscribir
- Silenciar
- Suscribirse a un feed RSS
- Resaltar
- Imprimir
- Denunciar
In very simplest terms, here's a way to impose one Polyline's vertices on another, with a single pick on each rather than grip-editing individual vertices:
(defun C:MPV ; = Match Polyline Vertices
(/ source target)
(setq
source (vlax-ename->vla-object (car (entsel "\nSource Polyline for vertices to impose on target: ")))
target (vlax-ename->vla-object (car (entsel "\nTarget Polyline to match it: ")))
); setq
(vla-put-coordinates target (vla-get-coordinates source))
)
So you would change the one, Copy that to the right place in another floor's plan, use MPV to impose its vertices on the one in that other floor, Move the copy to the next floor, MPV that one, Move the copy to....
In the end, eliminate the copy. REGEN to update the Field values for the change areas.
But the same potential issues apply. Non-zero widths would not carry across if different. Arc segments could cause trouble [even with the same segments being arcs, if the vertices at their ends changed, their bulge factors would probably have changed, too, and that will not be dealt with by just imposing the vertex locations]. You could replace all their vertex and width and bulge-factor entries in entity data, wholesale, instead of going with the Coordinates VLA property, which would be possible though a little more involved. If a "heavy" Polyline has been Fit- or Spline-curved, I'm not sure what would happen [I haven't experimented].