这应该让你开始:
- (vl-load-com)
- (defun c:DimSplit () (c:DimensionSplit))
- (defun c:DimensionSplit (/ ss pt e data s)
- (if (and (setq ss (ssget ":S:E:L" '((0 . "DIMENSION"))))
- (setq pt (trans (getpoint "\nPick Seperating point: ") 1 0))
- )
- (progn
- (entmod
- (subst
- (cons 14 pt)
- (assoc 14 (setq data (entget (setq e (ssname ss 0)))))
- data
- )
- )
- (entupd e)
- (setq s (vla-get-scalefactor (vlax-ename->vla-object e)))
- (entlast)
- (entmake
- (list
- (cons 0 "DIMENSION")
- (cons 100 "AcDbEntity")
- (cons 67 0)
- (assoc 8 data)
- (cons 100 "[color="red"]AcDbDimension[/color]")
- (assoc 10 data)
- (assoc 11 data)
- (assoc 70 data)
- (assoc 1 data)
- (assoc 52 data)
- (assoc 53 data)
- (assoc 54 data)
- (assoc 51 data)
- (assoc 210 data)
- (assoc 3 data)
- (cons 100 "[color="red"]AcDbAlignedDimension[/color]")
- (cons 13 pt)
- (assoc 14 data)
- (assoc 15 data)
- (assoc 16 data)
- (assoc 40 data)
- (cons 100 "[color="red"]AcDbRotatedDimension[/color]")
- )
- )
- (vla-put-scalefactor (vlax-ename->vla-object (entlast)) s)
- )
- )
- (princ)
- )
|