kingerst 发表于 2012-9-5 09:53:25

bhatch 命令里的PT能接受自己定义的坐标吗?

各位老师。
(command "bhatch" "p" "solid" Pt "") bhatch 命令里的PT能接受自己定义的坐标吗?还是PT必须是getpoint获取?
我曾用自定义的PT,CAD提示点在对像上。
请问有何方法让hatch接受自己定义的坐标 块内填充。

Gu_xl 发表于 2012-9-5 10:29:25

CAD提示点在对像上,说明视图缩的太小了,将视图放大一点!

Andyhon 发表于 2012-9-5 10:31:18

自己定义的坐标与(getpoint)的返回值相同吗?

kingerst 发表于 2012-9-5 10:46:03

已放到最大了,还是一样。
点是肯定一样的。孤岛取点。
我只是想实现框选每个块然后用实实色填充。
算出的PT坐标就是不能用来做填充的坐标点,而getpoint就可以。请高手帮忙看看。

(defun c:QQ( / SS I Devtype ENT1 ENT)
(setvar "cmdecho" 0)
(setq color (acad_truecolordlg (cons 62 0)))
(setq co (cdr (car color)))
(IF(SETQ SS (SSGET '((0 . "INSERT") (66 . 1))))
(PROGN
   (SETQ I -1)
   (REPEAT (SSLENGTH SS)
    (SETQ EN (SSNAME SS (SETQ I (1+ I))))
    (SETQ ENT (ENTGET EN ) ENT1 ENT)
    (GetLeftUp EN)
     (command "bhatch" "p" "solid" Pt "")
    (command "color" oldcolor)
   )
   
)
    (princ)
)
)
下面的函数用来计算PT反回中心点。
(defun GetLeftUp( EntName /);( EntName / blkname name    pa pa_x pa_y ppd_x pd_y pt1 pt2 pt3 pt4)
(Setq blkname (Vlax-Get (setq get (Vlax-Ename->Vla-Object EntName)) 'Name ))
   
(Vlax-Invoke-Method (Vlax-Ename->Vla-Object EntName) 'GetBoundingBox 'pa 'pb)
;(setq PtLeftUp (list (car (vlax-safearray->list pc)) (cadr (vlax-safearray->list pb))))
(setq PtLeftDown (vlax-safearray->list pa) PtRightUp (vlax-safearray->list pb))
(setq PaX (car PtLeftDown) PaY (cadr PtLeftDown))
(setq PbX (car PtRightUp ) PbY (cadr PtLeftDown))
(setq PtX (+ PaX ( /( - PbX PaX ) 2)))
   (setq PtY (+ PaY ( /( - PbY PaY ) 2)))
(setq Pt (list PtX PtY 0.0))
)

Gu_xl 发表于 2012-9-5 10:49:54

关闭捕捉

kingerst 发表于 2012-9-5 10:54:20

是的,是关闭的

Gu_xl 发表于 2012-9-5 10:59:32

kingerst 发表于 2012-9-5 10:54 static/image/common/back.gif
是的,是关闭的

检查UCS是否WCS坐标系统重合!

kingerst 发表于 2012-9-5 11:05:07

老大。这个怎么检查,我真不会。

Andyhon 发表于 2012-9-5 11:18:41

那么就上传调试时所牵涉到的文件资料呗

kingerst 发表于 2012-9-5 11:22:16

已上传,相当于批量填充块。
页: [1] 2
查看完整版本: bhatch 命令里的PT能接受自己定义的坐标吗?