明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
12
返回列表 发新帖
楼主: 5240xiao

[求助]求个和标注有关的程序%%%%%在XD求了很久没人解决

  [复制链接]
 楼主| 发表于 2005-4-16 14:24 | 显示全部楼层
老大这是DWG的,R14版的

本帖子中包含更多资源

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

x
 楼主| 发表于 2005-4-16 14:38 | 显示全部楼层
现在就是改了数字不对,你真是历害
 楼主| 发表于 2005-4-16 14:43 | 显示全部楼层
我要出差一会了,这几天不来了
发表于 2005-4-17 00:25 | 显示全部楼层
经过调试的程序:
  1. (DEFUN C:DIMCHANGE ()
  2.   (SETvar "CMDECHO" 0)
  3.   (SETQ OLDOS (GETvar "OSMODE"))
  4.   (IF (SETQ SB (SSGET)) (PROGN
  5.    (SETQ SD (ENTSEL "\nSelect a Dimtion 选择驱动尺寸:"))
  6.    (SETQ SD-DXF (ENTGET (CAR SD)))
  7.    (WHILE (NOT (WCMATCH (CDR (ASSOC 0 SD-DXF)) "*DIM*"))
  8.      (SETQ SD (ENTSEL "\nSelect a Dimtion 选择驱动尺寸:"))
  9.      (SETQ SD-DXF (ENTGET (CAR SD)))
  10.    )
  11.    (SETQ SP (CDR (ASSOC 13 SD-DXF))
  12.                EP (CDR (ASSOC 14 SD-DXF))
  13.                ANG (CDR (ASSOC 50 SD-DXF)))
  14.    (IF (OR (EQUAL ANG 0.0 0.00001) (EQUAL ANG PI 0.00001))
  15.      (SETQ L (ABS (- (CAR SP) (CAR EP))))
  16.      (SETQ L (ABS (- (CADR SP) (CADR EP))))
  17.    )
  18.    (PRINC "\nEnter New Distance 新的长度<") (PRINC L)
  19.    (SETQ NEWL (GETDIST ">:")
  20.                NEWL (IF NEWL NEWL L))
  21.    (SETQ BSB (- L NEWL))
  22.    (SETQ SS1 (SSGET "C" SP SP))
  23.    (SETQ SL (SSLENGTH SB) I 0 J -1)
  24.    (REPEAT SL
  25.      (IF (SSDEL (SSNAME SB I) SS1) (SETQ J I))
  26.      (SETQ I (1+ I))
  27.    )
  28.    (IF (>= J 0)
  29.      (SETQ SSP SP)
  30.      (SETQ SSP EP ANG (+ ANG PI) BSB (* BSB -1))
  31.    )
  32.    (SETQ N-SP (POLAR SSP ANG BSB))
  33.    (SETvar "OSMODE" 0)
  34.    (COMMAND "_.UNDO" "_GROUP")
  35.    (COMMAND "MOVE" SB "" SSP N-SP "STRETCH" "C" SSP SSP "" SSP N-SP)
  36.    (COMMAND "_.UNDO" "_END")
  37.    (SETvar "OSMODE" OLDOS)
  38.   ))
  39.   (SETvar "CMDECHO" 1)
  40.   (princ)
  41. )
 楼主| 发表于 2005-4-17 11:34 | 显示全部楼层
今天有个机会来上网,呵,可以用了,大哥,谢谢你了
发表于 2005-4-17 12:17 | 显示全部楼层
14楼程序还有BUG。下面是最后调试好的程序。
  1. (DEFUN C:DIMCHANGE ()
  2.   (SETVAR "CMDECHO" 0)
  3.   (SETQ OLDOS (GETvar "OSMODE"))
  4.   (PRINC "\n选择被驱动的实体:")
  5.   (IF (SETQ SB (SSGET)) (PROGN
  6.    (SETQ SD (ENTSEL "\nSelect a Dimtion 选择驱动尺寸:"))
  7.    (SETQ SD-DXF (ENTGET (CAR SD)))
  8.    (WHILE (NOT (WCMATCH (CDR (ASSOC 0 SD-DXF)) "*DIM*"))
  9.      (SETQ SD (ENTSEL "\nSelect a Dimtion 选择驱动尺寸:"))
  10.      (SETQ SD-DXF (ENTGET (CAR SD)))
  11.    )
  12.    (SETQ SP (CDR (ASSOC 13 SD-DXF))
  13.                EP (CDR (ASSOC 14 SD-DXF))
  14.                ANG (CDR (ASSOC 50 SD-DXF))
  15.                DTYP (CDR (ASSOC 100 (REVERSE SD-DXF))))
  16.    (IF (= DTYP "AcDbAlignedDimension")
  17.      (SETQ ANG (ANGLE SP EP)
  18.                  L (DISTANCE SP EP))
  19.      (IF (EQUAL ANG 0.0 0.00001)
  20.        (SETQ L (ABS (- (CAR SP) (CAR EP))))
  21.        (SETQ L (ABS (- (CADR SP) (CADR EP))))
  22.      )
  23.    )
  24.    (PRINC "\nEnter New Distance 新的长度<") (PRINC L)
  25.    (SETQ NEWL (GETDIST ">:")
  26.                NEWL (IF NEWL NEWL L))
  27.    (SETQ BSB (IF (= DTYP "AcDbAlignedDimension") (- L NEWL)
  28.                          (IF (EQUAL ANG 0.0 0.00001) (- L NEWL) (- NEWL L))))
  29.    (SETQ SS1 (SSGET "C" SP SP))
  30.    (SETQ SL (SSLENGTH SB) I 0 J -1)
  31.    (REPEAT SL
  32.      (IF (SSDEL (SSNAME SB I) SS1) (SETQ J I))
  33.      (SETQ I (1+ I))
  34.    )
  35.    (IF (< J 0)
  36.      (SETQ SSP EP ANG (+ ANG PI) BSB (* BSB -1))
  37.      (SETQ SSP SP)
  38.    )
  39.    (SETQ N-SP (POLAR SSP ANG BSB))
  40.    (SETVAR "OSMODE" 0)
  41.    (COMMAND "_.UNDO" "_GROUP")
  42.    (COMMAND "MOVE" SB "" SSP N-SP "STRETCH" "C" SSP SSP "" SSP N-SP)
  43.    (COMMAND "_.UNDO" "_END")
  44.    (SETVAR "OSMODE" OLDOS)
  45.   ))
  46.   (SETVAR "CMDECHO" 1)
  47.   (PRINC)
  48. )
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-5-4 03:10 , Processed in 0.342853 second(s), 17 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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