明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 1188|回复: 0

[源码] 请帮忙测试,修改填充比例或角度,64位win7,cad2008可用,求再优化

[复制链接]
发表于 2015-11-5 13:11:49 | 显示全部楼层 |阅读模式
  1. ;参考了明经论坛ucuc2003和Gu_xl的源码
  2. ;修改填充图案比例
  3. (defun C:gtb (/ hpsc ss name ent old_hatchbl new_hatchbl n )
  4.    (setvar "cmdecho" 0)
  5.    (setq hpsc (getvar "hpscale"))
  6.    (command "_.undo" "_begin")
  7.    (princ "\n请选择需要改变比例的填充图案")
  8.    (setq ss (ssget '((0 . "hatch"))) )     
  9.    (setq name (ssname ss 0))
  10.    (setq ent (entget  name))
  11.    (setq old_hatchbl (cdr (assoc 41 ent)))  
  12.    (setq n 0) ;序号的初值设为0      
  13.    (princ (strcat "\n当前填充图案的比例:<"(rtos old_hatchbl 2 2 )">"))
  14.    (setq new_hatchbl (getdist "\n请输入新的填充比例"))
  15.    (if (= new_hatchbl nil) (setq new_hatchbl old_hatchbl))
  16.    (repeat
  17.      (sslength ss);重复执行ss的长度的次数,即对象的个数
  18.      (setq name (ssname ss n));得到选择集内第n个对象的图元名      
  19.      (vla-put-PatternScale (vlax-ename->vla-object name) new_hatchbl)   
  20.      (setq n(1+ n));序号n的数量加1   
  21.    );end repeat
  22.    (command "_.undo" "_end")
  23.    (setvar "hpscale" hpsc)
  24.    (princ (strcat "\n填充比例已改为:<"(rtos new_hatchbl)"> "))
  25.    (princ)
  26. );end defun


  27. ;修改填充图案角度
  28. (defun C:gtj (/ oldhpang ss name ent old_hatchjd new_hatchjd n )
  29.     (setvar "cmdecho" 0)
  30.     (setq oldhpang (getvar "hpang"))
  31.     (command "_.undo" "_begin")
  32.     (princ "\n请选择需要改变角度的填充图案")
  33.     (setq ss (ssget '((0 . "hatch"))) )   
  34.     (setq name (ssname ss 0))
  35.     (setq ent (entget name))
  36.     (setq old_hatchjd (cdr (assoc 52 ent)))  
  37.     (setq n 0) ;序号的初值设为0        
  38.     (princ (strcat "\n当前填充图案的角度:<"(angtos old_hatchjd )">度"))
  39.     (setq new_hatchjd  (getangle "\n请输入新的填充角度"))
  40.     (if (= new_hatchjd nil) (setq new_hatchjd old_hatchjd))   
  41.     (repeat
  42.       (sslength ss);重复执行ss的长度的次数,即对象的个数
  43.       (setq name (ssname ss n));得到选择集内第n个对象的图元名
  44.       (vla-put-PatternAngle (vlax-ename->vla-object name) new_hatchjd)   
  45.       (setq n(1+ n));序号n的数量加1
  46.     );end repeat
  47.     (command "_.undo" "_end")
  48.     (setvar "hpang" oldhpang)
  49.     (princ (strcat "\n填充角度已改为:<"(angtos new_hatchjd)">度 "))
  50.     (princ)
  51. );end defun
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-12-23 17:19 , Processed in 0.171843 second(s), 29 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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