找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 833|回复: 3

[编程申请]:各位长老斑竹们能不能帮着编一个这样的标注修改程序啊?

[复制链接]
发表于 2007-8-9 13:29:26 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

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

×
我想把所有的尺寸标注边界线都改成一样长的,可以构造一条线和尺寸线一样长且平行于尺寸线的线,把两个尺寸标注点原边界对齐到这根线上,这样就可以把尺寸标注的边界线都改成一样长了,谁能帮忙编一个这样的程序啊
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
发表于 2007-8-9 15:37:20 | 显示全部楼层
不知道你在说什么?可能是要这个吧!
[PHP]
;;;尺寸标注点对齐
(DEFUN C:DV (/        DIMPT10  OLDBLIPM  OLDOSMODE PT             PTX       PTY         DIMSS
             INDEX     SSNUM         ENAME           ENTNAME   DIMCODE   DIMPT13         DIMPT14
             DIMALANG  ALIDIST         PT0           ANG             ANGPTIN   PT3         PT1
             DIMPT1013 INTERPT
            )
  (DEFUN LHB-GET-DXF (CODE ENAME) (CDR (ASSOC CODE (ENTGET ENAME))))
  (DEFUN *$MYERROR$* (MSG)
    (SETVAR "BLIPMODE" OLDBLIP)
    (SETVAR "OSMODE" OLDOS)
    (COMMAND ".UNDO" "")
    (COMMAND ".UCS" "P")
    (SETVAR "CMDECHO" OLDCMD)
    (SETQ *ERROR* &OLDERR&)
    (PRINC)
    )
  (SETQ &OLDERR& *ERROR*)
  (SETQ *ERROR* *$MYERROR$*)
  (SETQ OLDCMD (GETVAR "CMDECHO"))
  (SETQ OLDOS (GETVAR "OSMODE"))
  (SETQ OLDBLIP (GETVAR "BLIPMODE"))
  (SETVAR "CMDECHO" 0)
  (COMMAND ".UNDO" "BE")
  (COMMAND "UCS" "W")
  (SETVAR "BLIPMODE" 1)
  (SETVAR "OSMODE" (+ 1 2 4 8 16 32 128 512 2048 4096))
  (SETQ PT (GETPOINT "\n尺寸标注点对齐,请选择尺寸标注的对齐点:"))
  (SETQ PTX (CAR PT))
  (SETQ PTY (CADR PT))
  (PRINC "\n请选择尺寸标注:")
  (SETQ DIMSS (SSGET '((0 . "DIMENSION"))))
  (SETQ INDEX 0)
  (SETQ SSNUM (SSLENGTH DIMSS))
  (WHILE (< INDEX SSNUM)
    (SETQ ENAME (SSNAME DIMSS INDEX))
    (SETQ ENTNAME (ENTGET ENAME))
    (SETQ DIMCODE (LHB-GET-DXF 70 ENAME))
    (SETQ DIMPT10 (LHB-GET-DXF 10 ENAME))
    (SETQ DIMPT13 (LHB-GET-DXF 13 ENAME))
    (SETQ DIMPT14 (LHB-GET-DXF 14 ENAME))
    (IF        (OR (= DIMCODE 32) (= DIMCODE 160))
      (PROGN
        (SETQ DIMALANG (LHB-GET-DXF 50 ENAME))
        (COND
          ((OR (= DIMALANG 0.0) (= DIMALANG PI))
           (PROGN
             (SETQ DIMPT13 (LIST (CAR DIMPT13) PTY (CADDR DIMPT13)))
             (SETQ DIMPT14 (LIST (CAR DIMPT14) PTY (CADDR DIMPT14)))
           )
          )                                ;OR
          ((OR (= DIMALANG (* PI 0.5)) (= DIMALANG (* PI 1.5)))
           (PROGN
             (SETQ DIMPT13 (LIST PTX (CADR DIMPT13) (CADDR DIMPT13)))
             (SETQ DIMPT14 (LIST PTX (CADR DIMPT14) (CADDR DIMPT14)))
           )
          )                                ;OR
          (T
           (PROGN
             (SETQ PT0 (POLAR PT (+ DIMALANG (* PI 0.5)) 10))
             (SETQ PT1 (POLAR DIMPT10 DIMALANG 10))
             (SETQ INTERPT (INTERS PT PT0 PT1 DIMPT10 NIL))
             (SETQ ALIDIST (DISTANCE PT INTERPT))
             (SETQ ANG (ANGLE INTERPT PT))
             (SETQ DIMPT14 (POLAR DIMPT10 ANG ALIDIST))
             (SETQ PT3 (POLAR DIMPT13 (+ DIMALANG (* PI 0.5)) 10))
             (SETQ DIMPT1013 (INTERS DIMPT13 PT3 DIMPT10 PT1 NIL))
                                        ;得到13对应的尺寸界限
             (SETQ DIMPT13 (POLAR DIMPT1013 ANG ALIDIST))
           )
          )                                ;T
        )                                ;END COND
        (SETQ
          ENTNAME (SUBST (CONS 13 DIMPT13) (ASSOC 13 ENTNAME) ENTNAME)
        )
        (SETQ
          ENTNAME (SUBST (CONS 14 DIMPT14) (ASSOC 14 ENTNAME) ENTNAME)
        )
        (ENTMOD ENTNAME)
      )                                        ;PROGN
    )                                        ;IF DIMCODE 32
    (IF        (OR (= DIMCODE 33) (= DIMCODE 161))
      (PROGN
        (SETQ ANG (ANGLE DIMPT13 DIMPT14))
        (SETQ PT0 (POLAR PT (+ ANG (/ PI 2)) 10))
        (SETQ INTERPT (INTERS PT PT0 DIMPT13 DIMPT14 NIL))
        (SETQ ALIDIST (DISTANCE PT INTERPT))
        (SETQ ANGPTIN (ANGLE INTERPT PT))
        (SETQ DIMPT13 (POLAR DIMPT13 ANGPTIN ALIDIST))
        (SETQ DIMPT14 (POLAR DIMPT14 ANGPTIN ALIDIST))
        (SETQ
          ENTNAME (SUBST (CONS 13 DIMPT13) (ASSOC 13 ENTNAME) ENTNAME)
        )
        (SETQ
          ENTNAME (SUBST (CONS 14 DIMPT14) (ASSOC 14 ENTNAME) ENTNAME)
        )
        (ENTMOD ENTNAME)
      )
    )
    (SETQ INDEX (1+ INDEX))
  )
  (SETVAR "BLIPMODE" OLDBLIP)
  (SETVAR "OSMODE" OLDOS)
  (COMMAND ".UNDO" "E")
  (COMMAND ".UCS" "P")
  (SETVAR "CMDECHO" OLDCMD)
  (SETQ *ERROR* &OLDERR&)
  (PRINC)
)
[/php]
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2007-8-9 16:27:36 | 显示全部楼层
http://acad.net.cn/viewthread.ph ... &extra=page%3D1
来看看...
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2007-8-9 23:53:19 | 显示全部楼层
太好了,这正是我要的,但是高手能不能改一下,改成可以设置对齐线长度的,比如是标注字高的几倍,这个倍数可以存在注册表里或文件里,在使用命令后只要选标注就可以了而不必再点一下点,而且可以确保所修改的标注范围线都是一样长的,以便保持图件的美观呢?比如这个程序同时修改两个标注X长度和Y长度的标注时,就会产生一个标注线短了,一个标注线长了,即标注方向不一样的话,修改的标注就会产生错误的对齐
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

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

本版积分规则

QQ|申请友链|Archiver|手机版|小黑屋|辽公网安备|晓东CAD家园 ( 辽ICP备15016793号 )

GMT+8, 2024-11-17 06:50 , Processed in 0.355663 second(s), 36 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

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