Initial commit

This commit is contained in:
2018-11-26 22:23:22 +01:00
parent 317403389d
commit 86753f6ca0
50 changed files with 4573 additions and 1 deletions

106
downloaded/ArcToLine.lsp Normal file
View File

@@ -0,0 +1,106 @@
(defun c:ArcToLine (/ *error* blg blk ent objts cnt blgLoc pts stp mxp cur
ent2d)
(vl-load-com)
(defun *error* (msg)
(and uFlag (vla-EndUndoMark doc))
(and ov (mapcar (function setvar) vl ov))
(and msg
(or (wcmatch (strcase msg) "*BREAK,*CANCEL*,*EXIT*")
(princ (strcat "\n** Error: " msg " **"))
)
)
(princ)
)
(defun blg (ent num / blg)
(repeat num
(setq blg (cons (list
(vla-getbulge ent (setq num (1- num)))
(trans (vlax-safearray->list
(variant-value
(vla-Get-coordinate ent num)
)
)
0
1
)
)
blg
)
)
)
)
(setq doc (vla-get-ActiveDocument (vlax-get-acad-object))
vl '("CMDECHO" "OSMODE" "ORTHOMODE")
ov (mapcar (function getvar) vl)
)
(prompt "\nSelect LWPOLYLINE To convert:")
(if
(and
(setq uFlag (not (vla-StartUndoMark doc)))
(mapcar (function setvar) vl '(0 0 0))
(setq pts nil ent (car (entsel "\nSelect Polyline Boundary:\n")))
(eq (cdr (assoc 0 (entget ent))) "LWPOLYLINE")
(setq alen (getdist "\nEnter line ncrement length: "))
)
(progn
(setq objts (vlax-ename->vla-object ent))
(setq cnt 0
blgLoc (blg objts (cdr (assoc 90 (entget ent))))
)
(foreach itm blgLoc
(setq cnt (1+ cnt))
(if (= (car itm) 0.0)
(setq pts (cons (trans (cadr itm) 1 0) pts))
(progn
(setq pts (cons (trans (cadr itm) 1 0) pts))
(setq stp (if (zerop
(setq cur (vlax-curve-getDistAtPoint
objts
(trans (cadr itm) 1 0)
)
)
)
(vla-get-length objts)
cur
)
nxp (if (>= (1+ cnt) (cdr (assoc 90 (entget ent))))
(vla-get-length objts)
(vlax-curve-getDistAtPoint
objts
(trans (cadr (nth cnt blgLoc)) 1 0)
)
)
)
(while (< (setq stp (+ stp alen)) nxp)
(setq
pts (cons (vlax-curve-getPointAtDist objts stp) pts)
)
)
)
)
)
clr
(if pts
(progn
(setq
ent2d (entmakex
(append
(list (cons 0 "LWPOLYLINE")
(cons 100 "AcDbEntity")
(cons 100 "AcDbPolyline")
(cons 90 (length pts))
(cons 70 0)
)
(mapcar (function (lambda (p) (cons 10 p))) pts)
)
)
)(entdel ent)
)
)
(setq uFlag (vla-EndUndoMark doc))
)
)
(*error* nil)
(princ)
)