明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 1498|回复: 4

[基础] 求LSP,关于标注问题,求助前辈。

[复制链接]
发表于 2010-5-27 11:33 | 显示全部楼层 |阅读模式

可以设置尺寸偏移基点的数值,然后点选2点,选择方向(2点上还是2点下),生成标注。偏移基点的数值最好可以暂时保存,只要不退出当前图纸就可以一直记录,除非手动改变。

"觉得好,就打赏"
还没有人打赏,支持一下
发表于 2010-5-27 12:04 | 显示全部楼层
Try ....
;; dd ==> 偏移基点的数值
(setq vv1 (/ pi 2)
      vv2 (* vv1 3)
)     
(Command "_dimlinear" pause pause
  (progn
    (setq pt2 (GetVar "LastPoint"))
    (setq yy0 (cadr pt2))
    (setq yy2 (cadr (getpoint pt2)))
    (if (minusp (- yy2 yy0))
      (polar pt2 vv3 dd)
      (polar pt2 vv1 dd)
  ) )
  ""
)
 楼主| 发表于 2010-5-27 12:32 | 显示全部楼层
本帖最后由 作者 于 2010-5-27 14:15:28 编辑

有点思路了,谢谢,自己在摸索摸索。

//初始设置全局变量
(SETQ DIMOFFSET 10)

//////////////////////////////
(defun DIM1 ()
  (princ (strcat "\n当前偏移长度为 :" (itoa DIMOFFSET)))
  (setq dd (getint "\n请输入新偏移长度 :"))
  (if ( = dd nil)
    (setq dd DIMOFFSET)
  )
  (setq vv1 (/ pi 2)
      vv2 (* vv1 2)
      vv3 (* vv1 3)
  )     
  (Command "_dimlinear" pause pause
    (progn
      (setq pt2 (GetVar "LastPoint"))
      (initget 1 "w s a d")
      (setq kw (getkword "位置[上w/下s/左a/右d]:"))
        (cond
          (( = kw "w")
            (polar pt2 vv1 dd)
          )
          (( = kw "s")
            (polar pt2 vv3 dd)
          )
          (( = kw "a")
            (polar pt2 vv2 dd)
          )
          (( = kw "d")
            (polar pt2 0 dd)
          )
        )
      )
    )
  (setq DIMOFFSET dd)
  (princ)
)

在Andyhon基础上做写更改,基本满足矩形标注。

明经网友  发表于 2010-5-27 14:11

//初始设置全局变量
(SETQ DIMOFFSET 10)

//////////////////////////////
(defun DIM1 ()
  (princ (strcat "\n当前偏移长度为 :" (itoa DIMOFFSET)))
  (setq dd (getint "\n请输入新偏移长度 :"))
  (if ( = dd nil)
    (setq dd DIMOFFSET)
  )
  (setq vv1 (/ pi 2)
      vv2 (* vv1 2)
      vv3 (* vv1 3)
  )     
  (Command "_dimlinear" pause pause
    (progn
      (setq pt2 (GetVar "LastPoint"))
      (initget 1 "w s a d")
      (setq kw (getkword "位置[上w/下s/左a/右d]:"))
        (cond
          (( = kw "w")
            (polar pt2 vv1 dd)
          )
          (( = kw "s")
            (polar pt2 vv3 dd)
          )
          (( = kw "a")
            (polar pt2 vv2 dd)
          )
          (( = kw "d")
            (polar pt2 0 dd)
          )
        )
      )
    )
  (setq DIMOFFSET dd)
  (princ)
)

Andyhon的基础上做些更改,可以满足矩形尺寸的标注了。

回复 支持 反对

使用道具

明经网友  发表于 2010-5-27 14:15

//初始设置全局变量
(SETQ DIMOFFSET 10)

//////////////////////////////
(defun DIM1 ()
  (princ (strcat "\n当前偏移长度为 :" (itoa DIMOFFSET)))
  (setq dd (getint "\n请输入新偏移长度 :"))
  (if ( = dd nil)
    (setq dd DIMOFFSET)
  )
  (setq vv1 (/ pi 2)
      vv2 (* vv1 2)
      vv3 (* vv1 3)
  )     
  (Command "_dimlinear" pause pause
    (progn
      (setq pt2 (GetVar "LastPoint"))
      (initget 1 "w s a d")
      (setq kw (getkword "位置[上w/下s/左a/右d]:"))
        (cond
          (( = kw "w")
            (polar pt2 vv1 dd)
          )
          (( = kw "s")
            (polar pt2 vv3 dd)
          )
          (( = kw "a")
            (polar pt2 vv2 dd)
          )
          (( = kw "d")
            (polar pt2 0 dd)
          )
        )
      )
    )
  (setq DIMOFFSET dd)
  (princ)
)

在Andyhon基础上做写更改,基本满足矩形标注。

回复 支持 反对

使用道具

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

本版积分规则

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

GMT+8, 2024-5-20 15:25 , Processed in 0.176469 second(s), 26 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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