明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 7249|回复: 34

[已解答] ,尺寸线性标注800远 各位版主大人~~~速度来赚钱了

[复制链接]
发表于 2013-10-23 12:32 | 显示全部楼层 |阅读模式
本帖最后由 cgmacby 于 2013-10-23 12:36 编辑




本帖子中包含更多资源

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

x
发表于 2013-10-26 16:23 | 显示全部楼层
  1. (defun c:tt ()
  2.   (if (and (setq p1 (getpoint "\n第一点: "))
  3.            (setq p2 (getpoint p1 "\n第二点: "))
  4.            (setq p3 (getpoint p2 "\n方向点: "))
  5.       )
  6.     (progn
  7.       (setq ang        (angle p1 p2)
  8.             r1        (+ ang (* pi 0.5))
  9.             p4        (inters p1 p2 p3 (polar p3 r1 10) nil)
  10.             p3        (polar p4 (angle p4 p3) 800)
  11.       )
  12.       (command "_dimaligned" "non" p1 "non" p2 "non" p3)
  13.     )
  14.   )
  15.   (princ)
  16. )

点评

good  发表于 2015-8-14 08:46

评分

参与人数 1明经币 +1 收起 理由
zctao1966 + 1 很给力!

查看全部评分

发表于 2014-3-14 14:17 | 显示全部楼层
小灰345 发表于 2014-3-14 12:45
太强大了,学习了!
请问院长能否改成800远可以自己输入指定,指定一次后按照这个值来标注,直到下一次修 ...
  1. (defun c:tt (/ p1 p2 p3 rad r1 p3 p4)
  2.   (setq dist (Udist 5 "" "离开距离<输入或鼠标直接量取>" dist nil))
  3.   (if (and (setq p1 (getpoint "\n第一点: "))
  4.            (setq p2 (getpoint p1 "\n第二点: "))
  5.            (setq p3 (getpoint p2 "\n方向点: "))
  6.       )
  7.     (progn (setq rad (angle p1 p2)
  8.                  r1  (+ rad (* pi 0.5))
  9.                  p4  (inters p1 p2 p3 (polar p3 r1 10) nil)
  10.                  p3  (polar p4 (angle p4 p3) dist)
  11.            )
  12.            (command "_dimaligned" "non" p1 "non" p2 "non" p3)
  13.            (while (setq p4 (getpoint "\n下一点<退出>: "))
  14.              (setq p4 (inters p1 p2 p4 (Polar p4 r1 100) nil))
  15.              (command "_dim" "con" "non" p4 "")
  16.            )
  17.            (command "_dim" "e")
  18.     )
  19.   )
  20.   (princ)
  21. )
发表于 2019-10-30 10:29 | 显示全部楼层
(defun c:tt(/ p1 p2 p4 temp ent elist pt10_old pt10_new *dim_dist)
  (if (and (setq p1 (getpoint "\n第一点: "))
                                (setq p2 (getpoint p1 "\n第二点: "))
      )
    (progn
      (setq rad (angle p1 p2)
                                r1(+ rad (* pi 0.5))
      )
                        (if (null *dim_dist)
                                (setq *dim_dist (* 5 (getvar "DIMSCALE")));;设定偏移默认值
                                (progn
                                        (princ"\n尺寸线偏移距离:")
                                        (princ *dim_dist)
                                )
                        )
                        (if(setq temp (getdist(strcat "\n请输入尺寸线偏移距离:<"(rtos *dim_dist) ">")))
                                (setq *dim_dist temp)
                        )
                        (command "_dimaligned" "non" p1 "non" p2 pause)
                        (setq ent (entlast)
                                elist(entget ent)
                                pt10_old (cdr(assoc 10 elist))
                                p4 (inters p1 p2 pt10_old (polar pt10_old r1 10) nil)
                                pt10_new (polar p4 (angle p4 pt10_old) *dim_dist);;;;距离
                                elist (subst (cons 10 pt10_new) (assoc 10 elist) elist)
                        )
                        (entmod elist)
                        (while (setq p4 (getpoint "\n下一点<退出>: "))
                                (setq p4 (inters p1 p2 p4 (Polar p4 r1 1000) nil))
                                (command "DIMCONTINUE" "non" p4)
                                (while (> (getvar "CMDACTIVE") 0) (command ""))
                        )
                )
        )
        (princ)
)
发表于 2022-5-14 18:04 | 显示全部楼层
本帖最后由 liunian0524 于 2022-5-16 08:38 编辑
xj6019 发表于 2019-11-26 10:46
谁能把17楼的和27楼的结合一下啊  ,命令运行后就先输入偏移值,并可以记忆便宜量,然后可以连续点击标注, ...

(defun c:tt3 (/ p1 p2 p3 rad r1 p3 p4)
(setvar "cmdecho" 0)
   (if (null *dim_dist)(setq *dim_dist (* 200 (getvar "dimscale"))));;设定偏移默认值
   (if(setq temp (getreal(strcat "\n指定尺寸线偏移距离:<"(rtos *dim_dist) ">")))(setq *dim_dist temp))  
   (if (and (setq p1 (getpoint "\n指定第一条尺寸界线原点:"))
            (setq p2 (getpoint p1 "\n指定第二条尺寸界线原点:"))
            (setq p3 (getpoint p2 "\n方向点: "))
       )
    (progn
          (setq rad (angle p1 p2)
                 r1  (+ rad (* pi 0.5))
                 p4  (inters p1 p2 p3 (polar p3 r1 10) nil)
                 p3  (polar p4 (angle p4 p3) *dim_dist)
           )
           (command "_dimaligned" "non" p1 "non" p2 "non" p3)
            (while (setq p4 (getpoint "\n指定第二条尺寸界线原点:<退出>: "))
             (setq p4 (inters p1 p2 p4 (polar p4 r1 100) nil))
             (command "dimcontinue" "non" p4 "")
             (while (> (getvar "cmdactive") 0) (command ""))
           )
    )
  )
  (princ)
)

评分

参与人数 1明经币 +1 收起 理由
xj6019 + 1 赞一个!

查看全部评分

发表于 2018-11-29 23:10 | 显示全部楼层
(defun c:tt ()
(setq old_lay (getvar "clayer")) ;将当前图层保存起来,以便以后的恢复
  (if (and (setq p1 (getpoint "\n第一点: "))
           (setq p2 (getpoint p1 "\n第二点: "))
           (setq p3 (getpoint p2 "\n方向点: "))
      )
    (progn
      (setq ang        (angle p1 p2)
            r1        (+ ang (* pi 0.5))
            p4        (inters p1 p2 p3 (polar p3 r1 10) nil)
            p3        (polar p4 (angle p4 p3) 800);尺寸标注长度
      )
(command "layer" "s" "DIM" "")  ;设置当前层DIM,可改成自己标注图层
      (command "_dimaligned" "non" p1 "non" p2 "non" p3) ;调用当前标注样式进行线性标注,切换当前标注样式 DIMSTYLE
    )
  )
(setvar "clayer"  old_lay ) ;恢复原来图层
  (princ)
)[/code]
发表于 2013-10-23 13:56 | 显示全部楼层
(DEFUN C:tt ()
(SETQ PT1 (GETPOINT "\n第一点 :"))
(SETQ PT2 (GETPOINT PT1 "\n第二点 :"))
(SETQ ANG (angle pt1 pt2))
(SETQ pt3 (polar pt2 (+ ang (* pi 0.5)) 800))
(COMMAND "_dimaligned" PT1 PT2 pt3)
)
简单写了个套套,因为我只会这么多,哈哈哈。。。。。。。
 楼主| 发表于 2013-10-23 14:17 | 显示全部楼层
本帖最后由 cgmacby 于 2013-10-23 14:29 编辑
hao3ren 发表于 2013-10-23 13:56
(DEFUN C:tt ()
(SETQ PT1 (GETPOINT "\n第一点 :"))
(SETQ PT2 (GETPOINT PT1 "\n第二点 :"))

谢谢,这个简单的就足够了,哈哈~~@hao3ren,还是有点儿小bug,标注轴网内部的时候出现了这个问题,直接压线了
谢谢hao3ren兄了~~

本帖子中包含更多资源

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

x

点评

emk
直接压线是因为没临时关闭捕捉  发表于 2013-10-23 21:15
发表于 2013-10-23 14:36 | 显示全部楼层
楼主的程序不错,就是在判断方向上,不是太好。要是可以选择判断方向的话,会更方便。目前程序得让设计人去判断,不太好?多谢,希望高手们可以改改。
发表于 2013-10-23 21:49 | 显示全部楼层
被楼主标题误导了,还以为800明经币求一个线性标注的程式呢。

点评

对,我也这样以为的  发表于 2015-8-14 08:37
发表于 2013-10-24 08:57 | 显示全部楼层
本帖最后由 寒林清远 于 2013-10-24 09:02 编辑

;用2楼的程序改一下就可以了
;t1在第1、4象限标注,t2在第2、3象限标注
(DEFUN C:t1 ()
(SETQ PT1 (GETPOINT "\n第一点 :"))
(SETQ PT2 (GETPOINT PT1 "\n第二点 :"))
(SETQ ANG (angle pt1 pt2))
(setq old_os (getvar "osmode"))
(setvar "osmode" 0)
(SETQ pt3 (polar pt2 (+ ang (* pi 0.5)) 800))
(COMMAND "_dimaligned" PT1 PT2 pt3)
(setvar "osmode" old_os)
(princ)
)

(DEFUN C:t2 ()
(SETQ PT1 (GETPOINT "\n第一点 :"))
(SETQ PT2 (GETPOINT PT1 "\n第二点 :"))
(SETQ ANG (angle pt1 pt2))
(setq old_os (getvar "osmode"))
(setvar "osmode" 0)
(SETQ pt3 (polar pt2 (- ang (* pi 0.5)) 800))
(COMMAND "_dimaligned" PT1 PT2 pt3)
(setvar "osmode" old_os)
(princ)
)

发表于 2013-10-24 10:19 | 显示全部楼层
把捕捉关掉试试
发表于 2013-10-26 15:20 | 显示全部楼层
兑现没有呀
发表于 2013-10-27 09:40 | 显示全部楼层
院长出手非同凡响啊!多谢!
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-4-25 20:45 , Processed in 0.411864 second(s), 34 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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