明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 2814|回复: 21

帮忙改进一个小程序,谢谢!

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



现在有两个问题:


1 当角度为30度时要引线标注,如何实现?


2 当角度为-90或270度时粗糙度值要跟粗糙度符号一起旋转?



         

[dir=500,350]请输入地址[/dir]

本帖子中包含更多资源

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

x
 楼主| 发表于 2005-5-28 17:10 | 显示全部楼层
高手快帮帮我呀,谢谢!
 楼主| 发表于 2005-5-29 12:44 | 显示全部楼层
我是新手,请高手帮个帮,谢谢!!!
发表于 2005-5-29 16:08 | 显示全部楼层
ptfjr2003发表于2005-5-29 12:44:00我是新手,请高手帮个帮,谢谢!!!
试一下更改过的程序:
  1. ;表面粗糙度标注(defun c:fjr(/ v1 v2 p0 p10 h h1 alf1 alf a1 p1 p2 p3 p4)
  2.    (setq v1 (getvar"cmdecho"))
  3.    (setq v2 (getvar"blipmode"))
  4.    (setvar"cmdecho"0)
  5.    (setq p0 (getpoint"插入点:"))
  6.    (setq p10 (osnap p0 "nea"))
  7.    (setq h (getdist P0 "\n 粗糙度数值的字高〈3.5〉"))
  8.    (if (not h) (setq h 3.5))
  9.    (setq h1 (* h 1.61658))
  10.    (if P10
  11.      (setq alf1 (angle p10 p0)
  12.    p0 p10
  13.    alf (- alf1 (* 0.5 pi)))
  14.      (setq alf (GETANGLE p0 "\n 旋转角〈0〉:")
  15.                  alf (if alf alf 0.0))
  16.    )
  17.    (if (or (equal alf1 (/ pi 6) (/ pi 180))
  18.                    (equal alf1 (+ (/ pi 6) pi) (/ pi 180))) (progn
  19.      (setq p1 (getpoint p0 "\nLeader Point 点取引出线点 :")
  20.                  alf 0
  21.                  p2 (polar p1 pi (* (/ h 3.5) 5))
  22.                  p3 (polar p1 0 (* (/ h 3.5) 5)))
  23.      (if (> (distance p2 p0) (distance p3 p0))
  24.        (command "pline" p0 p3 p2 "")
  25.        (command "pline" p0 p2 p3 "")
  26.      )
  27.      (setq p0 p1)
  28.    ))
  29.    (setq a1 (+ alf (/ pi 3)))
  30.    (setq p1 (polar p0 a1 (* 2 h1)))
  31.    (setq p2 (polar p0 a1 h1))
  32.    (setq a1 (+ alf(/ pi 1.5)))
  33.    (setq p3 (polar p0 a1 h1))
  34.    (setq a1 (+ alf (* 0.5 pi)))
  35.    (setq p4 (polar p0 a1 (* 1.4 h1)))
  36.    (setq s (getstring"\n 输入表面粗糙度的值〈6.3〉:"))
  37.    (if (= 0 (strlen s)) (setq s "6.3"))
  38.    (setq alf (/ (* alf 180) pi)
  39.                alf (if (< alf 0) (+ alf 360) alf))
  40.    (setq alf (IF (< 120 alf 300) (- alf 180) alf))
  41.    (setvar"blipmode" 0)
  42.    (if (= s "0") (progn
  43.      (setq p4 (polar p0 a1 (* 0.93333 h)))
  44.      (command "pline" p1 p0 p3"")
  45.      (command "circle" p4 (* 0.46666 h))
  46.    ) (progn
  47.      (command "pline" p2 p3 p0 p1"")
  48.      (if (> (strlen s) 3)
  49.        (setq p4 (polar p4 (+ a1 (* 0.5 pi)) (* 0.4 h)))
  50.      )
  51.      (command "text" "m" p4 h alf s)
  52.    ))
  53.    (if (not p10) (progn
  54.      (setq p4 (polar (polar p0 pi (* h 3)) (/ pi 2) (* h 0.225)))
  55.      (command "text" "c" p4 (* h 1.5) 0 "其余")
  56.    ))
  57.    (setvar "cmdecho" v1)
  58.    (setvar "blipmode" v2)
  59.   (princ)
  60. )
 楼主| 发表于 2005-5-29 18:05 | 显示全部楼层
谢谢楼上帮忙,但是第一个问题还是不行呀,第一个问题就是:


当光标移到30度角时自动引线并标注粗糙度,如何实现?谢谢!


还有一个问题就是,在空白处标注时会出现两个"??",如何消除那两问号,请指教谢谢!
 楼主| 发表于 2005-5-29 18:24 | 显示全部楼层
噢!可以了,真是太感谢楼上的帮忙!!!


只是那两个字"其余"变成两个"问号"了,这是不是少了个空格,还是字体不行?
 楼主| 发表于 2005-5-29 18:32 | 显示全部楼层
真是帮感谢楼上的帮忙,谢谢!!!


只是那两个字“其余”变成两个“??”了,是不是少了一个空格,还是字体不对?请帮忙谢谢!!!
发表于 2005-5-29 21:35 | 显示全部楼层
如果把屏幕缩的很小后再标会不正常,不知道为什么
 楼主| 发表于 2005-5-29 22:11 | 显示全部楼层
如果把屏幕缩的很小后再标会不正常,不知道为什么


我有同感,请高手指点,谢谢!!!
发表于 2005-5-29 22:25 | 显示全部楼层
ptfjr2003发表于2005-5-29 18:05:00谢谢楼上帮忙,但是第一个问题还是不行呀,第一个问题就是: 当光标移到30度角时自动引线并标注粗糙度,如何实现?谢谢! 还有一个问题就是,在空白处标注时会出现...

1、30度角时不需要用引线标注。根据机械制图标准,120度或300度时才要用引线标注。 2、问号是因为您未设定中文字型,只要将下面的语句加到程序开头就行了。 (COMMAND "STYLE" "HZ" "ROMANS,HZTXT" "" "0.7" "" "" "" "") 或者 (COMMAND "STYLE" "ST" "宋体" "" "0.7" "" "" "")
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-5-10 13:13 , Processed in 0.144588 second(s), 27 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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