h008 发表于 2011-4-27 09:07:33

求助关于生成天正对象

   各位,这厢求助了!我想用 entmake生成天正的标高对象,我查看了天正给的编程接口,说的就是 10 1 为必须了,我如下测试,总不行,请助!!

(entmake (list
' (0 . "TCH_ELEVATION")
'(10 15633.6 0.0 0.0)
'(1 . "0.00000")
      )
    );

请懂的朋友给提个 醒!不胜感激!!

highflybird 发表于 2011-4-27 09:38:17

本帖最后由 highflybird 于 2011-4-27 09:50 编辑

据我所知,天正与LISP的接口是个半成品。那个以前最早定义实体的人离开天正之后,就没人来完善它。

不过你可以这样用:
(entmake
    '((0 . "TCH_ELEVATION")
      (100 . "AcDbEntity")
      (410 . "Model")
      (8 . "DIM_ELEV")
      (100 . "TDbEntity")
      (100 . "TDbSymbWithText")
      (7 . "_TCH_DIM")
      (100 . "TDbSymbElevation")
      (10 84966.3 37937.0 0.0)   ;;插入点
      (1 . "37.900")                      ;;标高值
    )
)

h008 发表于 2011-4-27 10:02:07

好强!!
好人+强人!!谢谢谢谢!

狂刀lxx 发表于 2011-4-27 16:10:08

tz实体,不了解接口的情况下,直接修改实体的属性大部分会导致崩溃,慎用为妙。
标高还是可以的,我试过。

hnfsf 发表于 2011-5-2 05:45:07

经常崩溃,搞得现在都不敢改

xiguao 发表于 2011-6-17 15:31:04

提供一个思路,拷贝一个,移动:
(defun c:tg (/ basePT basepto basepoint firpoint secpoint midx midy)
(princ "\n居中布置天正喷头:")
(setq
    basePT (ssname
             (ssget "x"
                  '((0 . "TCH_EQUIPMENT") (2 . "$TwtSys$00000125"))
             )
             0
           )
)
(setq basepto (vlax-ename->vla-object basept))
(setq basepoint (vlax-3d-point (cdr (assoc 10 (entget basept)))))
(while (and (setq firpoint (getpoint "\n点选长方形两个角点,第一点:"))
              (setq secpoint (getpoint firpoint "第二点:"))
       )
    (setq midx (/ (+ (car firpoint) (car secpoint)) 2.0))
    (setq midy (/ (+ (cadr firpoint) (cadr secpoint)) 2.0))
    (setq PTcopy (vla-copy basepto))
    (vla-move ptcopy basepoint (vlax-3d-point (list midx midy)))
)
(princ)
)
页: [1]
查看完整版本: 求助关于生成天正对象