- 积分
- 7533
- 明经币
- 个
- 注册时间
- 2019-3-21
- 在线时间
- 小时
- 威望
-
- 金钱
- 个
- 贡献
-
- 激情
-
|
(defun ssinters (ss / i num obj1 obj2 j interpts ptlist)
(setq i 0
num (sslength ss)
)
(while (< i (1- num))
(setq obj1 (ssname ss i)
obj1 (vlax-ename->vla-object obj1)
j (1+ i)
)
(while (< j num)
(setq obj2 (ssname ss j)
obj2 (vlax-ename->vla-object obj2)
interpts (vla-intersectwith
obj1
obj2
0
)
interpts (vlax-variant-value interpts)
)
(if (> (vlax-safearray-get-u-bound interpts 1) 0)
(progn
(setq interpts
(vlax-safearray->list interpts)
)
(while (> (length interpts) 0)
(setq ptlist (cons (list (car interpts)
(cadr interpts)
(caddr interpts)
)
ptlist
)
)
(setq interpts (cdddr interpts))
)
)
)
(setq j (1+ j))
)
(setq i (1+ i))
)
ptlist
)
(defun c HTUKJZCOR00YUANINT1 ()
(setvar "cmdecho" 0)
(setvar "osmode" 0) (setvar "orthomode" 0) (command "UCS" "W")
(command "layer" "on" "40" "")
(setvar "clayer" "1")
(vl-load-com)
(setvar "osmode" 0)
;;;(setvar "osmode" 15359)
(princ "\n★ 功能:批量模板基准角插入 (碰数点+基准) ")
(princ "\n★ 请选择两条相交的直线 (可以多选 批量选择)(非多段线):")
(command "undo" "be")
;;; (if (not (setq ss (ssget '((0 . "*LINE,ARC,CIRCLE,ELLIPSE")))))
(if (not (setq ss (ssget '((0 . "*LINE,LWPOLYLINE")))))
(progn (princ "\n提示:未选取图元,程序退出。\n") (exit))
)
;;; (command "explode" ss)
(setq acad (vlax-get-acad-object))
(setq acaddocument (vla-get-activedocument acad))
(setq mspace (vla-get-modelspace acaddocument))
;;; (setq blockname (cdr (assoc 2 (entget blockentname))))
;;; (setq blockentname "LHCENPOINT1")
(setq blockname "21-jzcor03YUAN")
(setq bili 1.0)
(initget 6)
(setvar "osmode" 0)
(setq ptlist (ssinters ss))
(foreach pt ptlist
;;;(command "_insert" "LHCENPOINT1" (vlax-3d-point ptlist) "1" "1" "1" "0")
(vla-insertblock mspace (vlax-3d-point pt) "21-jzcor00VVV.dwg" 1 1 1 0)
)
(command "undo" "e")
(setvar "osmode" 0)
(setvar "cmdecho" 1)
;;; (setvar "osmode" 15359)
(princ)
)这个程序是目前在用的 选择相交直线 可以在交点插入图块 |
|