- 积分
- 25793
- 明经币
- 个
- 注册时间
- 2020-11-13
- 在线时间
- 小时
- 威望
-
- 金钱
- 个
- 贡献
-
- 激情
-
|
50明经币
;zddw 框选最大外形标注 外标注
;zddn 框选最大外形标注 内标注
(defun C:6(/ col mn mode pt1 pt1-2 pt2 pt2-2)
(setq mn (zdwkgj (ssget)))
(setq pt1 (car mn))
(setq pt2 (cadr mn))
(setq pt1-2 (list (car pt2) (cadr pt1) 0.0))
(setq pt2-2 (list (car pt1) (cadr pt2) 0.0))
(setq mode (getvar "OSMODE"))
(setvar "OSMODE" 0)
(command "DIMLINEAR" pt1 pt2-2 "@ -2,0")
(command "DIMLINEAR" pt2 pt2-2 "@ 0,2")
(setvar "OSMODE" mode)
)
(defun C:zddn(/ col mn mode pt1 pt1-2 pt2 pt2-2)
(setq mn (zdwkgj (ssget)))
(setq pt1 (car mn))
(setq pt2 (cadr mn))
(setq pt1-2 (list (car pt2) (cadr pt1) 0.0))
(setq pt2-2 (list (car pt1) (cadr pt2) 0.0))
(setq mode (getvar "OSMODE"))
(setvar "OSMODE" 0)
(command "DIMLINEAR" pt1 pt2-2 "@ 100,0.3")
(command "DIMLINEAR" pt2 pt2-2 "@ 0,-100")
(setvar "OSMODE" mode)
)
(defun REC4d(xzj / fourxy mn one_x one_y onexy pt1 pt2 threexy twoxy)
(setq mn (zdwkgj xzj))
(setq pt1 (car mn))
(setq pt2 (cadr mn))
(setq one_x (+ (CAR PT1) (/ (- (car pt2) (CAR PT1)) 2)))
(setq one_y (+ (CADR PT1) (/ (- (caDr pt2) (CADR PT1)) 2)))
(setq onexy (list one_x (cadr pt1) 0.0))
(setq twoxy (list one_x (cadr pt2) 0.0))
(setq threexy (list (car pt1) one_y 0.0))
(setq fourxy (list (car pt2) one_y 0.0))
(fy_makeredline onexy twoxy)
(fy_makeredline threexy fourxy)
)
(defun fy_makeredline(pt1 pt2) ;生成一条redline ;参数:pt1:起点,pt2:终点,均为三维点,即(x y z)
(entmakex (list '(0 . "line") '(62 . 1) (cons 10 pt1) (cons 11 pt2)))
; entmakex 创建一个新对象或图元,赋给它一个句柄和图元名(但不指定所有者),并返回新图元的名称
;图元定义数据表,其格式与 entget 函数所返回表的格式相似。elist 参数必须包含创建图元的全部必要数据。
;如果省略了任何一个必须的定义数据,该函数就会返回 nil 并拒绝创建该图元。如果省略了可选的定义数据(如图层),
; entmakex 使用缺省值。
;cons 向表的头部添加一个元素,或构造一个点对
)
(defun zdwkgj(ss / i m n o)
(repeat (setq i (sslength ss))
(if
(and
(setq o (vlax-ename->vla-object (ssname ss (setq i (1- i)))))
(vlax-method-applicable-p o 'getboundingbox)
(not
(vl-catch-all-error-p
(vl-catch-all-apply 'vla-getboundingbox (list o 'a 'b))
)
)
)
(setq m (cons (vlax-safearray->list a) m)
n (cons (vlax-safearray->list b) n)
)
)
)
(if (and m n)
(mapcar '(lambda (a b) (apply 'mapcar (cons a b)))
'(min max)
(list m n)
)
)
)
|
附件: 您需要 登录 才可以下载或查看,没有账号?注册
最佳答案
查看完整内容
只是这样? 你可以自己试着改的 见图 @ -2,0 表示尺寸线偏移距离dx dy
(defun C:z6(/ col mn mode pt1 pt1-2 pt2 pt2-2)
(setq mn (zdwkgj (ssget)))
(setq pt1 (car mn))
(setq pt2 (cadr mn))
(setq pt1-2 (list (car pt2) (cadr pt1) 0.0))
(setq pt2-2 (list (car pt1) (cadr pt2) 0.0))
(setq mode (getvar "OSMODE"))
(setvar "OSMOD ...
|