明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 606|回复: 4

[提问] 帮忙修改下这个插件

[复制链接]
发表于 2022-7-13 17:15 | 显示全部楼层 |阅读模式
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 ...
"觉得好,就打赏"
还没有人打赏,支持一下
发表于 2022-7-13 17:15 | 显示全部楼层
本帖最后由 wzg356 于 2022-7-13 21:56 编辑

只是这样? 你可以自己试着改的 见图  @ -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 "OSMODE" 0)
        
        ;(command "DIMLINEAR" pt1 pt2-2 "@ -2,0")
        (command "DIMLINEAR" pt1-2 pt2 "@ 2,0")
        
        (command "DIMLINEAR" pt2 pt2-2 "@ 0,2")
        
        (setvar "OSMODE" mode)
        
)

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

x
回复

使用道具 举报

 楼主| 发表于 2022-7-13 17:16 | 显示全部楼层
目前是左边的效果,我想要右边的效果
回复

使用道具 举报

 楼主| 发表于 2022-7-13 18:20 | 显示全部楼层
帖子,这么快沉了吗
回复

使用道具 举报

 楼主| 发表于 2022-7-14 10:50 | 显示全部楼层
wzg356 发表于 2022-7-13 17:15
只是这样? 你可以自己试着改的 见图  @ -2,0 表示尺寸线偏移距离dx dy
(defun C:z6(/ col mn mode pt1  ...

谢谢
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|CAD论坛|CAD教程|CAD下载|联系我们|关于明经|明经通道 ( 粤ICP备05003914号 )  
©2000-2023 明经通道 版权所有 本站代码,在未取得本站及作者授权的情况下,不得用于商业用途

GMT+8, 2024-5-3 03:17 , Processed in 0.258906 second(s), 25 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表