Message 1 of 8
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report
(defun c:ChangePolylineArea (/ ss obj area scaleFactor currentArea)
(setq ss (ssget "_:L"))
(if ss
(progn
(setq obj (ssname ss 0))
(setq area 5.0) ; Desired area value
(setq currentArea (vla-get-area (vlax-ename->vla-object obj)))
(setq scaleFactor (sqrt (/ area currentArea)))
(setq centroid (vlax-safearray->list (vlax-variant-value (vla-getboundingbox (vlax-ename->vla-object obj)))))
(setq centerX (/ (+ (nth 0 centroid) (nth 2 centroid)) 2.0))
(setq centerY (/ (+ (nth 1 centroid) (nth 3 centroid)) 2.0))
(command "_.ucs" "_.object" obj "")
(command "_.scale" obj "" "_non" centerX "," centerY scaleFactor)
(princ "Area of selected polyline changed to 5.")
)
(princ "No polyline found.")
)
(princ)
)
Solved! Go to Solution.