找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 2645|回复: 42

[求助]:求哈哈的amdimalign,呵呵~~~~

[复制链接]
发表于 2004-2-25 12:18:05 | 显示全部楼层 |阅读模式

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

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

×
不知道哈哈老大能否帖出来啊,蛮好用的,感觉。。。

小弟先拜谢~~~
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
发表于 2004-2-25 14:34:40 | 显示全部楼层
啊~~这、这。。。。
俺是为了启蒙柔柔大虾,用了AutoCAD Mechanical 2004下的这个功能,怎么分离出来呢,你不看见俺在于柔柔说:能写个程序发上来大家供享么~~

yinzhenyu传有一个,但是不支持关联俺不知道,俺没用过你试试
http://www.xdcad.net/forum/showt ... d=769646#post769646
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2004-2-25 16:11:39 | 显示全部楼层
笨啊!你不可以查一下看它这个程序是否独立的吗?
哼!难道我编不出这样的程序?论坛上已经有了,再说我用的又很少,我何必动脑筋?
那个程序不完善,民工已经指出了,其实只要稍作修改就行。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2004-2-25 18:21:52 | 显示全部楼层
柔柔好像编程水平也不错。怎么不到编程板块去发几个程序啊?我是很期待看到你的程序的:)
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2004-2-25 18:45:57 | 显示全部楼层
最初由 柔柔 发布
[B]笨啊!你不可以查一下看它这个程序是否独立的吗?
哼!难道我编不出这样的程序?论坛上已经有了,再说我用的又很少,我何必动脑筋?
那个程序不完善,民工已经指出了,其实只要稍作修改就行(对齐标注线时13、14号... [/B]

俺早就搜索过,没有“amdimalign”为文件名的arx或lsp文件,你叫俺拿哪个?再说俺就打开MDT所属的2004再加载好多ARX都对amdimalign命令无效,你还想聪明什么聪明~~哼~~
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2004-2-26 00:44:12 | 显示全部楼层
哈哈,看你可怜,我编了一个送给你去交交差,算你编的。

  1. ;amdimalign.lsp 调整尺寸标注, 嘉兴哈哈编, 2004.2.25
  2. (defun c:amdimalign (/ pt0 sset sslen elist pt10 pt11 pt13 pt14 ang newpt10 newpt11)
  3.    (setq sset (ssget '((0 . "DIMENSION")))
  4.         sslen (sslength sset))
  5.    (while (> sslen 0)
  6.        (setq elist (entget (ssname sset (setq sslen (1- sslen))))
  7.               pt10 (cdr (assoc 10 elist))
  8.               pt11 (cdr (assoc 11 elist))
  9.               pt13 (cdr (assoc 13 elist))
  10.               pt14 (cdr (assoc 14 elist))
  11.         )
  12.         (if pt0
  13.            (progn
  14.               (if (member '(100 . "AcDbRotatedDimension") elist)
  15.                  (setq ang (cdr (assoc 50 elist)))
  16.                  (setq ang (angle pt13 pt14))
  17.               )
  18.               (setq newpt10 (inters
  19.                          pt0
  20.                        (polar pt0 ang 100)
  21.                        pt10
  22.                        pt14
  23.                        nil
  24.                             )
  25.                     newpt11 (polar pt11 (angle pt14 pt10) (distance pt10 newpt10))
  26.               )
  27.              (setq elist (subst (cons 10 newpt10) (assoc 10 elist) elist)
  28.                    elist (subst (cons 11 newpt11) (assoc 11 elist) elist)
  29.              )
  30.             (entmod elist)
  31.            )
  32.            (setq pt0 pt10)
  33.          )
  34.      )
  35.   (princ "\n版权所有,嘉兴哈哈")
  36.   )
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2004-2-26 01:33:15 | 显示全部楼层
作业不及格,发回重做
~~~~~~~~~...........
***********************************
原来最后少了个括号,哈哈~
好!及格了——命令名换一个吧,关于版权也别开玩笑啦~~
俺建议斑竹加分给柔柔,这个LSP非常实用!
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2004-2-26 09:30:34 | 显示全部楼层
最初由 柔柔 发布
[B]哈哈,看你可怜,我编了一个送给你去交交差,算你编的。
... [/B]


奇怪了,揉揉
民工试用了号称嘉兴哈哈编的你编的程序,结果尺寸线没反应
在2002,2004下都一样
是不是老烟鬼说的最后少了个括号的问题?
见下图
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2004-2-26 09:35:25 | 显示全部楼层
有了前面这个程序,再加个引出线对齐功能就便当了,请看我的修改程序。跟那位提供的td程序达到同样的功能,差别在于:
1。标注线应该对齐,所以不必询问用户。(加注:也许这样不一定好,因为完全有可能不要对齐标注线而要对齐引出线,看大家的意见,需要的话稍微改一下就行)
2。标注线一般相差不多,以其中一个为基准就行,不必要用户提供位置。
3。引出线位置不改,不破坏原来的关联特性,引出线位置改了,那当然要破坏原来的关联特性了,这很正常。

没有与那个td程序交劲的念头,完全是为了解救哈哈而编,所以命令名还是取amdimalign,要是不喜欢这个命令,用户自己改一下。

发了帖才看到民工的帖子,哈哈~~,你这个没有反应正常呀,因为前面那个仅仅是对齐标注线,因为哈哈炫耀自己的amdimalign,被人家追着要,一副可怜相,没方法只好我来解围,也就是说,前面的程序仅仅是哈哈表演的amdimalign的功能,而你要的功能就在下面。

;amdimalign.lsp 尺寸标注对齐,2004.2.26

(defun c:amdimalign (/ pt0 sset sslen pt2 elist pt10 pt11 pt13 pt14 ang
                       newpt10 newpt11 newpt13 newpt14)
   (setq sset (ssget '((0 . "DIMENSION")))
        sslen (sslength sset))
   (setq pt2 (getpoint "\n如要对齐引出线请指示位置 <不修改>:"))
   (while (> sslen 0)
       (setq elist (entget (ssname sset (setq sslen (1- sslen))))
              pt10 (cdr (assoc 10 elist))
              pt11 (cdr (assoc 11 elist))
              pt13 (cdr (assoc 13 elist))
              pt14 (cdr (assoc 14 elist))
        )
        (if (member '(100 . "AcDbRotatedDimension") elist)
             (setq ang (cdr (assoc 50 elist)))
             (setq ang (angle pt13 pt14))
        )
        (if pt0
           (progn
               (setq newpt10 (inters
                         pt0
                      (polar pt0 ang 100)
                       pt10
                       pt14
                       nil
                            )
                     newpt11 (polar pt11 (angle pt14 pt10) (distance pt10 newpt10))
               )
              (setq elist (subst (cons 10 newpt10) (assoc 10 elist) elist)
                   elist (subst (cons 11 newpt11) (assoc 11 elist) elist)
               )            
              (entmod elist)
           )
           (setq pt0 pt10)
         )
         (if pt2 (haha1314))
     )
  )
;---------------------------------------------------
(defun haha1314()
     (setq newpt13 (inters
                         pt2
                       (polar pt2 ang 100)
                       pt13
                       (polar pt13 (angle pt14 pt10) 100)
                       nil
                    )
           newpt14 (inters
                         pt2
                       (polar pt2 ang 100)
                       pt14
                       (polar pt14 (angle pt14 pt10) 100)
                       nil
                    )
      )
      (setq elist (subst (cons 13 newpt13) (assoc 13 elist) elist)
            elist (subst (cons 14 newpt14) (assoc 14 elist) elist)
      )            
      (entmod elist)
)
;==================================================

如果也要提示用户是否修改标注线(用在不改标注线只改引出线),程序这样修改:
1。在 (setq pt2 (getpoint "\n如要对齐引出线请指示位置 <不修改>:"))上面增加一句: (setq pt0 (getpoint "\n如要对齐标注线请指示位置 <不修改>:"))
2。相应把(setq pt0 pt10)去掉,可以在前面加个分号让它失去作用,即:
;(setq pt0 pt10
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2004-2-26 10:03:44 | 显示全部楼层
楼上的程序是可以用了,可是不是民工所期望的
TD和amdimalign在调整对齐尺寸界线时还是移动了起点,民工希望的是既对齐尺寸界线,又不移动起点
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2004-2-26 10:09:40 | 显示全部楼层
民工觉得这个问题的关键可能应该是调整起点偏移量,如下图,程序通过计算每个尺寸界线的起点与用户输入的对齐位置的距离(或者是最小的一个距离),调整每个尺寸界线(分左右的,这个可能困难,但可以考虑隐藏掉一根)的偏移距离。

民工不会编程,只会编竹筐,编程的事就靠各位高手了。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2004-2-26 10:12:31 | 显示全部楼层
不对吧,民工。当提示“如要对齐引出线请指示位置 <不修改>”时你应该按右键或回车。
刚看到你的帖子,明白了,你是要既对齐引出线,但引出点不动,也就是看上去是对齐了,实际并没有改变什么。这难了,还是请骷髅哈哈到什么角落去搜寻一下看有没有这样的程序。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2004-2-26 10:19:24 | 显示全部楼层
最初由 柔柔 发布
[B]不对吧,民工。当提示“如要对齐引出线请指示位置 <不修改>”时你应该按右键或回车。 [/B]


如果右键了就不改变引出线了,等于没用,因为民工多数标注都是引出线对不齐,用连续标注,尺寸线倒都是对齐的,一般没有必要再修改,经常要对齐的就是尺寸界线(引出线)。

这个要求的确有点高

民工只好扯直了喉咙对着东北大喊:“老大~~~饿想你~~”
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2004-2-26 11:03:55 | 显示全部楼层
民工把你的要求用图表示下把,不太明白
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2004-2-26 11:28:36 | 显示全部楼层
民工的要求如下图
为了图示方便,民工画的都是正交的线段
仔细想想,不需要隐藏一根尺寸界线,因为重叠后看不出短的那根,只要保证长的对齐就行了。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-9-10 08:20 , Processed in 0.443088 second(s), 61 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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