njut_prince 发表于 2013-7-19 18:45:18

请各位版主及高手帮忙,万分感谢,对管线专业很有用。。。

张和平 发表于 2013-7-19 18:45:19

总算是如约给你了,,
http://bbs.mjtd.com/forum.php?mo ... =1&extra=#pid603648

【KAIXIN】 发表于 2013-7-19 18:48:00

这个是什么玩意?总的来个弄好的效果图吧

njut_prince 发表于 2013-7-19 18:51:29

【KAIXIN】 发表于 2013-7-19 18:48 static/image/common/back.gif
这个是什么玩意?总的来个弄好的效果图吧

不会弄呀,会弄肯定给弄个,见谅啊

【KAIXIN】 发表于 2013-7-19 18:54:40

上午刚好给一网友弄了一个,时间问题,我就直接发上来,供大家改写
(defun fz ()
(setq gj (GET_tile "gj"))
(setq pd (GET_TILE "pd"))
(setq zg (GET_TILE "zg"))
(setq xj (GET_TILE "xj"))
)
;;;临时生成Dcl文件 返回文件名
(defun Write_Dcl (/ Dcl_File file str)
(setq Dcl_File (vl-filename-mktemp nil nil ".Dcl"))
(setq file (open Dcl_File "W"))
(foreach str
           '("RECT:dialog" "{label=\"管道标注\";"
             ":edit_box {key=\"gj\";label=\"管径:\";value=\"DN300\";}"
             ":edit_box {key=\"pd\";label=\"坡度:\";value=\"2.0%\";}"
             ":edit_box {key=\"zg\";label=\"字高:\";value=\"5.0\";}"
             ":edit_box {key=\"xj\";label=\"线距:\";value=\"5.0\";}"
             "ok_only;}")
    (write-line str file)
)
(close file)
Dcl_File
)
(defun C:XX()(c:GXBZ))
(defun c:GXBZ ()
(VL-LOAD-COM)
(setvar "CMDECHO" 0)

(SETQ DCL_ID (LOAD_DIALOG (setq Dcl_File (Write_Dcl))))
      (vl-file-delete Dcl_File)
      (NEW_DIALOG "RECT" DCL_ID)
      (ACTION_TILE "accept" "(fz) (DONE_DIALOG)")
      (START_DIALOG)
      (UNLOAD_DIALOG DCL_ID)
(while t

(if (and
        (setq pt1 (getpoint "\n请选择管道起点:"))
        (setq pt2 (getpoint pt1 "\n请选择管道终点:"))
      )
    (progn
      
      (setq xx        (- (car pt2) (car pt1))
          yy        (- (cadr pt2) (cadr pt1))
          num        (/ yy 1.0 xx)
          str        (rtos (* 100 num) 2 1)
      )
      (setq dst       (distance pt1 pt2)
          str1 (rtos dst 2 1)
          ;; FIX 1
          dtt       (strcat gj " L=" str1 "m i=" pd)
          a1       (angle pt1 pt2)
          a2       (* (/ a1 pi) 180)
          ptt       (polar pt1 a1 (/ dst 2))
          pte(polar ptt (* pi 0.5) (atof xj))
      )
      (command "text" "j" "bc" pte (atof zg) a2 dtt)
      ;; FIX2
    )
)

)
(princ)
)

njut_prince 发表于 2013-7-19 18:59:25

原帖http://bbs.mjtd.com/forum.php?mod=viewthread&tid=102538(defun c:YS1 ()
(setvar "CMDECHO" 0)
(if (and
      (setq pt1 (getpoint "\nFirst Point 点一 :"))
      (setq pt2 (getpoint pt1 "\nSecond Point 点二 :"))
   )
(progn
(setq xx (- (car pt2) (car pt1))
      yy (- (cadr pt2) (cadr pt1))
      num (/ yy 1.0 xx)
str (rtos (* 100 num) 2 1)
)
(setq dst (distance pt1 pt2)
      str1 (rtos (dst 2 1))
      dtt (strcat "DN300 L="str1 "m i="str "%")
      a1 (angle pt1 pt2)
      a2 (* (/ a1 pi) 180)
      ptt (polar pt1 a1 (/ dst 2))
))
   (command "text" "j" "bc" ptt 2.5 a2 dtt)
)
(princ)
)

njut_prince 发表于 2013-7-20 09:52:26

没人帮我呀,难。。。

自贡黄明儒 发表于 2013-7-24 12:48:34

njut_prince 发表于 2013-7-20 09:52 static/image/common/back.gif
没人帮我呀,难。。。

如是你的程序有问题,可以发上来大家看看,问题在哪里

tranney 发表于 2013-7-24 16:52:11

炫哥的代码要改改,改好了应该蛮好用的

tianyi1230 发表于 2013-7-24 21:03:55

这个程序确实是很实用的插件,官网图有大量的这样标注,但是我建议没必要搞成线上线下,搞成动态的最好,把距离设置好就行了.
页: [1] 2
查看完整版本: 请各位版主及高手帮忙,万分感谢,对管线专业很有用。。。