明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
楼主: fl202

[求助]求此程序的代码or所用函数or编程方法or fas、VLX程序?谢谢。

  [复制链接]
发表于 2009-9-1 19:29:00 | 显示全部楼层
1、用entget函数选取图线;
2、在grread函数循环中使用entget中的点作为上一点,动态的用grdraw函数将鼠标当前点画线;同时根据两点的距离动态更改线条的线性比例。
发表于 2009-9-1 20:15:00 | 显示全部楼层
fl202发表于2009-9-1 15:13:00其实这样的用途更大,这个没有规范要求是多少,具体倍数放大的话要试好几次才能得到比较满意的效果。而用这个程序一次即可得到满意的效果。

你这只是视觉上的效果,而图是要打印出来用的,规范有严格要求实部多长,虚部多长,所以只有输入放大倍数才能满足要求.

发表于 2009-9-2 00:47:00 | 显示全部楼层
有意思,仿制一下:)
  1. ;;动态调节线性比例,仿制userzhl的程序
  2. ;;加入对比例为0和1时的判断,防止因1时无组码48,0时总是无法获得正确比例的容错处理
  3. ;;贱人20090902
  4. (defun c:aa( /  ss ssn en e48  pt1 dist M new48 ViewDist i newen Y-get-eyeshot )
  5. (defun Y-get-eyeshot (/ )  ;$orr)  
  6.   (setq rt    '()
  7. ptctr (getvar "viewctr")
  8. vph   (getvar "viewsize")
  9. vps   (getvar "screensize")
  10. ratio (/ (car vps) (cadr vps))
  11. vpw   (* ratio vph)
  12.   )
  13.   (setq ptlb
  14.   (list
  15.     (- (car ptctr) (/ vpw 2))
  16.     (- (cadr ptctr) (/ vph 2))
  17.   )
  18.   )
  19.   (setq ptrt
  20.   (list
  21.     (+ (car ptctr) (/ vpw 2))
  22.     (+ (cadr ptctr) (/ vph 2))
  23.   )
  24.   )
  25.   (setq rt (list ptlb ptrt))
  26. )
  27. ;---
  28.   (setq ss (ssget ":s:e" '((0 . "Arc,Circle,Line,LWPOLYLINE"))))
  29.   (if ss
  30.     (progn
  31.       (setq ssn (ssname ss 0)
  32.              en  (entget ssn)
  33.       )
  34.       (if (not (setq e48 (cdr (assoc 48 en))))
  35.         (progn
  36.           (setq e48 1
  37.              newen (list (car en))
  38.              en (cdr en)
  39.              i     0
  40.           )
  41.   
  42.           (repeat 8
  43.             (setq newen (cons (car en) newen)
  44.                  en  (cdr en)
  45.                   i  (+ i 1)
  46.             )
  47.           )
  48.           (setq newen (cons (cons 48 1) newen)
  49.              newen (reverse newen)
  50.                 en (append newen en)
  51.              newen nil
  52.           )
  53.         )
  54.       )
  55.       (setq pt1 (getpoint "\n指定点:"))
  56.       (if pt1
  57.         (while (/= (car (setq M (grread T 5 0))) 3)
  58.           (setq dist (distance pt1 (cadr M))
  59.                 ViewDist (distance (car (Y-get-eyeshot)) (cadr (Y-get-eyeshot)))
  60.           )
  61.           (if (= dist 0)
  62.             (setq dist 0.01)
  63.           )
  64.           (if (= e48 0)
  65.             (setq new48 (* (/ dist ViewDist) 100 0.1 1))
  66.             (setq new48 (* (/ dist ViewDist) 100 0.1 e48))
  67.           )
  68.           (entmod (subst (cons 48 new48) (cons 48 e48) en ))
  69.         )
  70.       )
  71.     )
  72.   )
  73. (princ)
  74. )
发表于 2009-9-2 07:12:00 | 显示全部楼层

(command "change" p1 "" "p" "color" "252" "ltype"( "DASHED2"此处为线型)


  (if (<= hh 0.7 )此数据为线长,楼主自已改吧

本帖子中包含更多资源

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

x
发表于 2009-9-2 07:14:00 | 显示全部楼层

再来一个自动的

本帖子中包含更多资源

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

x
发表于 2009-9-2 09:56:00 | 显示全部楼层

学习动态修改

发表于 2009-9-2 10:19:00 | 显示全部楼层
(getpoint (getpoint))
发表于 2009-9-2 12:46:00 | 显示全部楼层
呵呵,宝贝已经被锁住了,应该要好好地反省下自已的言行哦,光说不练,连个小程序也要人家加他QQ收费,如何还打出一个:取之于明,用之于明哦.
发表于 2009-9-2 17:25:00 | 显示全部楼层
贱人发表于2009-9-2 0:47:00有意思,仿制一下:);;动态调节线性比例,仿制userzhl的程序;;加入对比例为0和1时的判断,防止因1时无组码48,0时总是无法获得正确比例的容错处理;;贱人20090902(defun c:aa( /  ss ssn en

帮你加了根檬皮线.

 楼主| 发表于 2009-9-3 08:22:00 | 显示全部楼层
jxlsp发表于2009-9-1 20:15:00你这只是视觉上的效果,而图是要打印出来用的,规范有严格要求实部多长,虚部多长,所以只有输入放大倍数才能满足要求.

请问是哪个规范规定的?标准号是多少?

我是做化工设计的,这个专业的规范上好像没有这方面的规定。同时感谢楼上几位给的程序和思路,谢谢!

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

本版积分规则

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

GMT+8, 2024-10-1 12:15 , Processed in 0.171580 second(s), 19 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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