明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 2962|回复: 7

关于3dpoly的线一些问题(急!急!急!急!)

[复制链接]
发表于 2003-11-18 16:49:00 | 显示全部楼层 |阅读模式
本帖最后由 作者 于 2003-11-18 17:54:29 编辑

斑竹帮帮忙这几个问题在3dpoly的时候很常见,请斑竹解决一下。

我想提一个建议就是我们的明经通道能否办一个会员制的,收取一定的会费。因为总是麻烦各位帮忙实在是有一点不好意思。

这只是小生的一点意见,仅供参考。

如果各位觉得好的话请给我一朵小花好吗??嘿嘿!!
我也同意成立一个工具箱只向会员提供特别服务。那样斑竹的徒劳就由回报了。
请斑竹帮我把下面的帖子删掉我也不知道是怎么弄上去的,谢谢。

本帖子中包含更多资源

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

x
 楼主| 发表于 2003-11-19 19:15:00 | 显示全部楼层
为什么没有人帮助我呀。求求你们大家了。
 楼主| 发表于 2003-11-19 19:16:00 | 显示全部楼层
我真的是没有什么思路,如果能给我一点思路也可以呀,麻烦大家在这里停留一下好吗?
发表于 2003-11-20 07:58:00 | 显示全部楼层
本帖最后由 作者 于 2003-11-20 10:17:22 编辑

;;Tip1877:       3D_OFFSET.LSP    3D PLINE OFFSET   (c) 2003 Silvia Soonets
(vl-load-com)
(setq ESTEDIBUJO (vla-get-activedocument (vlax-get-acad-object)))
(setq *MODELSPACE* (vla-get-modelspace ESTEDIBUJO))
(defun C:3D_OFFSET (/            ENAME   OBJECT  LISTA   LISTA1  X
                    N            DISTA   OBJECT1 ENAME1  LAY            COL
                    LTYPE   LTS            LW            LISTAZ  NVER
                   )
  (setq        DISTA (getdist (strcat "\nSpecify offset distance <"
                               (rtos (getvar "OFFSETDIST") 2 2)
                               "> :"
                       )
              )
  )
  (if (not DISTA)
    (setq DISTA (getvar "OFFSETDIST"))
  )
  (setq ENAME (entsel "\nSelect 3dpoly to offset or <exit>: "))
  (while ENAME
    (setq ENAME         (car ENAME)
          OBJECT (vlax-ename->vla-object ENAME)
    )
    (if        (= (vlax-get-property OBJECT "ObjectName") "AcDb3dPolyline")
      (progn
        (setq LAY        (vlax-get-property OBJECT "Layer")
              LTYPE        (vlax-get-property OBJECT "Linetype")
              COL        (vlax-get-property OBJECT "Color")
              LTS        (vlax-get-property OBJECT "LinetypeScale")
              LW        (vlax-get-property OBJECT "Lineweight")
              IS_CLOSED        (vlax-get-property OBJECT "Closed")
              LISTA        (vlax-get-property OBJECT "Coordinates")
              LISTA        (vlax-safearray->list (vlax-variant-value LISTA))
              N                0
              LISTA1        NIL
        )
        (while (setq X (nth N LISTA))
          (setq        NVER   (/ (length LISTA) 3.00)
                LISTA1 (append LISTA1 (list X))
                X      (nth (1+ N) LISTA)
                LISTA1 (append LISTA1 (list X))
                LISTAZ (append LISTAZ (list (nth (+ 2 N) LISTA)))
                N      (+ 3 N)
          )
        )
        (setq PT (getpoint "\nSpecify point on side to offset?: "))
        (setq N             (1- (length LISTA1))
              LISTA1 (vlax-safearray-fill
                       (vlax-make-safearray vlax-vbdouble (cons 0 N))
                       LISTA1
                     )
              OBJECT (vla-addlightweightpolyline *MODELSPACE* LISTA1)
              ENAME  (vlax-vla-object->ename OBJECT)
        )
        (command "offset" DISTA ENAME PT "")
        (setq OBJECT1 (vlax-ename->vla-object (entlast)))
        (vlax-put-property OBJECT1 "Closed" IS_CLOSED)
        (setq LISTA1 (vlax-safearray->list
                       (vlax-variant-value
                         (vlax-get-property OBJECT1 "Coordinates")
                       )
                     )
              N             0
              LISTA  NIL
        )
        (entdel ENAME)
        (if (= (/ (length LISTA1) 2) NVER)
          (progn
            (while (setq X (nth N LISTA1))
              (setq LISTA (append LISTA (list X))
                    LISTA (append LISTA (list (nth (1+ N) LISTA1)))
                    LISTA (append LISTA (list (nth (/ N 2) LISTAZ)))
                    N          (+ 2 N)
              )
            )
            (setq N         (1- (length LISTA))
                  LISTA         (vlax-safearray-fill
                           (vlax-make-safearray vlax-vbdouble (cons 0 N))
                           LISTA
                         )
                  OBJECT (vla-add3dpoly *MODELSPACE* LISTA)
                  ENAME         (vlax-vla-object->ename OBJECT1)
            )
            (entdel ENAME)
            (vlax-put-property OBJECT "Closed" IS_CLOSED)
            (vlax-put-property OBJECT "Layer" LAY)
            (vlax-put-property OBJECT "Linetype" LTYPE)
            (vlax-put-property OBJECT "Color" COL)
            (vlax-put-property OBJECT "LinetypeScale" LTS)
            (vlax-put-property OBJECT "Lineweight" LW)
          )
          (prompt
            "\nThe number of vertices have to change. Cannot 3d_offset that object"
          )
        )
      )
      (prompt "\nCannot 3d_offset that object")
    )
    (setq ENAME (entsel "\nSelect 3dpoly to offset or <exit>: "))
  )
  (princ)
)
 楼主| 发表于 2003-11-20 08:42:00 | 显示全部楼层
谢谢龙龙仔斑竹的帮忙,我已经照您的做法已经把程序改好了。再次的感谢您。



----------------------------------------------------------------------------------------------------------------------------


                    相识恨晚                      相逢是缘
发表于 2003-11-20 08:47:00 | 显示全部楼层
为什么提示如下错误:
error: no function
definition: VLAX-GET-ACAD-OBJECT
 楼主| 发表于 2003-11-20 08:57:00 | 显示全部楼层
在加载程序之前先键入(vl-load-com)就可以了
发表于 2003-11-20 12:50:00 | 显示全部楼层
呵呵。龙大侠已经把(vl-load-com)移到前面去了
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-11-27 06:28 , Processed in 0.161343 second(s), 26 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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