明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 2992|回复: 16

[已解答] 求教动态更改填充比例

[复制链接]
发表于 2014-5-18 17:52 | 显示全部楼层 |阅读模式
本帖最后由 chang1622 于 2014-5-18 17:56 编辑

动态更改填充比例,论坛上版主XYP1964发过此效果图,但不会用!
谁能帮帮忙发个源码,图案为ANI31  角度固定只改比例

本帖子中包含更多资源

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

x
发表于 2019-1-23 18:45 | 显示全部楼层
  1. (defun c:ddbl (/ s1)
  2.   (if (and (setq s1 (entsel "\n选择: "))
  3.            (= (xyp-get-dxf 0 (car s1)) "HATCH")
  4.       )
  5.     (xyp-Grread-Change s1 "填充角度" 52 3)
  6.   )
  7.   (princ)
  8. )
发表于 2019-11-25 10:49 | 显示全部楼层
edata 发表于 2014-5-18 22:38
院长的都是精品,学习的典范。
有时候模仿院长的演示也能锻炼锻炼思维方式。
动态填充比例调整,仅比例。 ...

想问下,这个显示的文字字体怎么修改,在高版本的CAD中使用,中文会显示为 问号❓
发表于 2019-11-20 22:42 | 显示全部楼层
edata 发表于 2014-5-18 22:38
院长的都是精品,学习的典范。
有时候模仿院长的演示也能锻炼锻炼思维方式。
动态填充比例调整,仅比例。 ...

windows10系统下, “当前比例”显示 为 ????号
发表于 2014-5-18 22:38 | 显示全部楼层
院长的都是精品,学习的典范。
有时候模仿院长的演示也能锻炼锻炼思维方式。
动态填充比例调整,仅比例。
我的演示:



代码部分(未加出错程序,如果想放弃调整输入s加空格,输入精准比例s加比例(如s100) s后不要空格哦,切记)
  1. ;;动态填充比例(only patternscale)
  2. ;;2014年5月18日
  3. ;;code by edata @mjtd
  4. (defun c:tt(/ C_SCALE DS ENT GR MPT OBJ P1 P3 SCREEN_H SCREEN_PT SS TEXT_DS X Y loop scale_p)
  5.   (vl-load-com)
  6.   (vla-StartUndoMark (vla-get-activedocument(vlax-get-acad-object)))
  7.   ;;Get viewpt Sub function from bbs.mjtd.com
  8.    (defun viewpt(/ a b c d x)
  9.     (setq b (getvar "viewsize") c (car (getvar "screensize")) d (cadr (getvar "screensize"))
  10.           a (* b (/ c d)) x (setq x (getvar "viewctr")) x (trans x 1 2) c (list (- (car x)  (/ a 2.0)) (- (cadr x) (/ b 2.0)) 0.0)
  11.           d (list (+ (car x) (/ a 2.0)) (+ (cadr x) (/ b 2.0)) 0.0) c (trans c 2 1) d (trans d 2 1)
  12.     )
  13.     (list c d)
  14.   )
  15.   ;;End Sub function

  16.   ;;Start main function
  17.     (if(and (setq ss(ssget ":S" '((0 . "hatch"))))
  18.     (setq ent(ssname ss 0))
  19.     (car(list t (redraw ent 3))))
  20.     (progn
  21.       (setq obj (vlax-ename->vla-object ent)
  22.       screen_pt(viewpt)
  23.       screen_h(abs(- (cadr(cadr screen_pt))(cadr(car screen_pt))))
  24.       loop t)
  25.       (vla-GetBoundingBox obj 'p1 'p3)
  26.       (setq p1 (vlax-safearray->list p1)
  27.       p3 (vlax-safearray->list p3)
  28.       mpt(mapcar '(lambda(x y)(*(+ x y ) 0.5)) p1 p3)
  29.       c_scale(vla-get-patternscale obj)
  30.       text_ds(vlax-ename->vla-object(entmakex (list '(0 . "TEXT")(cons 62 4) (cons 1 (strcat "当前比例为: "(rtos c_scale 2)) ) (cons 10 mpt) (cons 40 (* screen_h 0.04))))))
  31.       (prompt "\n移动鼠标或输入S比例数字(如s100):")
  32.       (while (and loop (setq gr(grread t 15 0))(not (or(= (car gr) 3)(= (car gr) 25)(= (car gr) 11)(equal gr '(2 13))(equal gr '(2 32)))))
  33.   (cond
  34.     ((= (car gr) 5)(setq p1(cadr gr))     
  35.      (if(>(setq ds(distance mpt p1))0)(vla-put-patternscale obj (* ds 0.1)))
  36.      ;(vla-put-patternangle obj (angle mpt p1));改角度
  37.      (setq screen_pt(viewpt)
  38.      screen_h(abs(- (cadr(cadr screen_pt))(cadr(car screen_pt)))))
  39.      (vla-put-insertionpoint text_ds (vlax-3d-point p1))
  40.      (vla-put-height text_ds (* screen_h 0.04))
  41.      (vla-put-textstring text_ds (strcat "当前比例为: "(rtos (* ds 0.1) 2)))
  42.      (vla-update obj)
  43.      (vla-update text_ds)     
  44.      (redraw)     
  45.      (grdraw mpt p1 1 3)     
  46.      )
  47.     ((equal gr '(2 115)) (setq loop nil)(if(setq scale_p(getreal "\n输入比例:s"))(vla-put-patternscale obj scale_p)(vla-put-patternscale obj c_scale)))
  48.     )
  49.   (entmod (entget ent))
  50.   (entmod (entget (vlax-vla-object->ename text_ds)))
  51.   )
  52.       (and text_ds(vla-delete text_ds))
  53.       (and text_ds(vlax-release-object text_ds))
  54.       (and obj(vlax-release-object obj))
  55.       )
  56.     )
  57.   (vla-EndUndoMark (vla-get-activedocument(vlax-get-acad-object)))
  58.   (redraw)
  59.   (princ)
  60.   )
  61. (prompt "loading dynamic patternscale code by edata,Command is  tt")
  62. (princ)

本帖子中包含更多资源

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

x

点评

按S没反应  发表于 2014-5-20 16:50

评分

参与人数 3明经币 +3 收起 理由
669423907 + 1 非常给力,谢谢分享!
chang1622 + 1 赞一个!
xyp1964 + 1 赞一个!

查看全部评分

发表于 2014-5-19 12:38 | 显示全部楼层
版主牛叉啊。。。学习学习。。。一直想写有关于动态的玩意。无奈资质太差
 楼主| 发表于 2014-5-19 13:44 | 显示全部楼层
非常好!谢谢edata帮助啊。。。学习学习。。。
发表于 2014-7-20 12:03 | 显示全部楼层
这个程序很强大,收藏了。
发表于 2014-7-21 02:47 | 显示全部楼层
角度可否支持f8正交呀!
发表于 2015-2-10 23:27 | 显示全部楼层
能否出一个可以移动填充图案啊?
发表于 2015-2-11 23:05 | 显示全部楼层
感谢 edata 分享程序,不错喔!
发表于 2015-5-15 18:35 | 显示全部楼层
在我这里显示的那句  “当前比例为:”  全部为   ?????? 该怎么办啊
发表于 2015-9-21 21:15 | 显示全部楼层
真厉害啊,谢谢分享了
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-3-29 16:30 , Processed in 0.239948 second(s), 36 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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