01.11.2011 15:39    

SENDUR
Arkadaşlar 2012 kullanırken bazen "move" komutu taşıma yapmıyor. ilk noktayı seçiyorum ve 2. noktaya taşımasını istiyorum ama program 2. seçtiğim noktayı ilk nokta gibi algılıyor ve tekrar 2. noktayı istiyor ve bu bi müddet devam ediyor sonra birinde taşıma yapıyor. acaba bunun bir çözümü varmıdır?

birde "undo" yaptığım zaman bazen geri almıyor. "undo" nun altındaki "end" yada "back" dediğim zaman çok geri gidiyor. çözüm olarak
undo enter
10 enter
yazarak 10 ar 10 ar geri gitmeye çalışıyorum.

"undo" komutunu ayrıntılı olarak anlatabilir misiniz?

02.11.2011 07:18    

ehya
Move komutunda böyle bir sorun yada sistem değişkeni olduğunu sanmıyorum. aklıma gelen mouse'undaki bir sorun olabilir. mouse'unu değiştirip denedin mi?

undo komutunun bazen bu şekilde tıkanmasının sebebi lisplerden kaynaklanıyor. lisp içinde undo komutunun group özelliği kullanılarak bir satır yazılmakta. amaç işlemi geri aldığımızda tüm lisp işlemlerinin bi anda geri alması için. ancak hata denetimi düzgün olmayınca bu undo komutunun group özelliği kapatılmıyor. kapanmayınca lispten sonraki işlemlerde group içine girdiği için tek undo yaptığımızda onlarca hatta yüzlerce işlemi geri almakta. eeee bu da bizleri bayağı bir zora sokuyor.
çaresi o an için group unu "end" yaparak bitirmek ve ne olursa olsun 5dk da bir dosyanızı kaydetmeye kendinizi alıştırmak.

02.11.2011 08:12    

SENDUR
Hocam öncelik cevap verdiğin için teşekkür ederim.
benim "undo" ile ilgili sıkıntım
u enter
enter
enter
enter

yapmama rağmen geri almaması.
sizin bahstetiğiniz durumda bazen başıma geliyor ve hemen "redo" yapıyorum (hiç bir şey yapmadan sonrada "save" tabi:))
"move" komutunun "mouse" tan kaynaklanmıyor. onu denedim. sorun her zaman değil ara sıra oluyor. biraz fazla ve içeriği karışık ( hatch, blok, array blok, ölçü, lader vb...) objeleri taşırken karşılaşıyorum.
saygılar

02.11.2011 10:08    

SENDUR
"undo" ile ilgili durum yine başıma geldi. Geri almıyor:( bide buradaki ayarlar ilgili bir durum varmı acaba

Command: _qsave
Command: UNDO Current settings: Auto = On, Control = All, Combine = Yes, Layer
= Yes
Enter the number of operations to undo or [Auto/Control/BEgin/End/Mark/Back]
<1>: 20 QSAVE Regenerating model.

Command: UNDO Current settings: Auto = On, Control = All, Combine = Yes, Layer
= Yes
Enter the number of operations to undo or [Auto/Control/BEgin/End/Mark/Back]
<1>: 10

Command:
UNDO Current settings: Auto = On, Control = All, Combine = Yes, Layer = Yes
Enter the number of operations to undo or [Auto/Control/BEgin/End/Mark/Back]
<1>: 25

Command:
UNDO Current settings: Auto = On, Control = All, Combine = Yes, Layer = Yes
Enter the number of operations to undo or [Auto/Control/BEgin/End/Mark/Back]
<1>: 50
INTELLIPAN
Command:
UNDO Current settings: Auto = On, Control = All, Combine = Yes, Layer = Yes
Enter the number of operations to undo or [Auto/Control/BEgin/End/Mark/Back]
<1>: 50

Command:
UNDO Current settings: Auto = On, Control = All, Combine = Yes, Layer = Yes
Enter the number of operations to undo or [Auto/Control/BEgin/End/Mark/Back]
<1>: 10

Command: U
Command: U
Command: U
Command: U
Command: U
Command: U

02.11.2011 10:16    

ehya
Ayarlarında bi sıkıntı yok.
undo komutunu çalıştırdıktan sonra "end" alt komutunu çalıştır.
sonra tekrar undo yaparak tek tek yap. bu şekilde sıkıntı vermeyecektir.

02.11.2011 10:38    

SENDUR
Hocam böyle yapınca ilk anlattığın gibi grup halinde geri alıyor.

Bu sadece 10da 1 i :)

Command:
Command:
Command: _mredo Enter number of actions or [All/Last]: 1 GROUP INTELLIZOOM
INTELLIPAN ERASE INTELLIZOOM INTELLIPAN BOUNDARY MOVE MOVE INTELLIPAN TRIM LINE
TRIM LINE LINE CIRCLE INTELLIZOOM INTELLIPAN INTELLIPAN INTELLIZOOM INTELLIPAN
INTELLIZOOM INTELLIPAN INTELLIZOOM ERASE INTELLIZOOM INTELLIPAN INTELLIPAN
INTELLIPAN INTELLIPAN INTELLIZOOM INTELLIPAN INTELLIZOOM INTELLIZOOM TRIM TRIM
MATCHPROP INTELLIZOOM INTELLIPAN INTELLIZOOM TRIM MATCHPROP INTELLIPAN
INTELLIPAN INTELLIPAN MATCHPROP MATCHPROP INTELLIZOOM INTELLIPAN INT

02.11.2011 13:31    

ehya
O zaman dediğim gibi lisplerini kontrol edeceksin.
kullandığın lisp fazla değil ise, içlerindeki undo bölümlerini iptal etmelisin.
yoksa bu sorunu hep yaşarsın..

02.11.2011 15:24    

ProhibiT
Müsadenizle araya gireyim :)

mehmet hocam ilk mesajında doğru teşhisini koymuş, anlatmaya çalışıyor. sendur kardeşimiz de, derdimi iyi anlatamadım herhalde diye düşünüp, çabalamaya devam ediyor.

pek çok yazar arkadaşımız (ben de bunlardan biriyim) bu undo group ve *error* konusunda yeterince özen göstermiyoruz. sonuçta sendur arkadaşımızın bahsettiği problemi pek çok kullanıcı yaşayabiliyor. ama çoğu da üstünde durmayıp palyatif çözümlerle üstünü örtmeyi tercih ediyorlar.

örnekleyerek açıklamak gerekirse;

autolisp fonksiyon yazarken, kullanıcının tüm fonksiyonu tek adımda geri alabilmesi (undo yapabilmesi) için lisp komutlarını guruplandırıyoruz.
Kod:

(defun c:deneme (/)
  (command "_.undo" "group") ;;; fonksiyonun başında undo gurubunu başlatıyoruz.
  .
  .
  .
  (command "_.undo" "end")   ;;; fonksiyonun sonunda gurup işlemini sonlandırıyoruz.
)
Fonksiyon normal olarak tamamlandığında problem yok. kullanıcı undo uyguladığında bütün lisp komutları tek adımda geri dönüyor. geriye doğru da önü açılıyor.

bununla birlikte her zaman olabilecek bir durum;
fonksiyonu çalıştırdık, (command "_undo" "group") işleme girdi. işte bu noktada kullanıcı vazgeçti, escape (cancel) girdi ve fonksiyondan çıktı. bu durumda, undo grup başlatıldı ama end ile gurubun sonu belirlenmedi, açık kaldı. bu noktada undo uygulanırsa, işlemler gurubun başlandığı yere kadar geri alınır, daha geri gidilemez.

mehmet hocam derki; fonksiyonu kesip uygulanmasına izin vermediğiniz undo end işlemini komut satırından girerek kullanıcı yaparsa problem kalmaz. bunu yapmıyorsanız, kullandığınız lisp fonksiyonların içindeki undo group direktiflerini kaldırmak gerekir.

ayaküstü çalaklavye yazılmış fonksiyonalrın dışında ben bir yöntem uyguluyorum. fonksiyonun içinde hata yakalama (error trap) fonksiyonu tanımlıyorum. hata yakalama fonksiyonu içine de (command "_.Undo" "end") komutunu yazıyorum.
Kod:

(defun c:deneme ()
  (command "undo" "group")
  (defun *error* ()
    (command "_.undo" "end")
    (setq *error* nil)
  )
  .
  .
  .
  (setq *error* nil)
  (command "undo" "end")
)

Böylelikle kullanıcı fonksiyonu kesmiş (abnormal termination) olsa bile, hata yakalama fonksiyonu undo gurubunu end ile sonlandırdığından problem yaşanmıyor. fonksiyonun normal tamamlanması halinde ise zaten problem yok. *error* fonksiyonunu hem normal hem de anormal çıkışta tanımsız (nil) hale getirmek gerekiyor. aksi halde başka fonksiyonların hatalarını da yakaladığı için hesapta olmayan durumların ortaya çıkmasına sebep olabiliyor.

buna bir örnek olarak, lisp istekleri başlığı altında son paylaştığım bbox fonksiyonunu gösterebilirim.

başka bir başlık altında yazdığım bir cümleyi tekrarlamadan geçemeyeceğim. "yazar, kullanıcıya rağmen, kullanıcı için yazan kişidir"

kolay gelsin.

> 1 <
Copyright © 2004-2022 SQL: 1.039 saniye - Sorgu: 63 - Ortalama: 0.01649 saniye