乐筑天下

搜索
欢迎各位开发者和用户入驻本平台 尊重版权,从我做起,拒绝盗版,拒绝倒卖 签到、发布资源、邀请好友注册,可以获得银币 请注意保管好自己的密码,避免账户资金被盗
查看: 56|回复: 0

[编程交流] 纹理到层旋转问题

[复制链接]

18

主题

65

帖子

49

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
107
发表于 2022-7-6 17:20:00 | 显示全部楼层 |阅读模式
我有lisp附加纹理层。。附着后,当层旋转时,纹理不会根据
我使用的是木材纹理,纹理呈90度,所以当图像旋转到180度时,纹理也应该相应旋转
 
我在旋转前后附加样本纹理
 
 
 
这是我正在使用的lisp程序
 
纹理
 
  1. ;code for changing layer color
  2. ;; local defun
  3. ;; create a single list of strings interactively
  4. (defun list_of_strings (msg1 msg2 / str_list)
  5. (setq loop T)
  6. (setq st (getstring T msg1)
  7. str_list (cons st str_list))
  8. (while
  9. (not (eq "" (setq st (getstring T msg2))))
  10. (setq str_list (cons st str_list))
  11. (if (eq st "")(setq loop nil)
  12. )
  13. )
  14. (reverse str_list)
  15. )
  16. ;; by gile
  17. ;; convert string to list of strings
  18. (defun str2lst (str sep / pos)
  19. (if (setq pos (vl-string-search sep str))
  20.    (cons (substr str 1 pos)
  21.      (str2lst (substr str (+ (strlen sep) pos 1)) sep)
  22.    )
  23.    (list str)
  24. )
  25. )
  26. ;; ========== main programm ==========;;
  27. (defun C:texture(/ common_list curLay data_list fLst laySet sSet mLst cMat sCnt lCnt mCnt eCnt)
  28. (vl-load-com)
  29. (setq common_list
  30. (list_of_strings
  31. "\nEnter first layer name and material separated by comma: "
  32. "\nEnter the next layer name and material separated by comma (or press ENTER to stop): "))
  33. (setq data_list (mapcar (function (lambda(x)(str2lst x ","))) common_list))
  34. (vl-load-com)
  35. (if(setq sSet(ssget "_X" '((0 . "*POLYLINE,*SOLID"))))
  36. (progn
  37.    (setq sCnt 0 lCnt 0)
  38.    (vlax-for mat (vla-get-Materials
  39.               (vla-get-ActiveDocument
  40.             (vlax-get-acad-object)))
  41.      (setq mLst(cons(vla-get-Name mat)mLst))
  42.      ); end vlax-for
  43.    (foreach itm
  44.        (mapcar 'vlax-ename->vla-object
  45.          (vl-remove-if 'listp
  46.            (mapcar 'cadr(ssnamex sSet))))
  47.          (if(setq cMat
  48.            (cadr
  49.              (assoc
  50.                (setq cLay(vla-get-Layer itm))data_list)))
  51.        (if(member cMat mLst)
  52.          (if(vl-catch-all-error-p
  53.               (vl-catch-all-apply 'vla-put-Material
  54.             (list itm cMat)))
  55.            (setq lCnt(1+ lCnt))
  56.            (setq sCnt(1+ sCnt))
  57.            ); end if
  58.          (if(not(member cMat mCnt))
  59.           (setq mCnt(cons cMat mCnt))
  60.            ); end if
  61.          ); end if
  62.        (if(not(member cLay eCnt))
  63.          (setq eCnt(cons cLay eCnt))
  64.          ); end if
  65.           );end if
  66.        ); end foreach
  67.    (if(or(/= 0 lCnt)(/= 0(length mCnt))(/= 0(length eCnt)))
  68.      (progn
  69.    (princ "\n========================= ERROR LIST =========================\n")
  70.    (if(/= 0(length mCnt))
  71.      (progn
  72.        (princ "\nFollowing materials missed in drawing: \n")
  73.        (foreach mat mCnt
  74.          (princ(strcat "\n " mat))
  75.          ); end foreach
  76.        (princ "\n")
  77.        ); end progn
  78.      ); end if
  79.       (if(/= 0(length eCnt))
  80.      (progn
  81.        (princ "\nSome solid layers missed in list: \n")
  82.        (foreach lay eCnt
  83.          (princ(strcat "\n " lay))
  84.          ); end foreach
  85.        (princ "\n")
  86.        ); end progn
  87.      ); end if
  88.     (if(/= 0 lCnt)
  89.       (princ(strcat "\n" (itoa lCnt) " were on locked layer!\n"))
  90.      ); end if
  91.    (princ "\n========================== END LIST ==========================\n")
  92.    (textscr)
  93.    ); end progn
  94.      ); end if
  95.          (princ(strcat "\n<<< Materials are appropriated for "
  96.              (itoa sCnt) " of "
  97.              (itoa(sslength sSet)) " solids >>>"))
  98.    ); end progn
  99. (princ "\n<!> No Solids Found <!> ")
  100. ); end if
  101. (princ)
  102. )

182003y0x5n100a399a3t1.jpg
182004jveullzs108zff21.jpg
回复

使用道具 举报

发表回复

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

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

QQ|关于我们|小黑屋|乐筑天下 繁体中文

GMT+8, 2025-3-4 15:31 , Processed in 0.354198 second(s), 57 queries .

© 2020-2025 乐筑天下

联系客服 关注微信 帮助中心 下载APP 返回顶部 返回列表