明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 1444|回复: 2

有请x_s_s_1大师 求帮忙。。。。。谢谢

[复制链接]
发表于 2012-8-4 04:14:29 | 显示全部楼层 |阅读模式
本帖最后由 flytoday 于 2012-8-4 04:54 编辑

关于柱依照轴线缩放的源码其中一段我想修改下,请大师帮忙谢谢,。,,,,,,,
x_s_s_1大师源码:
http://bbs.mjtd.com/thread-95861-1-1.html



(defun zsf (/ ss_all ss_dot ss_sc ss_pts pt ssets scal x objss )

(setvar "cmdecho" 0)
    (Prompt "\n请选择指定不缩放的轴网线层: ")
    (setq en (assoc 8 (entget (car (entsel)))));;这种直接读到其所选择的图元的图层名,要怎么写啊…..
(princ)
  (prompt "\n请选择需要进行缩放的物体:")   
  (setq ss_all (ssget));选择图层 (setq en (assoc 8 (entget (car (entsel)))))
  (setq ss_dot (ssget "p" '((0 . "*line") (8 . "dote,axis"))));轴网线图层
;;;;请问x_s_s_1大师这个地方的的图层名怎么引用上面已[指定不缩放的轴网线层名]
  (command "._Select" ss_all "remove" ss_dot "")
  (setq ss_sc (ssget "p"))
  (setq ss_pts (lst_ssn ss_dot))
  (setq pt (car(Curveinters (car ss_pts) (cadr ss_pts))))
  (setq ssets (lst_ssn ss_sc))

烦劳大师了谢谢。。。。。
"觉得好,就打赏"
还没有人打赏,支持一下
 楼主| 发表于 2012-8-4 11:09:42 来自手机 | 显示全部楼层
大师不给回个…………大师教下啊………普及下知识嘛……………………
发表于 2012-8-4 11:58:10 | 显示全部楼层
flytoday 发表于 2012-8-4 11:09
大师不给回个…………大师教下啊………普及下知识嘛……………………

别,搞得我没脸见人了
  1. (vl-load-com)
  2. ;;;lst_ssn函数(lst_ssn ss)
  3. ;;;ss参数:选折集
  4. ;;;返回图元名表
  5. (defun lst_ssn (ss / n lst)
  6.   (repeat (setq N (sslength ss))
  7.     (setq LST (cons (ssname SS (setq N (1- N))) LST))
  8.   ) ;_ 结束repeat
  9. ) ;_ 结束defun
  10. ;;;计算曲线交点
  11. (defun Curveinters (en1 en2 / pl pts)
  12.   (setq pl  (vlax-invoke (vlax-ename->vla-object en2) 'IntersectWith (vlax-ename->vla-object en1) acExtendNone))
  13.   (while pl
  14.     (setq pts (append pts (list (list (car pl) (cadr pl) (caddr pl))))
  15.    pl (cdr (cdr (cdr pl)))
  16.    )
  17.     )
  18. pts
  19.   )
  20. (defun zsf (/ dot_8 ss_all ss_dot ss_sc ss_pts pt ssets scal x objss )
  21.   (setvar "cmdecho" 0)
  22.   (setq dot_8(assoc 8 (entget(car(entsel "\n选择轴线层图元:")))))
  23.   (prompt "\n请选择需要进行缩放的物体:")   
  24.   (setq ss_all (ssget));此处可根据个人习惯增加图层(ssget  '((8 . "colu,dim,sbar,dote,axis")))
  25.   (setq ss_dot (ssget "p" (list '(0 . "*line") dot_8)));此处图层根据个人习惯改
  26.   (command "._Select" ss_all "remove" ss_dot "")
  27.   (setq ss_sc (ssget "p"))
  28.   (setq ss_pts (lst_ssn ss_dot))
  29.   (setq pt (car(Curveinters (car ss_pts) (cadr ss_pts))))
  30.   (setq ssets (lst_ssn ss_sc))
  31.   (if (setq scal (getreal "\n比例因子<0.25>:"))
  32.     t
  33.     (setq scal 0.25))
  34.   (foreach x ssets  
  35.     (setq objss (vlax-ename->vla-object x))  
  36.     (vla-scaleentity objss (vlax-3D-point pt) scal)
  37.   )  
  38. )
  39. (defun c:scc ()  
  40.   (zsf)  
  41.   (princ)  
  42. )

点评

声望+1,大师!  发表于 2012-8-4 15:50
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2025-7-21 23:48 , Processed in 0.205021 second(s), 27 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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