明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
楼主: KO你

[提问] 动态填充

[复制链接]
 楼主| 发表于 2019-2-19 00:00 | 显示全部楼层
没人帮忙吗
回复

使用道具 举报

发表于 2019-3-20 09:48 | 显示全部楼层
这个自己写一个吧,简单
回复

使用道具 举报

发表于 2019-3-20 12:34 | 显示全部楼层
回复

使用道具 举报

发表于 2019-3-20 14:29 | 显示全部楼层
这个没有动态角度显示
回复

使用道具 举报

 楼主| 发表于 2019-3-20 17:33 | 显示全部楼层
本帖最后由 KO你 于 2019-3-20 17:34 编辑

这个帖子很早就看过了,用起来不是很快捷,想要的填充旋转可以输入值的,还有填充移动动态的
回复

使用道具 举报

 楼主| 发表于 2019-3-20 19:07 | 显示全部楼层
1291500406 发表于 2019-3-20 14:29
这个没有动态角度显示

请大师帮忙完善
http://bbs.mjtd.com/thread-179108-1-1.html
回复

使用道具 举报

发表于 2019-3-20 21:01 | 显示全部楼层
个人以为这类使用 greead的动态,由于grread函数自身的局限,无法做到精确定位,在很多场合并没有多少实际意义。如果操作不需要精确定位时,用用这个,也就是花哨些;作为练练LISP编程技术,理解和掌握grread函数,差不多也就可以了。
就楼主这要求,我直接拖动,rotate,move命令或者grid操作等都能完成,而且还能精确定位,精确角度,也是一样动态显示。
回复

使用道具 举报

发表于 2019-3-21 16:33 | 显示全部楼层
本帖最后由 1291500406 于 2019-3-22 18:04 编辑

Dynamic ToolPack Family   DynamicHatch V1.6.90210#TRINNOLOV3.2009


回复

使用道具 举报

 楼主| 发表于 2019-3-22 19:03 | 显示全部楼层
1291500406 发表于 2019-3-22 18:00
Dynamic ToolPack Family         DynamicHatch V1.6.90210#TRINNOLOV3.2009[/ba ...

功能很强大,但操作起来不是很快捷,最好还是填充旋转独立一个,其他又是各一个,分开好点
回复

使用道具 举报

 楼主| 发表于 2019-3-22 19:06 | 显示全部楼层
1291500406 发表于 2019-3-22 18:00
Dynamic ToolPack Family         DynamicHatch V1.6.90210#TRINNOLOV3.2009[/ba ...

帖子上可以找到填充的比例缩放   个人还是觉得分开用起来快捷又方便

;;快捷键  hs  填充动态比例缩放
;;填充动态比例(only patternscale)
;;code by edata @mjtd
(defun c:hs(/ C_SCALE DS ENT GR MPT OBJ P1 P3 SCREEN_H SCREEN_PT SS TEXT_DS X Y loop scale_p)
  (vl-load-com)
  (vla-StartUndoMark (vla-get-activedocument(vlax-get-acad-object)))
  ;;Get viewpt Sub function from bbs.mjtd.com
   (defun viewpt(/ a b c d x)
    (setq b (getvar "viewsize") c (car (getvar "screensize")) d (cadr (getvar "screensize"))
          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)
          d (list (+ (car x) (/ a 2.0)) (+ (cadr x) (/ b 2.0)) 0.0) c (trans c 2 1) d (trans d 2 1)
    )
    (list c d)
  )
  ;;End Sub function

  ;;Start main function
    (if(and (setq ss(ssget ":S" '((0 . "hatch"))))
    (setq ent(ssname ss 0))
    (car(list t (redraw ent 3))))
    (progn
      (setq obj (vlax-ename->vla-object ent)
      screen_pt(viewpt)
      screen_h(abs(- (cadr(cadr screen_pt))(cadr(car screen_pt))))
      loop t)
      (vla-GetBoundingBox obj 'p1 'p3)
      (setq p1 (vlax-safearray->list p1)
      p3 (vlax-safearray->list p3)
      mpt(mapcar '(lambda(x y)(*(+ x y ) 0.5)) p1 p3)
      c_scale(vla-get-patternscale obj)
      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))))))
      (prompt "\n移动鼠标或输入S比例数字(如s100):")
      (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)))))
  (cond
    ((= (car gr) 5)(setq p1(cadr gr))     
     (if(>(setq ds(distance mpt p1))0)(vla-put-patternscale obj (* ds 0.1)))
     ;(vla-put-patternangle obj (angle mpt p1));改角度
     (setq screen_pt(viewpt)
     screen_h(abs(- (cadr(cadr screen_pt))(cadr(car screen_pt)))))
     (vla-put-insertionpoint text_ds (vlax-3d-point p1))
     (vla-put-height text_ds (* screen_h 0.04))
     (vla-put-textstring text_ds (strcat "当前比例为: "(rtos (* ds 0.1) 2)))
     (vla-update obj)
     (vla-update text_ds)     
     (redraw)     
     (grdraw mpt p1 1 3)     
     )
    ((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)))
    )
  (entmod (entget ent))
  (entmod (entget (vlax-vla-object->ename text_ds)))
  )
      (and text_ds(vla-delete text_ds))
      (and text_ds(vlax-release-object text_ds))
      (and obj(vlax-release-object obj))
      )
    )
  (vla-EndUndoMark (vla-get-activedocument(vlax-get-acad-object)))
  (redraw)
  (princ)
  )
(prompt "loading dynamic patternscale code by edata,Command is  tt")
(princ)
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-5-3 15:05 , Processed in 0.262767 second(s), 18 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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